Merge branch 'master' of https://git.ad5001.eu/Ad5001/LogarithmPlotter
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Adsooi 2022-01-24 19:07:23 +01:00
commit 54ce5605c4
Signed by: Ad5001
GPG key ID: 7251B1AF90B960F9
78 changed files with 5417 additions and 306 deletions

5
.gitignore vendored
View file

@ -10,6 +10,8 @@ linux/flatpak/.flatpak-builder
*.zip
**/**.qmlc
**/**.jsc
**/**.pyc
**/**.qm
*.jsc
*.qmlc
.DS_Store
@ -27,4 +29,5 @@ docs/html
.kdev4
AccountFree.pro
AccountFree.pro.user
AccountFree.egg-info/
*.egg-info/
*.tar.gz

3
.gitmodules vendored
View file

@ -1,3 +1,6 @@
[submodule "LogarithmPlotter/qml/eu/ad5001/MixedMenu"]
path = LogarithmPlotter/qml/eu/ad5001/MixedMenu
url = https://git.ad5001.eu/Ad5001/MixedMenu
[submodule "linux/flatpak"]
path = linux/flatpak
url = https://github.com/Ad5001/eu.ad5001.LogarithmPlotter

View file

@ -1,5 +1,26 @@
# Changelog
## v0.1.4 (24 Jan 2022)
* New feature: LogarithmPlotter detects unsaved changes.
* New feature: LogarithmPlotter is now translated! See https://hosted.weblate.org/engage/logarithmplotter/ to help.
* New translation: English by Ad5001: 100%
* New translation: French by Ad5001: 100%
* New translation: German by Ad5001: 100%
* New translation: Hungarian by Óvári (@ovari on github): 100%
* New translation: Norvegian by Allan Nordhøy (@comradekingu on github): 80%
* Fixed bug: No notification when closing LogarithmPlotter with unsaved changes.
* Fixed bug: π unavailable in symbols.
-- Ad5001 <mail@ad5001.eu> Wed, 24 Jan 2022 20:00:00 +0100
## v0.1.3 (18 Jan 2022)
* Fixed bug: Confined packages (snapcraft & flatpak) won't show error messages related to update checks.
* FIxed bug: Equations of the form (x + y) / z were not being simplified properly.
-- Ad5001 <mail@ad5001.eu> Wed, 18 Jan 2022 20:00:00 +0100
## v0.1.3 (18 Jan 2022)
* Fixed bug: Confined packages (snapcraft & flatpak) won't show error messages related to update checks.

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -17,13 +17,13 @@
"""
from shutil import which
__VERSION__ = "0.1.3"
is_release = False
__VERSION__ = "0.1.4"
is_release = True
# Check if development version, if so get the date of the latest git patch
# and append it to the version string.
if which('git') is not None and not is_release:
if not is_release and which('git') is not None:
from os.path import realpath, join, dirname, exists
from subprocess import check_output
from datetime import datetime

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -19,12 +19,13 @@
from os import path, environ, makedirs
from platform import system
from json import load, dumps
from PySide2.QtCore import QLocale, QTranslator
DEFAULT_SETTINGS = {
"check_for_updates": True,
"reset_redo_stack": True,
"last_install_greet": "0",
"lang": "en"
}
# Create config directory
@ -35,7 +36,10 @@ CONFIG_PATH = {
}[system()]
CONFIG_FILE = path.join(CONFIG_PATH, "config.json")
CONFIG = DEFAULT_SETTINGS
initialized = False
current_config= DEFAULT_SETTINGS
def init():
"""
@ -47,13 +51,13 @@ def init():
cfg_data = load(open(CONFIG_FILE, 'r', -1, 'utf8'))
for setting_name in cfg_data:
setSetting(setting_name, cfg_data[setting_name])
def save():
"""
Saves the config to the path.
"""
write_file = open(CONFIG_FILE, 'w', -1, 'utf8')
write_file.write(dumps(CONFIG))
write_file.write(dumps(current_config))
write_file.close()
def getSetting(namespace):
@ -63,7 +67,7 @@ def getSetting(namespace):
by using the "test.foo" namespace.
"""
names = namespace.split(".")
setting = CONFIG
setting = current_config
for name in names:
if name in setting:
setting = setting[name]
@ -79,7 +83,7 @@ def setSetting(namespace, data):
by using the "test.foo" namespace.
"""
names = namespace.split(".")
setting = CONFIG
setting = current_config
for name in names:
if name != names[-1]:
if name in setting:

View file

@ -0,0 +1,682 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation>Über LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation>LogarithmPlotter v%1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation>2D-Grafiksoftware zur Erstellung von Bode-Diagramms, Folgen und Verteilungsfunktionen.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation>Bug melden</translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation>&amp;Datei</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation>&amp;Laden</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation>&amp;Speichern</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation>Speichern &amp;Unter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation>&amp;Ausfahrt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation>&amp;Bearbeiten</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation>&amp;Lösen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation>&amp;Wiederherstellen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation>Grafik &amp;Kopieren</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation>&amp;Erstellen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation>&amp;Einstellungen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation>Beim Starten auf Updates prüfen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<translation>Wiederherstellen-Stapel automatisch zurücksetzen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation>&amp;Hilfe</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation>&amp;Quellcode</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation>Fehler &amp;Melden</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation>&amp;Hilfe beim Übersetzen!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation>&amp;Übrigens</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation>Änderungen speichern?</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<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>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation>Eigenschaften von %1 %2 bearbeiten</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation>Etikett</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation>leer</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation>Name + Wert</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translation>+ Neues %1objekt erstellen</translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation>Logarithmusgrafik exportieren</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation>Logarithmusgrafik importieren</translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation>Willkommen bei LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
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.
Diese Einstellungen können jederzeit über das Menü &quot;Einstellungen&quot; geändert werden.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<source>Check for updates on startup (requires online connectivity)</source>
<translation>Beim Start nach Updates suchen (Online-Verbindung erforderlich)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<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>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation>Schließen</translation>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation>Wiederherstellen &gt;</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation>&gt; Aktueller Stand</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation>&lt; Rückgängig</translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation>Objekte</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation>Verlauf</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation>Gespeicherte Grafik auf &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation>Laden der Datei &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation>Unbekannter Objekttyp: %1.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation>Ungültige Datei angegeben.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation>Die Datei konnte nicht gespeichert werden: </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation>Geladene Datei &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation>Grafik in die Zwischenablage kopiert!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation>&amp;Aktualisieren</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation>LogarithmPlotter &amp;aktualisieren</translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation>+ Neu erstellen:</translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation>Alle %1 ausblenden</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation>Alle %1 anzeigen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation>Ausblenden %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation>Anzeigen %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation>Position von %1 %2 einstellen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation>%1 %2 löschen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation>Neue Farbe für %1 %2 auswählen</translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation>Genauigkeit des Zeigers:</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation>Am Gitter einrasten</translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation>Zoom auf X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation>Zoom auf Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation>Minimum X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation>Maximum Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation>Maximum X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation>Minimum Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation>X-Achsen-Schritt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation>Y-Achsen-Schritt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation>Linienbreite</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation>Textgröße (px)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation>Label der X-Achse</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation>Label der Y-Achse</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation>Logarithmische Skala in X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation>X-Teilung anzeigen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation>Y-Teilung anzeigen</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation>Kopieren in die Zwischenablage</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation>Grafik speichern</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation>Grafik speichern unter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation>Grafik laden</translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation>Funktion</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation>Funktionen</translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation>Bode-Magnitude</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation>Bode-Magnituden</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation>Tiefpass</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation>Hochpass</translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation>Neu %1 %2 erstellt.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation>%1 %2 gelöscht.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation>%1 von %2 %3 wurde von &quot;%4&quot; auf &quot;%5&quot; geändert.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation>%1 %2 angezeigt.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation>%1 %2 ausgeblendet.</translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation> Über</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation> Unter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation> Links</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation> Rechts</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation> Oben links</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation> Oben rechts</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation> Unten links</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation> Unten rechts</translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation>Bode-Phase</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation>Bode-Phasen</translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation>Punkt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation>Punkte</translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation>Verteilungsfunktion</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation>Verteilungsfunktionen</translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation>Folge</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation>Folgen</translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation>Bode-Magnituden Summe</translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation>Bode-Phasen Summe</translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation>Text</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation>Texte</translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation>Ein Aktualisierung für LogarithPlotter (v{}) ist verfügbar.</translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation>Keine Aktualisierung verfügbar.</translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation>Es konnten keine Aktualisierungsinformationen abgerufen werden: Server-Fehler {}.</translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation>Es konnten keine Aktualisierungsinformationen abgerufen werden:{}.</translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation>X Zeiger</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation>X Zeiger</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,682 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation>About LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation>LogarithmPlotter v%1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation>2D plotter software to make Bode plots, sequences and distribution functions.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation>Report a bug</translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation>&amp;File</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation>&amp;Load</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation>&amp;Save</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation>Save &amp;As</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation>&amp;Quit</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation>&amp;Edit</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation>&amp;Undo</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation>&amp;Redo</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation>&amp;Copy plot</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation>&amp;Create</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation>&amp;Settings</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation>Check for updates on startup</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<translation>Reset redo stack automatically</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation>&amp;Help</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation>&amp;Source code</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation>&amp;Report a bug</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation>&amp;Help translating!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation>&amp;About</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation>Save unsaved changes?</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<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>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation>Edit properties of %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation>Label content</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation>null</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation>name</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation>name + value</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translation>+ Create new %1</translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation>Export Logarithm Plot file</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation>Import Logarithm Plot file</translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation>Welcome to LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<source>Check for updates on startup (requires online connectivity)</source>
<translation>Check for updates on startup (requires online connectivity)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<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>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation>Done</translation>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation>Redo &gt;</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation>&gt; Now</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation>&lt; Undo</translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation>Objects</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation>History</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation>Saved plot to &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation>Loading file &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation>Unknown object type: %1.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation>Invalid file provided.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation>Could not save file: </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation>Loaded file &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation>Copied plot screenshot to clipboard!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation>&amp;Update</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation>&amp;Update LogarithmPlotter</translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation>+ Create new:</translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation>Hide all %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation>Show all %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation>Hide %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation>Show %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation>Set %1 %2 position</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation>Delete %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation>Pick new color for %1 %2</translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation>Pointer precision:</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation>Snap to grid</translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation>X Zoom</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation>Y Zoom</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation>Min X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation>Max Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation>Max X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation>Min Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation>X Axis Step</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation>Y Axis Step</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation>Line width</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation>Text size (px)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation>X Label</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation>Y Label</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation>X Log scale</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation>Show X graduation</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation>Show Y graduation</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation>Copy to clipboard</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation>Save plot</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation>Save plot as</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation>Load plot</translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation>Function</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation>Functions</translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation>Bode Magnitude</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation>Bode Magnitudes</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation>low-pass</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation>high-pass</translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation>New %1 %2 created.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation>%1 %2 deleted.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation>%1 %2 shown.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation>%1 %2 hidden.</translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation> Above</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation> Below</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation> Left</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation> Right</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation> Above left</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation> Above right</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation> Below left</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation> Below right</translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation>Bode Phase</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation>Bode Phases</translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation>Point</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation>Points</translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation>Distribution</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation>Distribution functions</translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation>Sequence</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation>Sequences</translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation>Bode Magnitudes Sum</translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation>Bode Phases Sum</translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation>Text</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation>Texts</translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation>An update for LogarithPlotter (v{}) is available.</translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation>No update available.</translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation>Could not fetch update information: Server error {}.</translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation>Could not fetch update information: {}.</translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation>X Cursor</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation>X Cursors</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,681 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="es_ES">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<source>Check for updates on startup (requires online connectivity)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<source>Reset redo stack when a new action is added to history</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,690 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="fr_FR">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation>À propos de LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation>LogarithmPlotter v%1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation>Logiciel de traçage 2D pour les diagrammes de Bode, les suites et les fonctions de répartition.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation>Rapport de bug</translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation>&amp;Fichier</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation>&amp;Ouvrir</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation>&amp;Sauvegarder</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation>Sauvegarde &amp;Sous</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation>&amp;Quitter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation>&amp;Édition</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation>&amp;Annuler</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation>&amp;Rétablir</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation>&amp;Copier le graphe</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation>&amp;Créer</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation>&amp;Paramètres</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation>Vérifier la présence de mise à jour au démarrage</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<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>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation>&amp;Aide</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation>&amp;Code source</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation>Rapport de bug</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation>&amp;Aider à la traduction !</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation>&amp;À propos</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation>Sauvegarder les modifications ?</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<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>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation>Changer les propriétés de %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation>Étiquette</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation>vide</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation>nom</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation>nom + valeur</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translatorcomment>Traduction non litéralle pour éviter les problèmes de genre.</translatorcomment>
<translation>+ Créer un nouvel objet %1</translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation>Exporter le graphe Logarithmique</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation>Importer un graphe Logarithmique</translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation>Bienvenue sur LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation>Version %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Prenez quelques secondes pour configurer LogarithmPlotter.
Ces paramètres peuvent être modifiés à tout moment à partir du menu &quot;Paramètres&quot;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation>Fermer</translation>
</message>
<message>
<source>Take a few seconds to configure LogarithmPlotter.
These settings can always be changed at any time from the &quot;Settings&quot; menu.</source>
<translation type="obsolete">Take a few seconds to configure LogarithmPlotter.
These settings can always be changed at any time from the &quot;Settings&quot; menu.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<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>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<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>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation>Rétablir &gt;</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation>&gt; État actuel</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation>&lt; Annuler</translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation>Objets</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation>Historique</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation>Graphe sauvegardé dans &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation>Chargement du fichier &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation>Type d&apos;objet inconnu : %1.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation>Fichier fourni invalide.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation>Impossible de sauvegarder le fichier : </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation>Fichier &apos;%1&apos; chargé.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation>Image du graphe copiée dans le presse-papiers !</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation>&amp;Mise à jour</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation>&amp;Mettre à jour LogarithmPlotter</translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation>+ Créer :</translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation>Cacher tous les %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation>Montrer tous les %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation>Cacher l&apos;objet %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation>Montrer l&apos;objet %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation>Définir la position de l&apos;objet %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation>Supprimer l&apos;objet %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation>Choisissez une nouvelle couleur pour %1 %2</translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation>Précision du pointeur :</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation>Placement sur la grille</translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation>Zoom en X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation>Zoom en Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation>Min X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation>Max Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation>Max X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation>Min Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation>Pas de l&apos;axe X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation>Pas de l&apos;axe Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation>Taille des lignes</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation>Taille du texte (px)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation>Label de l&apos;axe X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation>Label de l&apos;axe Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation>Échelle logarithmique en X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation>Montrer la graduation de l&apos;axe X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation>Montrer la graduation de l&apos;axe Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation>Copier vers le presse-papiers</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation>Sauvegarder le graphe</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation>Sauvegarder le graphe sous</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation>Charger un graphe</translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation>Fonction</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation>Fonctions</translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation>Gain de Bode</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation>Gains de Bode</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation>passe-bas</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation>passe-haut</translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation>Nouveau %1 %2 créé(e).</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation>%1 %2 supprimé(e).</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation>%1 de %2 %3 modifiée de &quot;%4&quot; à &quot;%5&quot;.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation>%1 %2 affiché(e).</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation>%1 %2 cachée(e).</translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation> Au dessus</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation> En dessous</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation> À gauche</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation> À droite</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation> Au dessus à gauche</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation> Au dessus à droite</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation> En dessous à gauche</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation> En dessous à droite</translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation>Phase de Bode</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation>Phases de Bode</translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation>Point</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation>Points</translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation>Répartition</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation>Fonctions de répartition</translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation>Suite</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation>Suites</translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation>Sommes des gains de Bode</translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation>Somme des phases de Bode</translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation>Texte</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation>Textes</translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation>Une mise à jour de LogarithmPlotter (v{}) est disponible.</translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation>À jour.</translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation>Impossible de récupérer les informations de mise à jour. Erreur du serveur {}.</translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation>Impossible de récupérer les informations de mise à jour. {}.</translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation>Curseur X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation>Curseurs X</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,682 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="hu">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation>LogarithmPlotter névjegye</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation>LogarithmPlotter %1 verzió</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation>Síkbeli ábrázolásszoftver Bode-ábrák, sorozatok és eloszlási funkciók készítéséhez.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation>Hiba bejelentése</translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation>&amp;Fájl</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation>&amp;Betöltés</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation>&amp;Mentés</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation>Me&amp;ntés másként</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation>&amp;Kilépés</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation>S&amp;zerkesztés</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation>&amp;Visszavonás</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation>&amp;Ismétlés</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation>Ábra &amp;solása</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation>&amp;Létrehozás</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation>&amp;Beállítások</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation>Frissítések keresése indításkor</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<translation>Ismétlési verem önműködő visszaállítása</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation>&amp;Súgó</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation>&amp;Forráskód</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation>&amp;Hiba bejelentése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation>&amp;Segítség a fordításban!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation>&amp;Névjegy</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation>Menti a változtatásokat?</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<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>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation>%1 %2 tulajdonságainak szerkesztése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation>Név</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation>Címke tartalom</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation>üres</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation>név</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation>név + érték</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translation>+ Új %1 létrehozása</translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation>Logaritmus-ábra-fájl exportálása</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation>Logaritmus-ábra-fájl importálása</translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation>Isten hozott a LogarithmPlotter!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation>%1 verzió</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
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.
Ezek a beállítások bármikor módosíthatók a Beállítások menüben.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<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>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<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>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation>Kész</translation>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation>Ismétlés &gt;</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation>&gt; Most</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation>&lt; Visszavonás</translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation>Tárgyak</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation>Beállítások</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation>Előzmények</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation>Ábra mentve ide: %1.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation>A(z) %1 fájl betöltése folyamatban van.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation>Ismeretlen objektumtípus: %1.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation>A megadott fájl érvénytelen.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation>A fájl mentése nem sikerült: </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation>A(z) %1 fájl betöltve.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation>Ábra képernyőkép vágólapra másolva!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation>&amp;Frissítés</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation>A LogarithmPlotter &amp;frissítése</translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation>+ Új létrehozása:</translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation>Összes %1 elrejtése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation>Összes %1 megjelenítése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation>%1 %2 elrejtése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation>%1 %2 megjelenítése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation>%1 %2 helye beállítása</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation>%1 %2 törlése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation>Válasszon új színt a következőhöz: %1 %2</translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation>Mutató pontossága:</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation>Rácshoz illesztés</translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation>X-nagyítás</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation>Y-nagyítás</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation>Legkisebb X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation>Legnagyobb Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation>Legnagyobb X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation>Legkisebb Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation>X tengely lépésköze</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation>Y tengely lépésköze</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation>Vonalvastagság</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation>Szövegméret (képpont)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation>X címke</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation>Y címke</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation>X tengely logaritmikus skálával</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation>X érettségi megjelenítése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation>Y érettségi megjelenítése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation>Másolás a vágólapra</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation>Ábra mentése</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation>Ábra mentése másként</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation>Ábra betöltése</translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation>Függvény</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation>Függvények</translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation>Bode-nagyságrend</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation>Bode-nagyságrendek</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation>aluláteresztő</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation>felüláteresztő</translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation>Új %1 %2 létrehozva.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation>%1 %2 törölve.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation>%1/%2 %3 megváltozott. Régi érték: %4, új érték: %5.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation>%1 %2 megjelenítve.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation>%1 %2 rejtve.</translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation> Felett</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation> Alatt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation> Balra</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation> Jobbra</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation> Felett, balra</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation> Felett, jobbra</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation> Alatt, balra</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation> Alatt, jobbra</translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation>Bode-fázis</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation>Bode-fázisok</translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation>Pont</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation>Pontok</translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation>Elosztás</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation>Elosztási függvények</translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation>Sorozat</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation>Sorozatok</translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation>Bode-nagyságrendek összege</translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation>Bode-fázisok összege</translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation>Szöveg</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation>Szövegek</translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation>Elérhető a Logaritmus-ábrázoló ({} verzió) frissítése.</translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation>Nincs telepíthető frissítés.</translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation>Nem sikerült lekérni a frissítési adatokat: Kiszolgálóhiba: {}.</translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation>Nem sikerült lekérni a frissítési adatokat: {}.</translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation>X kurzor</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation>X kurzorok</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,682 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="nb_NO">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation>Om</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation>LogarithmPlotter v%1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation type="unfinished">2D-plotterprogramvare laget for opprettelse av Bode-diagram, sekvenser, og distribusjonsfunksjoner.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation>Rapporter en feil</translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation>&amp;Fil</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation>&amp;Last inn </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation>&amp;Lagre</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation>Lagre &amp;som </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation>&amp;Avslutt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation>&amp;Rediger</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation>&amp;Angre</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation>&amp;Gjenta</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation>&amp;Kopier plott</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation>&amp;Opprett</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation>&amp;Innstillinger</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation>Se etter nye versjoner ved programstart</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<translation type="unfinished">Tilbakestill angrehistorikk automatisk</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation>&amp;Hjelp</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation>&amp;Om</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation>Rediger egenskaper for %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation>Navn</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation>Etikett-innhold</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation>NULL</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation>navn</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation>navn + veri</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translation>+ Opprett nytt %1</translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation type="unfinished">Eksporter logaritmeplott-fil</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation>Importer logaritmeplott-fil</translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation>Velkommen til LogarithmPlotter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation>Versjon %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation>Sett opp LogarithmPlotter.
Disse innstillingene kan endres når som helst fra «Innstillinger»-menyen.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<source>Check for updates on startup (requires online connectivity)</source>
<translation>Se etter nye versjoner ved programstart. (Krever tilkobling til Internett.)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<source>Reset redo stack when a new action is added to history</source>
<translation>Tilbakesitll angrehistorikk når en ny handling legges til</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation>Angre &gt;</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation>&gt; </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation>&lt; Angre</translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation>Objekter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation>Innstillinger</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation>Historikk</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation>Lagret plott i «%1».</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation>Laster inn «%1»-fil.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation>Ukjent objekttype: %1.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation>Ugyldig fil angitt.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation>Kunne ikke lagre fil: </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation>Lastet inn filen «%1».</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation>Kopierte plott-skjermavbildning til utklippstavlen!</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation>&amp;Oppdater</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation>&amp;Installer ny versjon av LogartimePlotter</translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation>+ Opprett ny:</translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation>Skjul alle %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation>Vis alle %1</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation>Skjul %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation>Vis %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation type="unfinished">Sett %1 %2 posisjon</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation>Slett %1 %2</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation>Velg ny farge for %1 %2</translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation>Peker-presisjon:</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation>Fest til rutenett</translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation>X-forstørrelse</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation>Y-forstørrelse</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation>Min. X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation>Maks. Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation>Maks. X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation>Min. Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation>X-aksesteg</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation>Y-aksesteg</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation>Linjebredde</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation>Tekststørrelse (piksler)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation>Navn X-akse</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation>Navn Y-akse</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation>Logaritmisk skala i x</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation type="unfinished">Vis X-inndeling</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation type="unfinished">Vis Y-inndeling</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation>Kopier til utklippstavle</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation>Lagre plott</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation>Lagre plott som</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation>Last inn plott</translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation>Funksjon</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation>Funksjoner</translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation>Bode-magnitude</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation>Bode-magnituder</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation>lavpass</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation>høypass</translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation>Ny %1 %2 opprettet.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation>%1 %2 slettet.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation>%1 av %2 %3 endret fra «%4» til «%5».</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation>%1 %2 vist.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation>%1 %2 skjult.</translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation>Bode-fase</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation>Bode-faser</translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation>Punkt</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation>Punkter</translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation>Distribusjon</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation>Distribusjonsfunksjoner</translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation>Følge</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation type="unfinished">Følger</translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation>Bode-magnitudesum</translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation>Bode-fasesum</translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation>Tekst</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation>Tekster</translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation>En ny versjon av LogartimePlotter (v{}) er tilgjengelig</translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation>Ingen nye versjoner.</translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation>Fant ikke ut om det er noen nye versjoner. Tjenerfeil {}.</translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation>Kunne ikke hente info om hvorvidt det er nye versjoner: {}.</translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation type="unfinished">X-peker</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation type="unfinished">X-pekere</translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,681 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>About</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="26"/>
<location filename="../logarithmplotter.py" line="201"/>
<source>About LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="52"/>
<source>LogarithmPlotter v%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="64"/>
<source>2D plotter software to make BODE plots, sequences and repartition functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/About.qml" line="103"/>
<source>Report a bug</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="28"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="30"/>
<source>&amp;Load...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="37"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="43"/>
<source>Save &amp;As...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="51"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="65"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="67"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="75"/>
<source>&amp;Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="84"/>
<source>&amp;Copy plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="92"/>
<source>&amp;Create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="114"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="117"/>
<source>Check for updates on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="126"/>
<source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="135"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="137"/>
<source>&amp;Source code</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="142"/>
<source>&amp;Report a bug</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="147"/>
<source>&amp;Help translating!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="153"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="162"/>
<source>Save unsaved changes?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="164"/>
<source>This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditorDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="45"/>
<source>Edit properties of %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="59"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="84"/>
<source>Label content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>null</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="85"/>
<source>name + value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="184"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="200"/>
<source>+ Create new %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FileDialog</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Export Logarithm Plot file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/FileDialog.qml" line="26"/>
<source>Import Logarithm Plot file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GreetScreen</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="58"/>
<source>Welcome to LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="72"/>
<source>Version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="84"/>
<source>Take a few seconds to configure LogarithmPlotter.
These settings can be changed at any time from the &quot;Settings&quot; menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="93"/>
<source>Check for updates on startup (requires online connectivity)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="105"/>
<source>Reset redo stack when a new action is added to history</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/GreetScreen.qml" line="113"/>
<source>Done</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryBrowser</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="63"/>
<source>Redo &gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="82"/>
<source>&gt; Now</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/HistoryBrowser.qml" line="116"/>
<source>&lt; Undo</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LogarithmPlotter</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="77"/>
<source>Objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="83"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="89"/>
<source>History</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="197"/>
<source>Saved plot to &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="203"/>
<source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="242"/>
<source>Unknown object type: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="256"/>
<source>Invalid file provided.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="260"/>
<source>Could not save file: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="265"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="294"/>
<source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="305"/>
<source>&amp;Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="307"/>
<source>&amp;Update LogarithmPlotter</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ObjectCreationGrid</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectCreationGrid.qml" line="32"/>
<source>+ Create new:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ObjectLists</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Hide all %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="63"/>
<source>Show all %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="100"/>
<source>Hide %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="101"/>
<source>Show %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="139"/>
<source>Set %1 %2 position</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="164"/>
<source>Delete %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectLists.qml" line="197"/>
<source>Pick new color for %1 %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PickLocationOverlay</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="88"/>
<source>Pointer precision:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/PickLocationOverlay.qml" line="108"/>
<source>Snap to grid</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Settings</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="74"/>
<source>X Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="89"/>
<source>Y Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="105"/>
<source>Min X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="124"/>
<source>Max Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="139"/>
<source>Max X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="158"/>
<source>Min Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="175"/>
<source>X Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="189"/>
<source>Y Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="203"/>
<source>Line width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="218"/>
<source>Text size (px)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="233"/>
<source>X Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="259"/>
<source>Y Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="287"/>
<source>X Log scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="297"/>
<source>Show X graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="307"/>
<source>Show Y graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="318"/>
<source>Copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="327"/>
<source>Save plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="336"/>
<source>Save plot as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="345"/>
<source>Load plot</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>function</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="29"/>
<source>Function</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/function.js" line="30"/>
<source>Functions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>gainbode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="31"/>
<source>Bode Magnitude</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="32"/>
<source>Bode Magnitudes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>low-pass</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/gainbode.js" line="72"/>
<source>high-pass</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>historylib</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="77"/>
<source>New %1 %2 created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="94"/>
<source>%1 %2 deleted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="133"/>
<source>%1 of %2 %3 changed from &quot;%4&quot; to &quot;%5&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="147"/>
<source>%1 %2 shown.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/historylib.js" line="149"/>
<source>%1 %2 hidden.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>parameters</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="61"/>
<source>above</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="62"/>
<source>below</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="63"/>
<source>left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="64"/>
<source>right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="65"/>
<source>above-left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="66"/>
<source>above-right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="67"/>
<source>below-left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/parameters.js" line="68"/>
<source>below-right</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>phasebode</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="30"/>
<source>Bode Phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/phasebode.js" line="31"/>
<source>Bode Phases</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>point</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="28"/>
<source>Point</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/point.js" line="29"/>
<source>Points</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>repartition</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="26"/>
<source>Repartition</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/repartition.js" line="27"/>
<source>Repartition functions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>sequence</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="29"/>
<source>Sequence</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/sequence.js" line="30"/>
<source>Sequences</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>sommegainsbode</name>
<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"/>
<source>Bode Magnitudes Sum</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>sommephasesbode</name>
<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"/>
<source>Bode Phases Sum</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>text</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="28"/>
<source>Text</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/text.js" line="29"/>
<source>Texts</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>update</name>
<message>
<location filename="../update.py" line="54"/>
<source>An update for LogarithPlotter (v{}) is available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../update.py" line="58"/>
<source>No update available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../update.py" line="61"/>
<source>Could not fetch update information: Server error {}.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../update.py" line="63"/>
<source>Could not fetch update information: {}.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>xcursor</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="29"/>
<source>X Cursor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/js/objs/xcursor.js" line="30"/>
<source>X Cursors</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -0,0 +1,2 @@
#!/bin/bash
lrelease *.ts

View file

@ -0,0 +1,2 @@
#!/bin/bash
lupdate -extensions js,qs,qml,py -recursive .. -ts lp_*.ts

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -22,7 +22,7 @@ start_time = time()
from PySide2.QtWidgets import QApplication, QFileDialog
from PySide2.QtQml import QQmlApplicationEngine, qmlRegisterType
from PySide2.QtCore import Qt, QObject, Signal, Slot, Property
from PySide2.QtCore import Qt, QObject, Signal, Slot, Property, QTranslator, QLocale, QCoreApplication
from PySide2.QtGui import QIcon, QImage, QKeySequence
from PySide2 import __version__ as PySide2_version
@ -46,8 +46,8 @@ if path.realpath(path.join(getcwd(), "..")) not in sys_path:
from LogarithmPlotter import config, native, __VERSION__
from LogarithmPlotter.update import check_for_updates
config.init()
config.init()
def get_linux_theme():
des = {
@ -63,6 +63,10 @@ def get_linux_theme():
return "Material"
class Helper(QObject):
def __init__(self, engine: QQmlApplicationEngine):
QObject.__init__(self)
self.engine = engine;
@Slot(str, str)
def write(self, filename, filedata):
@ -80,6 +84,7 @@ class Helper(QObject):
def load(self, filename):
chdir(pwd)
data = '{}'
from PySide2.QtWidgets import QMessageBox
if path.exists(path.realpath(filename)):
f = open(path.realpath(filename), 'r', -1, 'utf8')
data = f.read()
@ -93,13 +98,12 @@ class Helper(QObject):
else:
raise Exception("Invalid LogarithmPlotter file.")
except Exception as e: # If file can't be loaded
from PySide2.QtWidgets import QMessageBox
QMessageBox.warning(None, 'LogarithmPlotter', 'Could not open file "{}":\n{}'.format(filename, e), QMessageBox.Ok) # Cannot parse file
QMessageBox.warning(None, 'LogarithmPlotter', QCoreApplication.translate('main','Could not open file "{}":\n{}').format(filename, e), QMessageBox.Ok) # Cannot parse file
else:
QMessageBox.warning(None, 'LogarithmPlotter', 'Could not open file: "{}"\nFile does not exist.'.format(filename), QMessageBox.Ok) # Cannot parse file
QMessageBox.warning(None, 'LogarithmPlotter', QCoreApplication.translate('main','Could not open file: "{}"\nFile does not exist.').format(filename), QMessageBox.Ok) # Cannot parse file
chdir(path.dirname(path.realpath(__file__)))
return data
@Slot(result=str)
def gettmpfile(self):
global tmpfile
@ -131,12 +135,16 @@ class Helper(QObject):
def setSettingBool(self, namespace, value):
return config.setSetting(namespace, value)
@Slot(str)
def setLanguage(self, new_lang):
config.setSetting("language", new_lang)
@Slot(result=str)
def getDebugInfos(self):
"""
Returns the version info about Qt, PySide2 & Python
"""
return "Built with PySide2 (Qt) v{} and python v{}".format(PySide2_version, sys_version.split("\n")[0])
return QCoreApplication.translate('main',"Built with PySide2 (Qt) v{} and python v{}").format(PySide2_version, sys_version.split("\n")[0])
@Slot(str)
def openUrl(self, url):
@ -166,6 +174,14 @@ def run():
app.setOrganizationName("Ad5001")
app.setWindowIcon(QIcon(path.realpath(path.join(getcwd(), "logarithmplotter.svg"))))
# Installing translators
translator = QTranslator()
# Check if lang is forced.
forcedlang = [p for p in argv if p[:7]=="--lang="]
locale = QLocale(forcedlang[0][7:]) if len(forcedlang) > 0 else QLocale()
if (translator.load(locale, "lp", "_", path.realpath(path.join(getcwd(), "i18n")))):
app.installTranslator(translator);
# Installing macOS file handler.
macOSFileOpenHandler = None
if platform == "darwin":
@ -173,13 +189,16 @@ def run():
app.installEventFilter(macOSFileOpenHandler)
engine = QQmlApplicationEngine()
helper = Helper()
helper = Helper(engine)
engine.rootContext().setContextProperty("Helper", helper)
engine.rootContext().setContextProperty("TestBuild", "--test-build" in argv)
engine.rootContext().setContextProperty("StartTime", dep_time)
app.translate("About","About LogarithmPlotter") # FOR SOME REASON, if this isn't included, Qt refuses to load the QML file.
engine.addImportPath(path.realpath(path.join(getcwd(), "qml")))
engine.load(path.realpath(path.join(getcwd(), "qml", "eu", "ad5001", "LogarithmPlotter", "LogarithmPlotter.qml")))
if not engine.rootObjects():
print("No root object", path.realpath(path.join(getcwd(), "qml")))

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -23,7 +23,7 @@ import QtQuick.Controls 2.12
D.Dialog {
id: about
title: `About LogarithmPlotter`
title: qsTr("About LogarithmPlotter")
width: 400
height: 600
@ -49,7 +49,7 @@ D.Dialog {
width: parent.width
wrapMode: Text.WordWrap
font.pixelSize: 25
text: "LogarithmPlotter v" + Helper.getVersion()
text: qsTr("LogarithmPlotter v%1").arg(Helper.getVersion())
}
Label {
@ -61,7 +61,7 @@ D.Dialog {
width: parent.width
wrapMode: Text.WordWrap
font.pixelSize: 18
text: "Create graphs with logarithm scales."
text: qsTr("2D plotter software to make BODE plots, sequences and repartition functions.")
}
Label {
@ -100,7 +100,7 @@ You should have received a copy of the GNU General Public License along with thi
anchors.top: copyrightInfos.bottom
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 10
text: 'Report a bug'
text: qsTr('Report a bug')
icon.name: 'bug'
onClicked: Helper.openUrl('https://git.ad5001.eu/Ad5001/LogarithmPlotter')
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -17,6 +17,7 @@
*/
import QtQuick 2.12
import QtQuick.Dialogs 1.3
import eu.ad5001.MixedMenu 1.1
import "js/objects.js" as Objects
import "js/historylib.js" as HistoryLib
@ -49,7 +50,13 @@ MenuBar {
Action {
text: qsTr("&Quit")
shortcut: StandardKey.Quit
onTriggered: Qt.quit()
onTriggered: {
if(settings.saved)
Qt.quit()
else
saveUnsavedChangesDialog.visible = true;
}
icon.name: 'application-exit'
}
}
@ -126,6 +133,22 @@ MenuBar {
Menu {
title: qsTr("&Help")
Action {
text: qsTr("&Source code")
icon.name: 'code'
onTriggered: Helper.openUrl("https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues")
}
Action {
text: qsTr("&Report a bug")
icon.name: 'bug'
onTriggered: Helper.openUrl("https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues")
}
Action {
text: qsTr("&Help translating!")
icon.name: 'translator'
onTriggered: Helper.openUrl("https://hosted.weblate.org/engage/logarithmplotter/")
}
MenuSeparator { }
Action {
text: qsTr("&About")
shortcut: StandardKey.HelpContents
@ -133,4 +156,17 @@ MenuBar {
onTriggered: about.open()
}
}
MessageDialog {
id: saveUnsavedChangesDialog
title: qsTr("Save unsaved changes?")
icon: StandardIcon.Question
text: qsTr("This plot contains unsaved changes. By doing this, all unsaved data will be lost. Continue?")
standardButtons: StandardButton.Yes | StandardButton.No
onYes: Qt.quit()
}
function showSaveUnsavedChangesDialog() {
saveUnsavedChangesDialog.visible = true
}
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -23,10 +23,9 @@ D.FileDialog {
property bool exportMode: false
title: exportMode ? "Export Logarithm Plot file" : "Import Logarithm Plot file"
title: exportMode ? qsTr("Export Logarithm Plot file") : qsTr("Import Logarithm Plot file")
nameFilters: ["Logarithm Plot File (*.lpf)", "All files (*)"]
folder: shortcuts.documents
selectExisting: !exportMode
}

View file

@ -1,6 +1,6 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -24,7 +24,7 @@ Popup {
id: greetingPopup
x: (parent.width-width)/2
y: Math.max(20, (parent.height-height)/2)
width: 600
width: Math.max(welcome.width, checkForUpdatesSetting.width, resetRedoStackSetting.width)+20
height: Math.min(parent.height-40, 500)
modal: true
focus: true
@ -55,7 +55,7 @@ Popup {
//width: parent.width
wrapMode: Text.WordWrap
font.pixelSize: 32
text: "Welcome to LogarithmPlotter"
text: qsTr("Welcome to LogarithmPlotter")
}
}
@ -69,7 +69,7 @@ Popup {
width: implicitWidth
font.pixelSize: 18
font.italic: true
text: "Version " + Helper.getVersion()
text: qsTr("Version %1").arg(Helper.getVersion())
}
Label {
@ -81,7 +81,7 @@ Popup {
wrapMode: Text.WordWrap
font.pixelSize: 14
width: parent.width - 50
text: "Take a few seconds to configure LogarithmPlotter.\nThese settings can always be changed at any time from the \"Settings\" menu."
text: qsTr("Take a few seconds to configure LogarithmPlotter.\nThese settings can be changed at any time from the \"Settings\" menu.")
}
CheckBox {
@ -90,7 +90,7 @@ Popup {
anchors.top: helpText.bottom
anchors.topMargin: 10
checked: Helper.getSettingBool("check_for_updates")
text: 'Check for updates on startup (requires online connectivity)'
text: qsTr('Check for updates on startup (requires online connectivity)')
onClicked: {
Helper.setSettingBool("check_for_updates", checked)
checkForUpdatesMenuSetting.checked = checked
@ -102,7 +102,7 @@ Popup {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: checkForUpdatesSetting.bottom
checked: Helper.getSettingBool("reset_redo_stack")
text: '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: {
Helper.setSettingBool("reset_redo_stack", checked)
resetRedoStackMenuSetting.checked = checked
@ -110,7 +110,7 @@ Popup {
}
Button {
text: "Done"
text: qsTr("Done")
font.pixelSize: 20
anchors.bottom: parent.bottom
anchors.bottomMargin: 10

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -29,6 +29,8 @@ Item {
property int redoCount: 0
property var undoStack: []
property var redoStack: []
// Only true when no modification was done to the current working file.
property bool saved: true
function clear() {
undoStack = []
@ -71,6 +73,7 @@ Item {
redoStack = []
redoCount = 0
}
saved = false
}
}
@ -82,6 +85,7 @@ Item {
redoStack.push(action)
undoCount--;
redoCount++;
saved = false
}
}
@ -93,17 +97,22 @@ Item {
undoStack.push(action)
undoCount++;
redoCount--;
saved = false
}
}
function undoMultipleDefered(toUndoCount) {
undoTimer.toUndoCount = toUndoCount;
undoTimer.start()
if(toUndoCount > 0)
saved = false
}
function redoMultipleDefered(toRedoCount) {
redoTimer.toRedoCount = toRedoCount;
redoTimer.start()
if(toRedoCount > 0)
saved = false
}
Timer {

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -60,7 +60,7 @@ ScrollView {
Text {
anchors.left: parent.left
anchors.bottom: nowRect.top
text: "Redo >"
text: qsTr("Redo >")
color: sysPaletteIn.windowText
transform: Rotation { origin.x: 30; origin.y: 30; angle: 270}
height: 70
@ -79,7 +79,7 @@ ScrollView {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 5
text: "> Now"
text: qsTr("> Now")
color: sysPalette.windowText
}
}
@ -113,7 +113,7 @@ ScrollView {
Text {
anchors.left: parent.left
anchors.top: undoColumn.top
text: "< Undo"
text: qsTr("< Undo")
color: sysPaletteIn.windowText
transform: Rotation { origin.x: 30; origin.y: 30; angle: 270}
height: 60

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -34,11 +34,12 @@ ApplicationWindow {
width: 1000
height: 500
color: sysPalette.window
title: "LogarithmPlotter " + (settings.saveFilename != "" ? " - " + settings.saveFilename.split('/').pop() : "")
title: "LogarithmPlotter " + (settings.saveFilename != "" ? " - " + settings.saveFilename.split('/').pop() : "") + (history.saved ? "" : "*")
SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active }
SystemPalette { id: sysPaletteIn; colorGroup: SystemPalette.Disabled }
menuBar: appMenu.trueItem
GreetScreen {}
@ -193,12 +194,13 @@ ApplicationWindow {
"objects": objs,
"type": "logplotv1"
}))
alert.show("Saved plot to '" + filename.split("/").pop() + "'.")
alert.show(qsTr("Saved plot to '%1'.").arg(filename.split("/").pop()))
history.saved = true
}
function loadDiagram(filename) {
let basename = filename.split("/").pop()
alert.show("Loading file '" + basename + "'.")
alert.show(qsTr("Loading file '%1'.").arg(basename))
let data = JSON.parse(Helper.load(filename))
let error = "";
if(Object.keys(data).includes("type") && data["type"] == "logplotv1") {
@ -237,7 +239,7 @@ ApplicationWindow {
Objects.currentObjects[objType].push(obj)
}
} else {
error += "Unknown object type: " +objType + "\n";
error += qsTr("Unknown object type: %1.").arg(objType) + "\n";
}
}
// Refreshing sidebar
@ -251,15 +253,17 @@ ApplicationWindow {
objectLists.update()
}
} else {
error = "Invalid file provided."
error = qsTr("Invalid file provided.")
}
if(error != "") {
console.log(error)
alert.show("Could not save file: " + error)
alert.show(qsTr("Could not save file: ") + error)
// TODO: Error handling
return
}
drawCanvas.requestPaint()
alert.show("Loaded file '" + basename + "'.")
alert.show(qsTr("Loaded file '%1'.").arg(basename))
history.saved = true
}
Timer {
@ -276,11 +280,18 @@ ApplicationWindow {
onTriggered: Qt.quit() // Quit after paint on test build
}
onClosing: {
if(!history.saved) {
close.accepted = false
appMenu.showSaveUnsavedChangesDialog()
}
}
function copyDiagramToClipboard() {
var file = Helper.gettmpfile()
drawCanvas.save(file)
Helper.copyImageToClipboard()
alert.show("Copied plot screenshot to clipboard!")
alert.show(qsTr("Copied plot screenshot to clipboard!"))
}
function showAlert(alertText) {

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -42,7 +42,7 @@ D.Dialog {
anchors.left: parent.left
anchors.top: parent.top
verticalAlignment: TextInput.AlignVCenter
text: `Edit properties of ${objEditor.objType} ${objEditor.obj.name}`
text: qsTr("Edit properties of %1 %2").arg(Objects.types[objEditor.objType].displayType()).arg(objEditor.obj.name)
font.pixelSize: 20
color: sysPalette.windowText
}
@ -56,7 +56,7 @@ D.Dialog {
TextSetting {
id: nameProperty
height: 30
label: "Name"
label: qsTr("Name")
icon: "icons/settings/custom/label.svg"
min: 1
width: dlgProperties.width
@ -65,7 +65,6 @@ D.Dialog {
var newName = Utils.parseName(newValue)
if(newName != '' && objEditor.obj.name != newName) {
if(Objects.getObjectByName(newName) != null) {
console.log(Objects.getObjectByName(newName).name, newName)
newName = ObjectsCommons.getNewName(newName)
}
history.addToHistory(new HistoryLib.NameChanged(
@ -82,13 +81,14 @@ D.Dialog {
id: labelContentProperty
height: 30
width: dlgProperties.width
label: "Label content"
model: ["null", "name", "name + value"]
label: qsTr("Label content")
model: [qsTr("null"), qsTr("name"), qsTr("name + value")]
property var idModel: ["null", "name", "name + value"]
icon: "icons/settings/custom/label.svg"
currentIndex: model.indexOf(objEditor.obj.labelContent)
currentIndex: idModel.indexOf(objEditor.obj.labelContent)
onActivated: function(newIndex) {
if(model[newIndex] != objEditor.obj.labelContent) {
objEditor.obj.labelContent = model[newIndex]
if(idModel[newIndex] != objEditor.obj.labelContent) {
objEditor.obj.labelContent = idModel[newIndex]
objectListList.update()
}
}
@ -109,7 +109,7 @@ D.Dialog {
width: parent.width
height: visible ? implicitHeight : 0
visible: modelData[0].startsWith('comment')
text: visible ? modelData[1].replace(/\{name\}/g, objEditor.obj.name) : ''
text: visible ? (modelData[1].replace(/\{name\}/g, objEditor.obj.name)) : ''
//color: sysPalette.windowText
wrapMode: Text.WordWrap
}
@ -180,23 +180,25 @@ D.Dialog {
// True to select an object of type, false for enums.
property bool selectObjMode: paramTypeIn(modelData[1], ['ObjectType'])
model: visible ?
(selectObjMode ? Objects.getObjectsName(modelData[1].objType).concat(['+ Create new ' + modelData[1].objType]) : modelData[1].values)
property var baseModel: visible ?
(selectObjMode ? Objects.getObjectsName(modelData[1].objType).concat([qsTr("+ Create new %1").arg(Objects.types[modelData[1].objType].displayType())]) : modelData[1].values)
: []
// Translate the model if necessary.
model: selectObjMode ? baseModel : baseModel.map(x => qsTr(x))
visible: paramTypeIn(modelData[1], ['ObjectType', 'Enum'])
currentIndex: model.indexOf(selectObjMode ? objEditor.obj[modelData[0]].name : objEditor.obj[modelData[0]])
currentIndex: baseModel.indexOf(selectObjMode ? objEditor.obj[modelData[0]].name : objEditor.obj[modelData[0]])
onActivated: function(newIndex) {
if(selectObjMode) {
// This is only done when what we're selecting are Objects.
// Setting object property.
var selectedObj = Objects.getObjectByName(model[newIndex], modelData[1].objType)
var selectedObj = Objects.getObjectByName(baseModel[newIndex], modelData[1].objType)
if(selectedObj == null) {
// Creating new object.
selectedObj = Objects.createNewRegisteredObject(modelData[1].objType)
history.addToHistory(new HistoryLib.CreateNewObject(selectedObj.name, modelData[1].objType, selectedObj.export()))
model = Objects.getObjectsName(modelData[1].objType).concat(['+ Create new ' + modelData[1].objType])
currentIndex = model.indexOf(selectedObj.name)
baseModel = Objects.getObjectsName(modelData[1].objType).concat([qsTr("+ Create new %1").arg(Objects.types[modelData[1].objType].displayType())])
currentIndex = baseModel.indexOf(selectedObj.name)
}
//Objects.currentObjects[objEditor.objType][objEditor.objIndex].requiredBy = objEditor.obj[modelData[0]].filter((obj) => objEditor.obj.name != obj.name)
objEditor.obj.requiredBy = objEditor.obj.requiredBy.filter((obj) => objEditor.obj.name != obj.name)
@ -206,13 +208,13 @@ D.Dialog {
objEditor.obj[modelData[0]], selectedObj
))
objEditor.obj[modelData[0]] = selectedObj
} else if(model[newIndex] != objEditor.obj[modelData[0]]) {
} else if(baseModel[newIndex] != objEditor.obj[modelData[0]]) {
// Ensuring new property is different to not add useless history entries.
history.addToHistory(new HistoryLib.EditedProperty(
objEditor.obj.name, objEditor.objType, modelData[0],
objEditor.obj[modelData[0]], model[newIndex]
objEditor.obj[modelData[0]], baseModel[newIndex]
))
objEditor.obj[modelData[0]] = model[newIndex]
objEditor.obj[modelData[0]] = baseModel[newIndex]
}
// Refreshing
Objects.currentObjects[objEditor.objType][objEditor.objIndex].update()

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -29,7 +29,7 @@ Column {
Label {
id: createTitle
verticalAlignment: TextInput.AlignVCenter
text: '+ Create new:'
text: qsTr('+ Create new:')
font.pixelSize: 20
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -60,7 +60,7 @@ ListView {
}
ToolTip.visible: hovered
ToolTip.text: checked ? `Hide all ${Objects.types[objType].displayTypeMultiple()}` : `Show all ${Objects.types[objType].displayTypeMultiple()}`
ToolTip.text: checked ? qsTr("Hide all %1").arg(Objects.types[objType].displayTypeMultiple()) : qsTr("Show all %1").arg(Objects.types[objType].displayTypeMultiple())
}
Label {
@ -96,7 +96,9 @@ ListView {
}
ToolTip.visible: hovered
ToolTip.text: checked ? `Hide ${objType} ${obj.name}` : `Show ${objType} ${obj.name}`
ToolTip.text: checked ?
qsTr("Hide %1 %2").arg(Objects.types[objType].displayType()).arg(obj.name) :
qsTr("Show %1 %2").arg(Objects.types[objType].displayType()).arg(obj.name)
}
Label {
@ -134,7 +136,7 @@ ListView {
property bool hasYProp: Objects.types[objType].properties().hasOwnProperty('y')
visible: hasXProp || hasYProp
ToolTip.visible: hovered
ToolTip.text: 'Set ' + Objects.types[objType].displayType() + ' position.'
ToolTip.text: qsTr("Set %1 %2 position").arg(Objects.types[objType].displayType()).arg(obj.name)
onClicked: {
positionPicker.objType = objType
@ -159,7 +161,7 @@ ListView {
icon.source: '../icons/delete.svg'
icon.color: sysPalette.buttonText
ToolTip.visible: hovered
ToolTip.text: 'Delete ' + Objects.types[objType].displayType() + '.'
ToolTip.text: qsTr("Delete %1 %2").arg(Objects.types[objType].displayType()).arg(obj.name)
onClicked: {
history.addToHistory(new HistoryLib.DeleteObject(
@ -191,8 +193,8 @@ ListView {
D.ColorDialog {
id: pickColor
color: obj.color
title: `Pick new color for ${objType} ${obj.name}`
color: obj.color.arg(obj.name)
title: qsTr("Pick new color for %1 %2").arg(Objects.types[objType].displayType())
onAccepted: {
history.addToHistory(new HistoryLib.EditedProperty(
obj.name, objType, "color",

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -85,7 +85,7 @@ Item {
Row {
height: precisionSlider.height
Text {
text: " Pointer precision: "
text: " "+ qsTr("Pointer precision:") + " "
color: 'black'
anchors.verticalCenter: parent.verticalCenter
}
@ -105,7 +105,7 @@ Item {
CheckBox {
id: snapToGridCheckbox
text: "Snap to grid"
text: qsTr("Snap to grid")
checked: false
}
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -18,6 +18,7 @@
import QtQuick.Controls 2.12
import QtQuick 2.12
import QtQuick.Dialogs 1.1
import "js/utils.js" as Utils
ScrollView {
@ -70,7 +71,7 @@ ScrollView {
id: zoomX
height: 30
isDouble: true
label: "X Zoom"
label: qsTr("X Zoom")
min: 1
icon: "icons/settings/xzoom.svg"
width: settings.settingWidth
@ -85,7 +86,7 @@ ScrollView {
id: zoomY
height: 30
isDouble: true
label: "Y Zoom"
label: qsTr("Y Zoom")
icon: "icons/settings/yzoom.svg"
width: settings.settingWidth
value: settings.yzoom.toFixed(2)
@ -101,7 +102,7 @@ ScrollView {
height: 30
isDouble: true
min: -Infinity
label: "Min X"
label: qsTr("Min X")
icon: "icons/settings/xmin.svg"
width: settings.settingWidth
defValue: settings.xmin
@ -120,7 +121,7 @@ ScrollView {
height: 30
isDouble: true
min: -Infinity
label: "Max Y"
label: qsTr("Max Y")
icon: "icons/settings/ymax.svg"
width: settings.settingWidth
defValue: settings.ymax
@ -135,7 +136,7 @@ ScrollView {
height: 30
isDouble: true
min: -Infinity
label: "Max X"
label: qsTr("Max X")
icon: "icons/settings/xmax.svg"
width: settings.settingWidth
value: canvas.px2x(canvas.canvasSize.width).toFixed(2)
@ -154,7 +155,7 @@ ScrollView {
height: 30
isDouble: true
min: -Infinity
label: "Min Y"
label: qsTr("Min Y")
icon: "icons/settings/ymin.svg"
width: settings.settingWidth
defValue: canvas.px2y(canvas.canvasSize.height).toFixed(2)
@ -171,7 +172,7 @@ ScrollView {
TextSetting {
id: xAxisStep
height: 30
label: "X Axis Step"
label: qsTr("X Axis Step")
icon: "icons/settings/xaxisstep.svg"
width: settings.settingWidth
defValue: settings.xaxisstep
@ -185,7 +186,7 @@ ScrollView {
TextSetting {
id: yAxisStep
height: 30
label: "Y Axis Step"
label: qsTr("Y Axis Step")
icon: "icons/settings/yaxisstep.svg"
width: settings.settingWidth
defValue: settings.yaxisstep
@ -199,7 +200,7 @@ ScrollView {
id: lineWidth
height: 30
isDouble: true
label: "Line width"
label: qsTr("Line width")
min: 1
icon: "icons/settings/linewidth.svg"
width: settings.settingWidth
@ -214,7 +215,7 @@ ScrollView {
id: textSize
height: 30
isDouble: true
label: "Text size (px)"
label: qsTr("Text size (px)")
min: 1
icon: "icons/settings/textsize.svg"
width: settings.settingWidth
@ -229,7 +230,7 @@ ScrollView {
id: xAxisLabel
height: 30
width: settings.settingWidth
label: 'X Label'
label: qsTr('X Label')
icon: "icons/settings/xlabel.svg"
model: ListModel {
ListElement { text: "" }
@ -255,7 +256,7 @@ ScrollView {
id: yAxisLabel
height: 30
width: settings.settingWidth
label: 'Y Label'
label: qsTr('Y Label')
icon: "icons/settings/ylabel.svg"
model: ListModel {
ListElement { text: "" }
@ -283,7 +284,7 @@ ScrollView {
CheckBox {
id: logScaleX
checked: settings.logscalex
text: 'X Log scale'
text: qsTr('X Log scale')
onClicked: {
settings.logscalex = checked
settings.changed()
@ -293,7 +294,7 @@ ScrollView {
CheckBox {
id: showXGrad
checked: settings.showxgrad
text: 'Show X graduation'
text: qsTr('Show X graduation')
onClicked: {
settings.showxgrad = checked
settings.changed()
@ -303,7 +304,7 @@ ScrollView {
CheckBox {
id: showYGrad
checked: settings.showygrad
text: 'Show Y graduation'
text: qsTr('Show Y graduation')
onClicked: {
settings.showygrad = checked
settings.changed()
@ -314,7 +315,7 @@ ScrollView {
id: copyToClipboard
height: 30
width: settings.settingWidth
text: "Copy to clipboard"
text: qsTr("Copy to clipboard")
icon.name: 'editcopy'
onClicked: root.copyDiagramToClipboard()
}
@ -323,7 +324,7 @@ ScrollView {
id: saveDiagram
height: 30
width: settings.settingWidth
text: "Save plot"
text: qsTr("Save plot")
icon.name: 'document-save'
onClicked: save()
}
@ -332,7 +333,7 @@ ScrollView {
id: saveDiagramAs
height: 30
width: settings.settingWidth
text: "Save plot as"
text: qsTr("Save plot as")
icon.name: 'document-save-as'
onClicked: saveAs()
}
@ -341,7 +342,7 @@ ScrollView {
id: loadDiagram
height: 30
width: settings.settingWidth
text: "Load plot"
text: qsTr("Load plot")
icon.name: 'document-open'
onClicked: load()
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -107,14 +107,14 @@ Item {
property var insertChars: [
"α","β","γ","δ","ε","ζ","η",
"θ","κ","λ","μ","ξ","ρ","ς",
"σ","τ","φ","χ","ψ","ω","Γ",
"Δ","Θ","Λ","Ξ","Π","Σ","Φ",
"Ψ","Ω","ₐ","ₑ","ₒ","ₓ","ₕ",
"ₖ","ₗ","ₘ","ₙ","ₚ","ₛ","ₜ",
"¹","²","³","⁴","⁵","⁶","⁷",
"⁸","⁹","⁰","₁","₂","₃","₄",
"₅","₆","₇","₈","₉","₀"," "
"π","θ","κ","λ","μ","ξ","ρ",
"ς","σ","τ","φ","χ","ψ","ω",
"Γ","Δ","Θ","Λ","Ξ","Π","Σ",
"Φ","Ψ","Ω","ₐ","ₑ","ₒ","ₓ",
"ₕ","ₖ","ₗ","ₘ","ₙ","ₚ","ₛ",
"ₜ","¹","²","³","⁴","⁵","⁶",
"⁷","⁸","⁹","⁰","₁","₂","₃",
"₄","₅","₆","₇","₈","₉","₀"
]
Repeater {

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -74,7 +74,7 @@ class CreateNewObject extends Action {
}
getReadableString() {
return `New ${this.targetType} ${this.targetName} created.`
return qsTr("New %1 %2 created.").arg(Objects.types[this.targetType].displayType()).arg(this.targetName)
}
}
@ -91,7 +91,7 @@ class DeleteObject extends CreateNewObject {
}
getReadableString() {
return `${this.targetType} ${this.targetName} deleted.`
return qsTr("%1 %2 deleted.").arg(Objects.types[this.targetType].displayType()).arg(this.targetName)
}
}
@ -130,7 +130,7 @@ class EditedProperty extends Action {
getReadableString() {
var prev = this.previousValue == null ? ""+this.previousValue : this.previousValue.toString()
var next = this.newValue == null ? ""+this.newValue : this.newValue.toString()
return `${this.targetPropertyReadable} of ${this.targetType} ${this.targetName} changed from "${prev}" to "${next}".`
return qsTr('%1 of %2 %3 changed from "%4" to "%5".').arg(this.targetPropertyReadable).arg(Objects.types[this.targetType].displayType()).arg(this.targetName).arg(prev).arg(next)
}
}
@ -144,9 +144,9 @@ class EditedVisibility extends EditedProperty {
getReadableString() {
if(this.newValue) {
return `${this.targetType} ${this.targetName} shown.`
return qsTr('%1 %2 shown.').arg(this.targetType).arg(this.targetName)
} else {
return `${this.targetType} ${this.targetName} hidden.`
return qsTr('%1 %2 hidden.').arg(this.targetType).arg(this.targetName)
}
}
}

View file

@ -0,0 +1,160 @@
/**
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition 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 "expr-eval.js" as ExprEval
// Puts element within parenthesis
function par(elem) {
return '(' + elem + ')'
}
// checks if the element contains a string, and returns the parenthesis version if so.
function parif(elem, contents) {
return contents.some(elem.includes) ? par(elem) : elem
}
// Adpation of expressionToString for latex
function expressionToLatex(tokens) {
var nstack = [];
var n1, n2, n3;
var f, args, argCount;
for (var i = 0; i < tokens.length; i++) {
var item = tokens[i];
var type = item.type;
switch(type) {
case ExprEval.INUMBER:
if (typeof item.value === 'number' && item.value < 0) {
nstack.push(par(item.value));
} else if (Array.isArray(item.value)) {
nstack.push('[' + item.value.map(escapeValue).join(', ') + ']');
} else {
nstack.push(escapeValue(item.value));
}
break;
case ExprEval.IOP2:
n2 = nstack.pop();
n1 = nstack.pop();
f = item.value;
switch(f) {
case '-':
case '+':
nstack.push(n1 + this.ope + n2);
break;
case '||':
case 'or':
case '&&':
case 'and':
case '==':
case '!=':
nstack.push(par(n1) + this.ope + par(n2));
break;
case '*':
nstack.push(parif(n1,['+','-']) + " \\times " + parif(n2,['+','-']));
break;
case '/':
nstack.push("\\frac{" + n1 + "}{" + n2 + "}");
break;
case '^':
nstack.push(parif(n1,['+','-','*','/','!']) + "^{" + n2 + "}");
break;
case '%':
nstack.push(parif(n1,['+','-','*','/','!','^']) + " \\mathrm{mod} " + parif(n2,['+','-','*','/','!','^']));
break;
case '[':
nstack.push(n1 + '[' + n2 + ']');
break;
default:
throw new EvalError("Unknown operator " + ope + ".");
}
break;
case ExprEval.IOP3: // Thirdiary operator
n3 = nstack.pop();
n2 = nstack.pop();
n1 = nstack.pop();
f = item.value;
if (f === '?') {
nstack.push('(' + n1 + ' ? ' + n2 + ' : ' + n3 + ')');
} else {
throw new EvalError('Unknown operator ' + ope + '.');
}
break;
case ExprEval.IVAR:
case ExprEval.IVARNAME:
nstack.push(item.value);
break;
case ExprEval.IOP1: // Unary operator
n1 = nstack.pop();
f = item.value;
switch(f) {
case '-':
case '+':
nstack.push(par(f + n1));
break;
case '!':
nstack.push(parif(n1,['+','-','*','/','^']) + '!');
break;
default:
nstack.push(f + parif(n1,['+','-','*','/','^']));
break;
}
break;
case ExprEval.IFUNCALL:
argCount = item.value;
args = [];
while (argCount-- > 0) {
args.unshift(nstack.pop());
}
f = nstack.pop();
nstack.push(f + '(' + args.join(', ') + ')');
break;
case ExprEval.IFUNDEF:
nstack.push(par(n1 + '(' + args.join(', ') + ') = ' + n2));
break;
case ExprEval.IMEMBER:
n1 = nstack.pop();
nstack.push(n1 + '.' + item.value);
break;
case ExprEval.IARRAY:
argCount = item.value;
args = [];
while (argCount-- > 0) {
args.unshift(nstack.pop());
}
nstack.push('[' + args.join(', ') + ']');
break;
case ExprEval.IEXPR:
nstack.push('(' + expressionToLatex(item.value) + ')');
break;
case ExprEval.IENDSTATEMENT:
break;
default:
throw new EvalError('invalid Expression');
break;
}
}
if (nstack.length > 1) {
if (toJS) {
nstack = [ nstack.join(',') ];
} else {
nstack = [ nstack.join(';') ];
}
}
return Utils.makeExpressionReadable(String(nstack[0]));
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -373,7 +373,6 @@ class SpecialDomain extends Domain {
class DomainSet extends SpecialDomain {
constructor(values) {
super('', x => true, x => x, true)
console.log(values)
var newVals = {}
this.executedValues = []
for(var value of values) {

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -53,7 +53,6 @@ function getObjectsName(objType) {
types.forEach(function(elemType){
elementNames = elementNames.concat(currentObjects[elemType].map(obj => obj.name))
})
console.log(elementNames)
return elementNames
}
if(currentObjects[objType] == undefined) return []

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -26,20 +26,32 @@
class Function extends Common.ExecutableObject {
static type(){return 'Function'}
static displayType(){return 'Function'}
static displayTypeMultiple(){return 'Functions'}
static displayType(){return qsTr('Function')}
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': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),
'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'
'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 {
[QT_TR_NOOP('expression')]: 'Expression',
[QT_TR_NOOP('definitionDomain')]: 'Domain',
[QT_TR_NOOP('destinationDomain')]: 'Domain',
'comment1': 'Ex: R+* (ℝ⁺*), N (), Z-* (ℤ⁻*), ]0;1[, {3;4;5}',
[QT_TR_NOOP('labelPosition')]: P.Enum.Position,
[QT_TR_NOOP('displayMode')]: new P.Enum('application', 'function'),
[QT_TR_NOOP('labelX')]: 'number',
'comment2': 'The following parameters are used when the definition domain is a non-continuous set. (Ex: , , sets like {0;3}...)',
[QT_TR_NOOP('drawPoints')]: 'boolean',
[QT_TR_NOOP('drawDashedLines')]: 'boolean'
}}*/
constructor(name = null, visible = true, color = null, labelContent = 'name + value',
expression = 'x', definitionDomain = 'RPE', destinationDomain = 'R',
@ -146,7 +158,6 @@ class Function extends Common.ExecutableObject {
if(currentX === null) break;
if((definitionDomain.includes(currentX) || definitionDomain.includes(previousX)) &&
(destinationDomain.includes(currentY) || destinationDomain.includes(previousY))) {
console.log(drawDash, drawPoints)
if(drawDash)
canvas.drawDashedLine(ctx, canvas.x2px(previousX), canvas.y2px(previousY), canvas.x2px(currentX), canvas.y2px(currentY))
if(drawPoints) {

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -28,8 +28,8 @@
class GainBode extends Common.ExecutableObject {
static type(){return 'Gain Bode'}
static displayType(){return 'Bode Magnitude'}
static displayTypeMultiple(){return 'Bode Magnitudes'}
static displayType(){return qsTr('Bode Magnitude')}
static displayTypeMultiple(){return qsTr('Bode Magnitudes')}
static properties() {return {
'om_0': new P.ObjectType('Point'),
'pass': new P.Enum('high', 'low'),
@ -69,7 +69,8 @@ class GainBode extends Common.ExecutableObject {
}
getReadableString() {
return `${this.name}: ${this.pass}-pass; ${this.om_0.name} = ${this.om_0.x}\n ${' '.repeat(this.name.length)}${this.gain.toString(true)} dB/dec`
let pass = this.pass == "low" ? qsTr("low-pass") : qsTr("high-pass");
return `${this.name}: ${pass}; ${this.om_0.name} = ${this.om_0.x}\n ${' '.repeat(this.name.length)}${this.gain.toString(true)} dB/dec`
}
export() {

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -27,8 +27,8 @@
class PhaseBode extends Common.ExecutableObject {
static type(){return 'Phase Bode'}
static displayType(){return 'Bode Phase'}
static displayTypeMultiple(){return 'Bode Phases'}
static displayType(){return qsTr('Bode Phase')}
static displayTypeMultiple(){return qsTr('Bode Phases')}
static properties() {return {
'om_0': new P.ObjectType('Point'),
'phase': 'Expression',

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -25,8 +25,8 @@
class Point extends Common.DrawableObject {
static type(){return 'Point'}
static displayType(){return 'Point'}
static displayTypeMultiple(){return 'Points'}
static displayType(){return qsTr('Point')}
static displayTypeMultiple(){return qsTr('Points')}
static properties() {return {
'x': 'Expression',

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -23,8 +23,8 @@
class RepartitionFunction extends Common.ExecutableObject {
static type(){return 'Repartition'}
static displayType(){return 'Repartition'}
static displayTypeMultiple(){return 'Repartition functions'}
static displayType(){return qsTr('Repartition')}
static displayTypeMultiple(){return qsTr('Repartition functions')}
static properties() {return {
'beginIncluded': 'boolean',
'drawLineEnds': 'boolean',

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class Sequence extends Common.ExecutableObject {
static type(){return 'Sequence'}
static displayType(){return 'Sequence'}
static displayTypeMultiple(){return 'Sequences'}
static displayType(){return qsTr('Sequence')}
static displayTypeMultiple(){return qsTr('Sequences')}
static properties() {return {
'drawPoints': 'boolean',
'drawDashedLines': 'boolean',

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -27,8 +27,8 @@
class SommeGainsBode extends Common.DrawableObject {
static type(){return 'Somme gains Bode'}
static displayType(){return 'Bode Magnitudes Sum'}
static displayTypeMultiple(){return 'Bode Magnitudes Sum'}
static displayType(){return qsTr('Bode Magnitudes Sum')}
static displayTypeMultiple(){return qsTr('Bode Magnitudes Sum')}
static createable() {return false}
static properties() {return {
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class SommePhasesBode extends Common.ExecutableObject {
static type(){return 'Somme phases Bode'}
static displayType(){return 'Bode Phases Sum'}
static displayTypeMultiple(){return 'Bode Phases Sum'}
static displayType(){return qsTr('Bode Phases Sum')}
static displayTypeMultiple(){return qsTr('Bode Phases Sum')}
static createable() {return false}
static properties() {return {
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'),

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -25,8 +25,8 @@
class Text extends Common.DrawableObject {
static type(){return 'Text'}
static displayType(){return 'Text'}
static displayTypeMultiple(){return 'Texts'}
static displayType(){return qsTr('Text')}
static displayTypeMultiple(){return qsTr('Texts')}
static properties() {return {
'x': 'Expression',
'y': 'Expression',

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class XCursor extends Common.DrawableObject {
static type(){return 'X Cursor'}
static displayType(){return 'X Cursor'}
static displayTypeMultiple(){return 'X Cursors'}
static displayType(){return qsTr('X Cursor')}
static displayTypeMultiple(){return qsTr('X Cursors')}
static properties() {
return {
'x': 'Expression',

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -54,3 +54,16 @@ class Dictionary {
this.forbidAdding = forbidAdding
}
}
// Common parameters of them:
Enum.Position = new Enum(
QT_TR_NOOP('above'),
QT_TR_NOOP('below'),
QT_TR_NOOP('left'),
QT_TR_NOOP('right'),
QT_TR_NOOP('above-left'),
QT_TR_NOOP('above-right'),
QT_TR_NOOP('below-left'),
QT_TR_NOOP('below-right')
)

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -18,7 +18,7 @@
.pragma library
import "reference.js" as Reference
.import "reference.js" as Reference
const DERIVATION_PRECISION = 0.01

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -45,7 +45,7 @@ class InputExpression {
}
raise(message) {
throw new SyntaxError(message + " at " + this.position ".")
throw new SyntaxError(message + " at " + this.position + ".")
}
}

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -18,7 +18,7 @@
.pragma library
import "reference.js" as Reference
.import "reference.js" as Reference
const WHITESPACES = " \t\n\r"
const STRING_LIMITORS = '"\'`';

View file

@ -1,5 +1,5 @@
/**
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
from PySide2.QtCore import Qt, QRunnable, QThreadPool, QThread, QObject, Signal
from PySide2.QtCore import Qt, QRunnable, QThreadPool, QThread, QObject, Signal, QCoreApplication
from urllib.request import urlopen
from urllib.error import HTTPError, URLError
from sys import argv
@ -51,17 +51,16 @@ class UpdateCheckerRunnable(QRunnable):
current_version_tuple = self.current_version.split(".")
is_version_newer = version_tuple > current_version_tuple
if is_version_newer:
msg_text = "An update for LogarithPlotter (v" + version + ") is available."
msg_text = QCoreApplication.translate("update","An update for LogarithPlotter (v{}) is available.").format(version)
update_available = True
else:
show_alert = False
msg_text = "No update available."
msg_text = QCoreApplication.translate("update","No update available.")
except HTTPError as e:
msg_text = "Could not fetch update information: Server error " + str(e.code) + "."
msg_text = QCoreApplication.translate("update","Could not fetch update information: Server error {}.").format(str(e.code))
except URLError as e:
msg_text = "Could not fetch update information: Could not connect to the update server. " + str(e.reason) + "."
print(msg_text)
msg_text = QCoreApplication.translate("update","Could not fetch update information: {}.").format(str(e.reason))
self.callback.got_update_info.emit(show_alert, msg_text,update_available)
def check_for_updates(current_version, window):

View file

@ -1,14 +1,17 @@
# ![icon](https://git.ad5001.eu/Ad5001/LogarithmPlotter/raw/branch/master/logplotter.svg) LogarithmPlotter
[![Build Status](https://ci.ad5001.eu/api/badges/Ad5001/LogarithmPlotter/status.svg)](https://ci.ad5001.eu/Ad5001/LogarithmPlotter)
[![On flathub](https://img.shields.io/flathub/v/eu.ad5001.LogarithmPlotter?label=on%20flathub)](https://flathub.org/apps/details/eu.ad5001.LogarithmPlotter)
[![On Snapcraft](https://badgen.net/snapcraft/v/logarithmplotter?label=on%20snapcraft)](https://snapcraft.io/logarithmplotter)
[![Translation status](https://hosted.weblate.org/widgets/logarithmplotter/-/logarithmplotter/svg-badge.svg)](https://hosted.weblate.org/engage/logarithmplotter/)
[![On flathub](https://img.shields.io/flathub/v/eu.ad5001.LogarithmPlotter?label=on%20flathub&logo=Flathub&logoColor=white&color=4A86CF)](https://flathub.org/apps/details/eu.ad5001.LogarithmPlotter)
[![On Snapcraft](https://badgen.net/snapcraft/v/logarithmplotter?label=on%20snapstore&color=82BEA0&icon=https://ad5001.eu/icons/skills/snapcraft.svg)](https://snapcraft.io/logarithmplotter)
Create graphs with logarithm scales, namely BODE diagrams.
2D plotter software to make Bode plots, sequences and distribution functions.
## Run
You can simply run LogarithmPlotter using `python3 run.py`.
In order to test translations, you can use the `--lang=<lang code>` command line option to force the detected locale of LogarithmPlotter.
## Install
### Generate installers:
@ -34,9 +37,17 @@ For all builds, you need [Python 3](https://python.org) with [PySide2](https://p
Run `bash linux/install_local.sh`
## Contribute
There are several ways to contribute to LogarithmPlotter.
- You can help to translate [the project on Hosted Weblate](https://hosted.weblate.org/engage/logarithmplotter/):
[![Translation status](https://hosted.weblate.org/widgets/logarithmplotter/-/logarithmplotter/multi-auto.svg)](https://hosted.weblate.org/engage/logarithmplotter/)
- You can help the development of LogarithmPlotter. In order to get started, take a look at the [wiki](https://git.ad5001.eu/Ad5001/LogarithmPlotter/wiki/_pages).
## Legal notice
LogarithmPlotter - Create graphs with logarithm scales.
Copyright (C) 2021 Ad5001 <mail@ad5001.eu>
LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
Copyright (C) 2022 Ad5001 <mail@ad5001.eu>
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
@ -50,3 +61,7 @@ Run `bash linux/install_local.sh`
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Language files translations located at LogarithmPlotter/i18n are licensed under GNU GPL3.0+ and are copyrighted by their original authors. See LICENSE.md for more details:
- Novergian translation by [Allan Nordhøy](https://github.com/comradekingu)
- Hungarian translation by [Óvári](https://github.com/ovari)

View file

@ -2,7 +2,14 @@
rm $(find . -name "*.qmlc")
rm $(find . -name "*.pyc")
python3 -m pip install -U pyinstaller
# Building translations
cd "LogarithmPlotter/i18n/"
bash release.sh
cd ../../
pyinstaller --add-data "LogarithmPlotter/qml:qml" \
--add-data "LogarithmPlotter/i18n:i18n" \
--add-data "LICENSE.md:." \
--add-data "mac/logarithmplotterfile.icns:." \
--add-data "README.md:." \

View file

@ -1,3 +1,9 @@
rem Need pyinstaller >= 4.3, or there is an issue regarding the PATH of the building.
python -m pip install -U pyinstaller>=4.3
pyinstaller --add-data "logplotter.svg;." --add-data "LogarithmPlotter/qml;qml" --noconsole LogarithmPlotter/logarithmplotter.py --icon=win/logarithmplotter.ico -n logarithmplotter
rem Building translations
cd "LogarithmPlotter\i18n"
cmd release.sh
cd ..\..
pyinstaller --add-data "logplotter.svg;." --add-data "LogarithmPlotter/qml;qml" --add-data "LogarithmPlotter/i18n;i18n" --noconsole LogarithmPlotter/logarithmplotter.py --icon=win/logarithmplotter.ico -n logarithmplotter

View file

@ -3,4 +3,10 @@
rm $(find . -name "*.qmlc")
rm $(find . -name "*.pyc")
wine python -m pip install -U pyinstaller
wine pyinstaller --add-data "logplotter.svg;." --add-data "LogarithmPlotter/qml;qml" --noconsole LogarithmPlotter/logarithmplotter.py --icon=win/logarithmplotter.ico -n logarithmplotter
# Building translations
cd "LogarithmPlotter/i18n/"
bash release.sh
cd ../../
wine pyinstaller --add-data "logplotter.svg;." --add-data "LogarithmPlotter/qml;qml" --add-data "LogarithmPlotter/i18n;i18n" --noconsole LogarithmPlotter/logarithmplotter.py --icon=win/logarithmplotter.ico -n logarithmplotter

View file

@ -1,3 +1,17 @@
logarithmplotter (0.1.4) stable; urgency=medium
* New feature: LogarithmPlotter detects unsaved changes.
* New feature: LogarithmPlotter is now translated! See https://hosted.weblate.org/engage/logarithmplotter/ to help.
* New translation: English by Ad5001: 100%
* New translation: French by Ad5001: 100%
* New translation: German by Ad5001: 100%
* New translation: Hungarian by Óvári (@ovari on github): 100%
* New translation: Norvegian by Allan Nordhøy (@comradekingu on github): 80%
* Fixed bug: No notification when closing LogarithmPlotter with unsaved changes.
* Fixed bug: π unavailable in symbols.
-- Ad5001 <mail@ad5001.eu> Wed, 24 Jan 2022 20:00:00 +0100
logarithmplotter (0.1.3) stable; urgency=medium
* Fixed bug: Confined packages (snapcraft & flatpak) won't show error messages related to update checks.

View file

@ -1,6 +1,6 @@
Package: logarithmplotter
Source: logarithmplotter
Version: 0.1.2
Version: 0.1.4
Architecture: all
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)

View file

@ -3,6 +3,6 @@ Upstream-Name: logarithmplotter
Upstream-Contact: Ad5001 <mail@ad5001.eu>
Files: *
Copyright: 2020, Ad5001 <mail@ad5001.eu>
License: GPL-3
Copyright: 2022, Ad5001 <mail@ad5001.eu>
License: GPL-3.0+

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2021 Ad5001 -->
<!-- Copyright 2022 Ad5001 -->
<application>
<id>eu.ad5001.LogarithmPlotter</id>
<id type="desktop">eu.ad5001.LogarithmPlotter.desktop</id>
@ -9,9 +9,15 @@
<name>LogarithmPlotter</name>
<name xml:lang="fr">LogarithmPlotter</name>
<icon type="remote">http://apps.ad5001.eu/icons/apps/logarithmplotter.svg</icon>
<summary>2D plotter software to make BODE plots, sequences and repartition functions</summary>
<summary xml:lang="fr">Logiciel de traçage 2D pour les diagrammes de BODE, les suites et les fonctions de répartition</summary>
<name xml:lang="de">LogarithmPlotter</name>
<name xml:lang="no">LogarithmPlotter</name>
<name xml:lang="hu">LogarithmPlotter</name>
<icon type="remote">http://apps.ad5001.eu/icons/apps/svg/logarithmplotter.svg</icon>
<summary>2D plotter software to make Bode plots, sequences and repartition functions</summary>
<summary xml:lang="fr">Logiciel de traçage 2D pour les diagrammes de Bode, les suites et les fonctions de répartition</summary>
<summary xml:lang="de">2D-Grafiksoftware zur Erstellung von Bode-Diagramms, Folgen und Verteilungsfunktionen</summary>
<summary xml:lang="no">2D-plotterprogramvare laget for opprettelse av Bode-diagram, sekvenser, og distribusjonsfunksjoner</summary>
<summary xml:lang="hu">Síkbeli ábrázolásszoftver Bode-ábrák, sorozatok és eloszlási funkciók készítéséhez</summary>
<description>
<p>
LogarithmPlotter is, as it's name suggests, a plotter made with logarithm scales in mind. With an object system similar to Geogebra's, it allows dynamic creation of plots with very few limitations.
@ -36,14 +42,16 @@
<url type="homepage">https://apps.ad5001.eu/logarithmplotter/</url>
<url type="bugtracker">https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues/</url>
<url type="help">https://git.ad5001.eu/Ad5001/LogarithmPlotter/wiki/</url>
<url type="translate">https://hosted.weblate.org/engage/logarithmplotter/</url>
<screenshots>
<screenshot type="default">https://apps.ad5001.eu/img/full/logarithmplotter.png</screenshot>
<screenshot>https://apps.ad5001.eu/img/en/logarithmplotter/welcome.png</screenshot>
</screenshots>
<releases>
<release version="0.1" date="2021-08-15"/>
<release version="0.1.2" date="2021-09-30"/>
<release version="0.1.4" date="2022-01-24"/>
<release version="0.1.3" date="2022-01-19"/>
<release version="0.1.2" date="2021-09-30"/>
<release version="0.1" date="2021-08-15"/>
</releases>
<content_rating type="oars-1.0">
</content_rating>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2021 Ad5001 -->
<!-- Copyright 2022 Ad5001 -->
<application>
<id>eu.ad5001.LogarithmPlotter</id>
<id type="desktop">eu.ad5001.LogarithmPlotter.desktop</id>
@ -9,9 +9,15 @@
<name>LogarithmPlotter</name>
<name xml:lang="fr">LogarithmPlotter</name>
<icon type="remote">http://apps.ad5001.eu/icons/apps/logarithmplotter.svg</icon>
<summary>2D plotter software to make BODE plots, sequences and repartition functions</summary>
<summary xml:lang="fr">Logiciel de traçage 2D pour les diagrammes de BODE, les suites et les fonctions de répartition</summary>
<name xml:lang="de">LogarithmPlotter</name>
<name xml:lang="no">LogarithmPlotter</name>
<name xml:lang="hu">LogarithmPlotter</name>
<icon type="remote">http://apps.ad5001.eu/icons/apps/svg/logarithmplotter.svg</icon>
<summary>2D plotter software to make Bode plots, sequences and repartition functions</summary>
<summary xml:lang="fr">Logiciel de traçage 2D pour les diagrammes de Bode, les suites et les fonctions de répartition</summary>
<summary xml:lang="de">2D-Grafiksoftware zur Erstellung von Bode-Diagramms, Folgen und Verteilungsfunktionen</summary>
<summary xml:lang="no">2D-plotterprogramvare laget for opprettelse av Bode-diagram, sekvenser, og distribusjonsfunksjoner</summary>
<summary xml:lang="hu">Síkbeli ábrázolásszoftver Bode-ábrák, sorozatok és eloszlási funkciók készítéséhez</summary>
<description>
<p>
LogarithmPlotter is, as it's name suggests, a plotter made with logarithm scales in mind. With an object system similar to Geogebra's, it allows dynamic creation of plots with very few limitations.
@ -36,14 +42,16 @@
<url type="homepage">https://apps.ad5001.eu/logarithmplotter/</url>
<url type="bugtracker">https://git.ad5001.eu/Ad5001/LogarithmPlotter/issues/</url>
<url type="help">https://git.ad5001.eu/Ad5001/LogarithmPlotter/wiki/</url>
<url type="translate">https://hosted.weblate.org/engage/logarithmplotter/</url>
<screenshots>
<screenshot type="default">https://apps.ad5001.eu/img/full/logarithmplotter.png</screenshot>
<screenshot>https://apps.ad5001.eu/img/en/logarithmplotter/welcome.png</screenshot>
</screenshots>
<releases>
<release version="0.1" date="2021-08-15"/>
<release version="0.1.2" date="2021-09-30"/>
<release version="0.1.4" date="2022-01-24"/>
<release version="0.1.3" date="2022-01-19"/>
<release version="0.1.2" date="2021-09-30"/>
<release version="0.1" date="2021-08-15"/>
</releases>
<content_rating type="oars-1.0">
</content_rating>

1
linux/flatpak Submodule

@ -0,0 +1 @@
Subproject commit f2b749016badccb23548d18041bfd0d3370daa15

View file

@ -1,42 +0,0 @@
{
"app-id": "eu.ad5001.LogarithmPlotter",
"runtime": "org.kde.Platform",
"runtime-version": "5.15",
"sdk": "org.kde.Sdk",
"finish-args": [
"--share=ipc",
"--device=dri",
"--socket=x11",
"--socket=wayland",
"--talk-name=org.freedesktop.DBus.Proprieties",
"--talk-name=org.freedesktop.IBus",
"--talk-name=org.freedestkop.portal.*",
"--filesystem=home"
],
"command": "logarithmplotter",
"rename-desktop-file": "logarithmplotter.desktop",
"rename-icon": "logplotter",
"rename-appdata-file": "eu.ad5001.LogarithmPlotter.metainfo.xml",
"cleanup": [ ],
"post-install": [
"install -D mimetypes /app/share/mime/packages/x-logarithm-plot.xml"
],
"modules": [
"python3-pyside2.json",
{
"name": "LogarithmPlotter",
"buildsystem": "simple",
"config-opts": ["no-debuginfo-compression"],
"build-commands": [
"rm -rf .git",
"PREFIX=\"/app/share\" FLATPAK_INSTALL=1 python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "git",
"url": "https://git.ad5001.eu/Ad5001/LogarithmPlotter"
}
]
}
]
}

View file

@ -1,32 +0,0 @@
{
"name": "python3-pyside2",
"buildsystem": "simple",
"build-commands": [],
"config-opts": [],
"modules": [
{
"name": "PySide2",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_TESTS=OFF"
],
"sources": [
{
"type": "archive",
"url": "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-5.15.2-src/pyside-setup-opensource-src-5.15.2.tar.xz",
"sha256": "b306504b0b8037079a8eab772ee774b9e877a2d84bab2dbefbe4fa6f83941418"
},
{
"type": "shell",
"commands": [
"mkdir -p /app/include/qt5tmp && cp -R /usr/include/Qt* /app/include/qt5tmp # https://bugreports.qt.io/broswse/PYSIDE-787",
"sed -i 's|--include-paths=|--include-paths=/app/include/qt5tmp:|' sources/pyside2/cmake/Macros/PySideModules.cmake"
]
}
]
}
]
}

View file

@ -4,8 +4,13 @@ Type=Application
Name=LogarithmPlotter
GenericName=2D plotter software
GenericName[fr]=Logiciel de traçage 2D
Comment=Create BODE diagrams, sequences and repartition functions.
Comment[fr]=Créer des diagrammes de BODE, des suites et des fonctions de répartition.
GenericName[de]=2D-Grafiksoftware
GenericName[no]=2D-plotterprogramvare
GenericName[hu]=Síkbeli ábrázolásszoftver
Comment=Create BODE diagrams, sequences and distribution functions
Comment[fr]=Créer des diagrammes de BODE, des suites et des fonctions de répartition
Comment[de]=Erstellung von Bode-Diagramms, Folgen und Verteilungsfunktionen
Comment[hu]=Bode-ábrák, sorozatok és újraosztási függvények létrehozása
TryExec=logarithmplotter
Exec=logarithmplotter %f
@ -13,4 +18,4 @@ Icon=logarithmplotter
MimeType=application/x-logarithm-plot;
Terminal=false
StartupNotify=false
Categories=Math
Categories=Science

View file

@ -4,12 +4,17 @@ Type=Application
Name=LogarithmPlotter
GenericName=2D plotter software
GenericName[fr]=Logiciel de traçage 2D
Comment=Create BODE diagrams, sequences and repartition functions.
Comment[fr]=Créer des diagrammes de BODE, des suites et des fonctions de répartition.
GenericName[de]=2D-Grafiksoftware
GenericName[no]=2D-plotterprogramvare
GenericName[hu]=Síkbeli ábrázolásszoftver
Comment=Create BODE diagrams, sequences and distribution functions
Comment[fr]=Créer des diagrammes de BODE, des suites et des fonctions de répartition
Comment[de]=Erstellung von Bode-Diagramms, Folgen und Verteilungsfunktionen
Comment[hu]=Bode-ábrák, sorozatok és újraosztási függvények létrehozása
Exec=/usr/bin/python3 ROOTFOLDER/run.py %f
Icon=logarithmplotter
MimeType=application/x-logarithm-plot;
Terminal=false
StartupNotify=false
Categories=Math
Categories=Science

View file

@ -1,8 +1,14 @@
#!/bin/bash
# Building translations
cd "LogarithmPlotter/i18n/"
bash release.sh
cd ../../
# Deb
python3 setup.py --remove-git-version --command-packages=stdeb.command sdist_dsc \
--package logarithmplotter --copyright-file linux/debian/copyright --suite sid --depends3 "$(cat linux/debian/depends)" --section science \
--debian-version "ppa1" bdist_deb
--package logarithmplotter --copyright-file linux/debian/copyright --suite impish --depends3 "$(cat linux/debian/depends)" --section science \
bdist_deb
# Flatpak building
FLATPAK_BUILDER=$(which flatpak-builder)

View file

@ -1,5 +1,5 @@
#!/bin/bash
VERSION=0.1-dev0
VERSION=0.1.4
title="LogarithmPlotter v${VERSION} Setup"
finalDMGName="LogarithmPlotter-v${VERSION}-setup.dmg"
applicationName=LogarithmPlotter

27
run.py
View file

@ -1,5 +1,32 @@
"""
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition 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/>.
"""
def update_translations():
"""
Updates all binary translations
"""
from os import system, getcwd, chdir, path
pwd = getcwd()
chdir(path.join("LogarithmPlotter", "i18n"))
system("./release.sh")
chdir(pwd)
def run():
update_translations()
from LogarithmPlotter import logarithmplotter
logarithmplotter.run()

View file

@ -1,5 +1,5 @@
"""
* LogarithmPlotter - Create graphs with logarithm scales.
* LogarithmPlotter - 2D plotter software to make BODE plots, sequences and repartition functions.
* Copyright (C) 2022 Ad5001
*
* This program is free software: you can redistribute it and/or modify
@ -125,7 +125,7 @@ setuptools.setup(
name='logarithmplotter',
version=pkg_version,
description='Create graphs with logarithm scales.',
description='2D plotter software to make BODE plots, sequences and repartition functions.',
long_description=read_file("README.md"),
keywords='logarithm plotter graph creator bode diagram',

View file

@ -1,7 +1,7 @@
name: logarithmplotter
title: LogarithmPlotter
version: '0.1.3'
summary: 2D plotter software to make BODE plots, sequences and repartition functions.
version: '0.1.4'
summary: 2D plotter software to make Bode plots, sequences and repartition functions.
description: |
LogarithmPlotter is, as it's name suggests, a plotter made with logarithm scales in mind. With an object system similar to [Geogebra](https://geogebra.org)'s, it allows dynamic creation of plots with very few limitations.
It's primary use is to quickly create [asymptotic Bode plots](https://en.wikipedia.org/wiki/Bode_plot), but it's extensible nature and ability to switch to non-logarithmic scales allow it to create other things with it, like sequences or statistical repartition functions.

View file

@ -11,8 +11,9 @@ Unicode True
!define PROG_ID "LogarithmPlotter.File.1"
!define DEV_NAME "Ad5001"
!define WEBSITE "https://apps.ad5001.eu/logarithmplotter"
!define APP_VERSION "0.1.0.0"
!define COPYRIGHT "Ad5001 (c) 2021"
!define VERSION_SHORT "0.1.4"
!define APP_VERSION "${VERSION_SHORT}.0"
!define COPYRIGHT "Ad5001 (c) 2022"
!define DESCRIPTION "Create graphs with logarithm scales."
!define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\LogarithmPlotter"
@ -25,7 +26,7 @@ Unicode True
Name "${APP_NAME}"
Caption "${APP_NAME}"
BrandingText "${APP_NAME}"
OutFile "logarithmplotter-setup.exe"
OutFile "logarithmplotter-v${VERSION_SHORT}-setup.exe"
RequestExecutionLevel admin
;Default installation folder
@ -45,10 +46,10 @@ VIAddVersionKey "FileVersion" "${APP_VERSION}"
;--------------------------------
;defines MUST come before pages to apply to them
!define MUI_PAGE_HEADER_TEXT "${APP_NAME} v${APP_VERSION}"
!define MUI_PAGE_HEADER_TEXT "${APP_NAME} v${VERSION_SHORT}"
!define MUI_PAGE_HEADER_SUBTEXT "${COPYRIGHT}"
!define MUI_WELCOMEPAGE_TITLE "Install ${APP_NAME} v${APP_VERSION}"
!define MUI_WELCOMEPAGE_TITLE "Install ${APP_NAME} v${VERSION_SHORT}"
!define MUI_WELCOMEPAGE_TEXT "Welcome to the ${APP_NAME} installer! Follow the steps provided by this installer to install ${APP_NAME}"
!define MUI_HEADERIMAGE_RIGHT
;Extra space for the title area
@ -88,9 +89,9 @@ Icon "logarithmplotter.ico"
;!define MUI_DIRECTORYPAGE_VARIABLE $INSTDIR
!define MUI_INSTFILESPAGE_FINISHHEADER_TEXT "Success!"
!define MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT "${APP_NAME} v${APP_VERSION} was installed on your computer"
!define MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT "${APP_NAME} v${VERSION_SHORT} was installed on your computer"
!define MUI_INSTFILESPAGE_ABORTHEADER_TEXT "There was an error during the installation process."
!define MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT "${APP_NAME} v${APP_VERSION} was not installed on your computer."
!define MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT "${APP_NAME} v${VERSION_SHORT} was not installed on your computer."
!define MUI_FINISHPAGE_TITLE "Finished!"
;!define MUI_FINISHPAGE_TITLE_3LINES