Changing description, starting translator.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Ad5001 2022-01-20 18:19:36 +01:00
parent 94dc7b28a1
commit 74ea50d19f
Signed by: Ad5001
GPG key ID: EF45F9C6AFE20160
57 changed files with 2659 additions and 154 deletions

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

View file

@ -0,0 +1,607 @@
<?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"/>
<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="27"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="29"/>
<source>&amp;Load...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="36"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>Save &amp;As...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="50"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="58"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="60"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="68"/>
<source>&amp;Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Copy plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/>
<source>&amp;Create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="107"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="110"/>
<source>Check for updates on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="119"/>
<source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="128"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="130"/>
<source>&amp;About</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="85"/>
<source>Label content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>null</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name + value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="185"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="199"/>
<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>
</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="202"/>
<source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="241"/>
<source>Unknown object type: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="255"/>
<source>Invalid file provided.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="259"/>
<source>Could not save file: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="263"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="284"/>
<source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="295"/>
<source>&amp;Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="297"/>
<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="73"/>
<source>X Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="88"/>
<source>Y Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="104"/>
<source>Min X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="123"/>
<source>Max Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="138"/>
<source>Max X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="157"/>
<source>Min Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="174"/>
<source>X Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="188"/>
<source>Y Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="202"/>
<source>Line width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="217"/>
<source>Text size (px)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="232"/>
<source>X Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="258"/>
<source>Y Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="286"/>
<source>X Log scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="296"/>
<source>Show X graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="306"/>
<source>Show Y graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="317"/>
<source>Copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="326"/>
<source>Save plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="335"/>
<source>Save plot as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="344"/>
<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>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,607 @@
<?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"/>
<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="27"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="29"/>
<source>&amp;Load...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="36"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>Save &amp;As...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="50"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="58"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="60"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="68"/>
<source>&amp;Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Copy plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/>
<source>&amp;Create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="107"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="110"/>
<source>Check for updates on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="119"/>
<source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="128"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="130"/>
<source>&amp;About</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="85"/>
<source>Label content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>null</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name + value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="185"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="199"/>
<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>
</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="202"/>
<source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="241"/>
<source>Unknown object type: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="255"/>
<source>Invalid file provided.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="259"/>
<source>Could not save file: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="263"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="284"/>
<source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="295"/>
<source>&amp;Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="297"/>
<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="73"/>
<source>X Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="88"/>
<source>Y Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="104"/>
<source>Min X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="123"/>
<source>Max Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="138"/>
<source>Max X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="157"/>
<source>Min Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="174"/>
<source>X Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="188"/>
<source>Y Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="202"/>
<source>Line width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="217"/>
<source>Text size (px)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="232"/>
<source>X Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="258"/>
<source>Y Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="286"/>
<source>X Log scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="296"/>
<source>Show X graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="306"/>
<source>Show Y graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="317"/>
<source>Copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="326"/>
<source>Save plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="335"/>
<source>Save plot as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="344"/>
<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>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,607 @@
<?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"/>
<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="27"/>
<source>&amp;File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="29"/>
<source>&amp;Load...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="36"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>Save &amp;As...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="50"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="58"/>
<source>&amp;Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="60"/>
<source>&amp;Undo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="68"/>
<source>&amp;Redo</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Copy plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/>
<source>&amp;Create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="107"/>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="110"/>
<source>Check for updates on startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="119"/>
<source>Reset redo stack automaticly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="128"/>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="130"/>
<source>&amp;About</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="85"/>
<source>Label content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>null</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name + value</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="185"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="199"/>
<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>
</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="202"/>
<source>Loading file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="241"/>
<source>Unknown object type: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="255"/>
<source>Invalid file provided.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="259"/>
<source>Could not save file: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="263"/>
<source>Loaded file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="284"/>
<source>Copied plot screenshot to clipboard!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="295"/>
<source>&amp;Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="297"/>
<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="73"/>
<source>X Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="88"/>
<source>Y Zoom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="104"/>
<source>Min X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="123"/>
<source>Max Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="138"/>
<source>Max X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="157"/>
<source>Min Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="174"/>
<source>X Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="188"/>
<source>Y Axis Step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="202"/>
<source>Line width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="217"/>
<source>Text size (px)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="232"/>
<source>X Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="258"/>
<source>Y Label</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="286"/>
<source>X Log scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="296"/>
<source>Show X graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="306"/>
<source>Show Y graduation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="317"/>
<source>Copy to clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="326"/>
<source>Save plot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="335"/>
<source>Save plot as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="344"/>
<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>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,617 @@
<?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="194"/>
<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>Rapporter un bug</translation>
</message>
</context>
<context>
<name>AppMenuBar</name>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="27"/>
<source>&amp;File</source>
<translation>&amp;Fichier</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="29"/>
<source>&amp;Load...</source>
<translation>&amp;Ouvrir...</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="36"/>
<source>&amp;Save</source>
<translation>&amp;Sauvegarder</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="42"/>
<source>Save &amp;As...</source>
<translation>Sauvegarde &amp;Sous...</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="50"/>
<source>&amp;Quit</source>
<translation>&amp;Quitter</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="58"/>
<source>&amp;Edit</source>
<translation>&amp;Édition</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="60"/>
<source>&amp;Undo</source>
<translation>&amp;Annuler</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="68"/>
<source>&amp;Redo</source>
<translation>&amp;Rétablir</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="77"/>
<source>&amp;Copy plot</source>
<translation>&amp;Copier le graphe</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="85"/>
<source>&amp;Create</source>
<translation>&amp;Créer</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="107"/>
<source>&amp;Settings</source>
<translation>&amp;Paramètres</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="110"/>
<source>Check for updates on startup</source>
<translation>Vérifier la présence de mise à jour au démarage</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="119"/>
<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="128"/>
<source>&amp;Help</source>
<translation>&amp;Aide</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/AppMenuBar.qml" line="130"/>
<source>&amp;About</source>
<translation>&amp;À propos</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="85"/>
<source>Label content</source>
<translation>Étiquette</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>null</source>
<translation>vide</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name</source>
<translation>nom</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="86"/>
<source>name + value</source>
<translation>nom + valeur</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="185"/>
<location filename="../qml/eu/ad5001/LogarithmPlotter/ObjectLists/EditorDialog.qml" line="199"/>
<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>
<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="202"/>
<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="241"/>
<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="255"/>
<source>Invalid file provided.</source>
<translation>Fichier fourni invalide.</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="259"/>
<source>Could not save file: </source>
<translation>Impossible de sauvegarder le fichier : </translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="263"/>
<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="284"/>
<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="295"/>
<source>&amp;Update</source>
<translation>&amp;Mise à jour</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/LogarithmPlotter.qml" line="297"/>
<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="73"/>
<source>X Zoom</source>
<translation>Zoom en X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="88"/>
<source>Y Zoom</source>
<translation>Zoom en Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="104"/>
<source>Min X</source>
<translation>Min X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="123"/>
<source>Max Y</source>
<translation>Max Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="138"/>
<source>Max X</source>
<translation>Max X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="157"/>
<source>Min Y</source>
<translation>Min Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="174"/>
<source>X Axis Step</source>
<translation>Pas de l&apos;axe X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="188"/>
<source>Y Axis Step</source>
<translation>Pas de l&apos;axe Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="202"/>
<source>Line width</source>
<translation>Taille des lignes</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="217"/>
<source>Text size (px)</source>
<translation>Taille du texte (px)</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="232"/>
<source>X Label</source>
<translation>Label de l&apos;axe X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="258"/>
<source>Y Label</source>
<translation>Label de l&apos;axe Y</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="286"/>
<source>X Log scale</source>
<translation>Échelle logarithmique en X</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="296"/>
<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="306"/>
<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="317"/>
<source>Copy to clipboard</source>
<translation>Copier vers le presse-papiers</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="326"/>
<source>Save plot</source>
<translation>Sauvegarder le graphe</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="335"/>
<source>Save plot as</source>
<translation>Sauvegarder le graphe sous</translation>
</message>
<message>
<location filename="../qml/eu/ad5001/LogarithmPlotter/Settings.qml" line="344"/>
<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>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 LogarithPlotter (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,2 @@
#!/bin/bash
lrelease *.ts

View file

@ -0,0 +1,5 @@
#!/bin/bash
lupdate -extensions js,qs,qml,py -recursive .. -ts lp_en.ts
lupdate -extensions js,qs,qml,py -recursive .. -ts lp_fr.ts
lupdate -extensions js,qs,qml,py -recursive .. -ts lp_de.ts
lupdate -extensions js,qs,qml,py -recursive .. -ts lp_es.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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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.QtWidgets import QApplication, QFileDialog
from PySide2.QtQml import QQmlApplicationEngine, qmlRegisterType 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.QtGui import QIcon, QImage, QKeySequence
from PySide2 import __version__ as PySide2_version 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 import config, native, __VERSION__
from LogarithmPlotter.update import check_for_updates from LogarithmPlotter.update import check_for_updates
config.init()
config.init()
def get_linux_theme(): def get_linux_theme():
des = { des = {
@ -63,6 +63,10 @@ def get_linux_theme():
return "Material" return "Material"
class Helper(QObject): class Helper(QObject):
def __init__(self, engine: QQmlApplicationEngine):
QObject.__init__(self)
self.engine = engine;
@Slot(str, str) @Slot(str, str)
def write(self, filename, filedata): def write(self, filename, filedata):
@ -80,6 +84,7 @@ class Helper(QObject):
def load(self, filename): def load(self, filename):
chdir(pwd) chdir(pwd)
data = '{}' data = '{}'
from PySide2.QtWidgets import QMessageBox
if path.exists(path.realpath(filename)): if path.exists(path.realpath(filename)):
f = open(path.realpath(filename), 'r', -1, 'utf8') f = open(path.realpath(filename), 'r', -1, 'utf8')
data = f.read() data = f.read()
@ -93,10 +98,9 @@ class Helper(QObject):
else: else:
raise Exception("Invalid LogarithmPlotter file.") raise Exception("Invalid LogarithmPlotter file.")
except Exception as e: # If file can't be loaded except Exception as e: # If file can't be loaded
from PySide2.QtWidgets import QMessageBox QMessageBox.warning(None, 'LogarithmPlotter', QCoreApplication.translate('main','Could not open file "{}":\n{}').format(filename, e), QMessageBox.Ok) # Cannot parse file
QMessageBox.warning(None, 'LogarithmPlotter', 'Could not open file "{}":\n{}'.format(filename, e), QMessageBox.Ok) # Cannot parse file
else: 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__))) chdir(path.dirname(path.realpath(__file__)))
return data return data
@ -131,12 +135,16 @@ class Helper(QObject):
def setSettingBool(self, namespace, value): def setSettingBool(self, namespace, value):
return config.setSetting(namespace, value) return config.setSetting(namespace, value)
@Slot(str)
def setLanguage(self, new_lang):
config.setSetting("language", new_lang)
@Slot(result=str) @Slot(result=str)
def getDebugInfos(self): def getDebugInfos(self):
""" """
Returns the version info about Qt, PySide2 & Python 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) @Slot(str)
def openUrl(self, url): def openUrl(self, url):
@ -166,6 +174,11 @@ def run():
app.setOrganizationName("Ad5001") app.setOrganizationName("Ad5001")
app.setWindowIcon(QIcon(path.realpath(path.join(getcwd(), "logarithmplotter.svg")))) app.setWindowIcon(QIcon(path.realpath(path.join(getcwd(), "logarithmplotter.svg"))))
# Installing translators
translator = QTranslator()
if (translator.load(QLocale(), "lp", "_", path.realpath(path.join(getcwd(), "i18n")))):
app.installTranslator(translator);
# Installing macOS file handler. # Installing macOS file handler.
macOSFileOpenHandler = None macOSFileOpenHandler = None
if platform == "darwin": if platform == "darwin":
@ -173,13 +186,16 @@ def run():
app.installEventFilter(macOSFileOpenHandler) app.installEventFilter(macOSFileOpenHandler)
engine = QQmlApplicationEngine() engine = QQmlApplicationEngine()
helper = Helper() helper = Helper(engine)
engine.rootContext().setContextProperty("Helper", helper) engine.rootContext().setContextProperty("Helper", helper)
engine.rootContext().setContextProperty("TestBuild", "--test-build" in argv) engine.rootContext().setContextProperty("TestBuild", "--test-build" in argv)
engine.rootContext().setContextProperty("StartTime", dep_time) engine.rootContext().setContextProperty("StartTime", dep_time)
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.addImportPath(path.realpath(path.join(getcwd(), "qml")))
engine.load(path.realpath(path.join(getcwd(), "qml", "eu", "ad5001", "LogarithmPlotter", "LogarithmPlotter.qml"))) engine.load(path.realpath(path.join(getcwd(), "qml", "eu", "ad5001", "LogarithmPlotter", "LogarithmPlotter.qml")))
if not engine.rootObjects(): if not engine.rootObjects():
print("No root object", path.realpath(path.join(getcwd(), "qml"))) 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -23,7 +23,7 @@ import QtQuick.Controls 2.12
D.Dialog { D.Dialog {
id: about id: about
title: `About LogarithmPlotter` title: qsTr("About LogarithmPlotter")
width: 400 width: 400
height: 600 height: 600
@ -49,7 +49,7 @@ D.Dialog {
width: parent.width width: parent.width
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
font.pixelSize: 25 font.pixelSize: 25
text: "LogarithmPlotter v" + Helper.getVersion() text: qsTr("LogarithmPlotter v%1").arg(Helper.getVersion())
} }
Label { Label {
@ -61,7 +61,7 @@ D.Dialog {
width: parent.width width: parent.width
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
font.pixelSize: 18 font.pixelSize: 18
text: "Create graphs with logarithm scales." text: qsTr("2D plotter software to make BODE plots, sequences and repartition functions.")
} }
Label { 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.top: copyrightInfos.bottom
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 10 anchors.topMargin: 10
text: 'Report a bug' text: qsTr('Report a bug')
icon.name: 'bug' icon.name: 'bug'
onClicked: Helper.openUrl('https://git.ad5001.eu/Ad5001/LogarithmPlotter') 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -23,7 +23,7 @@ D.FileDialog {
property bool exportMode: false 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 (*)"] nameFilters: ["Logarithm Plot File (*.lpf)", "All files (*)"]
folder: shortcuts.documents folder: shortcuts.documents

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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -55,7 +55,7 @@ Popup {
//width: parent.width //width: parent.width
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
font.pixelSize: 32 font.pixelSize: 32
text: "Welcome to LogarithmPlotter" text: qsTr("Welcome to LogarithmPlotter")
} }
} }
@ -69,7 +69,7 @@ Popup {
width: implicitWidth width: implicitWidth
font.pixelSize: 18 font.pixelSize: 18
font.italic: true font.italic: true
text: "Version " + Helper.getVersion() text: qsTr("Version %1").arg(Helper.getVersion())
} }
Label { Label {
@ -81,7 +81,7 @@ Popup {
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
font.pixelSize: 14 font.pixelSize: 14
width: parent.width - 50 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 { CheckBox {
@ -90,7 +90,7 @@ Popup {
anchors.top: helpText.bottom anchors.top: helpText.bottom
anchors.topMargin: 10 anchors.topMargin: 10
checked: Helper.getSettingBool("check_for_updates") 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: { onClicked: {
Helper.setSettingBool("check_for_updates", checked) Helper.setSettingBool("check_for_updates", checked)
checkForUpdatesMenuSetting.checked = checked checkForUpdatesMenuSetting.checked = checked
@ -102,7 +102,7 @@ Popup {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.top: checkForUpdatesSetting.bottom anchors.top: checkForUpdatesSetting.bottom
checked: Helper.getSettingBool("reset_redo_stack") 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: { onClicked: {
Helper.setSettingBool("reset_redo_stack", checked) Helper.setSettingBool("reset_redo_stack", checked)
resetRedoStackMenuSetting.checked = checked resetRedoStackMenuSetting.checked = checked

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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -60,7 +60,7 @@ ScrollView {
Text { Text {
anchors.left: parent.left anchors.left: parent.left
anchors.bottom: nowRect.top anchors.bottom: nowRect.top
text: "Redo >" text: qsTr("Redo >")
color: sysPaletteIn.windowText color: sysPaletteIn.windowText
transform: Rotation { origin.x: 30; origin.y: 30; angle: 270} transform: Rotation { origin.x: 30; origin.y: 30; angle: 270}
height: 70 height: 70
@ -79,7 +79,7 @@ ScrollView {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 5 anchors.leftMargin: 5
text: "> Now" text: qsTr("> Now")
color: sysPalette.windowText color: sysPalette.windowText
} }
} }
@ -113,7 +113,7 @@ ScrollView {
Text { Text {
anchors.left: parent.left anchors.left: parent.left
anchors.top: undoColumn.top anchors.top: undoColumn.top
text: "< Undo" text: qsTr("< Undo")
color: sysPaletteIn.windowText color: sysPaletteIn.windowText
transform: Rotation { origin.x: 30; origin.y: 30; angle: 270} transform: Rotation { origin.x: 30; origin.y: 30; angle: 270}
height: 60 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -39,6 +39,7 @@ ApplicationWindow {
SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active } SystemPalette { id: sysPalette; colorGroup: SystemPalette.Active }
SystemPalette { id: sysPaletteIn; colorGroup: SystemPalette.Disabled } SystemPalette { id: sysPaletteIn; colorGroup: SystemPalette.Disabled }
menuBar: appMenu.trueItem menuBar: appMenu.trueItem
GreetScreen {} GreetScreen {}
@ -193,12 +194,12 @@ ApplicationWindow {
"objects": objs, "objects": objs,
"type": "logplotv1" "type": "logplotv1"
})) }))
alert.show("Saved plot to '" + filename.split("/").pop() + "'.") alert.show(qsTr("Saved plot to '%1'.").arg(filename.split("/").pop()))
} }
function loadDiagram(filename) { function loadDiagram(filename) {
let basename = filename.split("/").pop() 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 data = JSON.parse(Helper.load(filename))
let error = ""; let error = "";
if(Object.keys(data).includes("type") && data["type"] == "logplotv1") { if(Object.keys(data).includes("type") && data["type"] == "logplotv1") {
@ -237,7 +238,7 @@ ApplicationWindow {
Objects.currentObjects[objType].push(obj) Objects.currentObjects[objType].push(obj)
} }
} else { } else {
error += "Unknown object type: " +objType + "\n"; error += qsTr("Unknown object type: %1.").arg(objType) + "\n";
} }
} }
// Refreshing sidebar // Refreshing sidebar
@ -251,15 +252,15 @@ ApplicationWindow {
objectLists.update() objectLists.update()
} }
} else { } else {
error = "Invalid file provided." error = qsTr("Invalid file provided.")
} }
if(error != "") { if(error != "") {
console.log(error) console.log(error)
alert.show("Could not save file: " + error) alert.show(qsTr("Could not save file: ") + error)
// TODO: Error handling // TODO: Error handling
} }
drawCanvas.requestPaint() drawCanvas.requestPaint()
alert.show("Loaded file '" + basename + "'.") alert.show(qsTr("Loaded file '%1'.").arg(basename))
} }
Timer { Timer {
@ -280,7 +281,7 @@ ApplicationWindow {
var file = Helper.gettmpfile() var file = Helper.gettmpfile()
drawCanvas.save(file) drawCanvas.save(file)
Helper.copyImageToClipboard() Helper.copyImageToClipboard()
alert.show("Copied plot screenshot to clipboard!") alert.show(qsTr("Copied plot screenshot to clipboard!"))
} }
function showAlert(alertText) { 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -42,7 +42,7 @@ D.Dialog {
anchors.left: parent.left anchors.left: parent.left
anchors.top: parent.top anchors.top: parent.top
verticalAlignment: TextInput.AlignVCenter 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 font.pixelSize: 20
color: sysPalette.windowText color: sysPalette.windowText
} }
@ -56,7 +56,7 @@ D.Dialog {
TextSetting { TextSetting {
id: nameProperty id: nameProperty
height: 30 height: 30
label: "Name" label: qsTr("Name")
icon: "icons/settings/custom/label.svg" icon: "icons/settings/custom/label.svg"
min: 1 min: 1
width: dlgProperties.width width: dlgProperties.width
@ -82,13 +82,14 @@ D.Dialog {
id: labelContentProperty id: labelContentProperty
height: 30 height: 30
width: dlgProperties.width width: dlgProperties.width
label: "Label content" label: qsTr("Label content")
model: ["null", "name", "name + value"] model: [qsTr("null"), qsTr("name"), qsTr("name + value")]
property var idModel: ["null", "name", "name + value"]
icon: "icons/settings/custom/label.svg" icon: "icons/settings/custom/label.svg"
currentIndex: model.indexOf(objEditor.obj.labelContent) currentIndex: idModel.indexOf(objEditor.obj.labelContent)
onActivated: function(newIndex) { onActivated: function(newIndex) {
if(model[newIndex] != objEditor.obj.labelContent) { if(idModel[newIndex] != objEditor.obj.labelContent) {
objEditor.obj.labelContent = model[newIndex] objEditor.obj.labelContent = idModel[newIndex]
objectListList.update() objectListList.update()
} }
} }
@ -109,7 +110,7 @@ D.Dialog {
width: parent.width width: parent.width
height: visible ? implicitHeight : 0 height: visible ? implicitHeight : 0
visible: modelData[0].startsWith('comment') 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 //color: sysPalette.windowText
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
@ -181,7 +182,7 @@ D.Dialog {
property bool selectObjMode: paramTypeIn(modelData[1], ['ObjectType']) property bool selectObjMode: paramTypeIn(modelData[1], ['ObjectType'])
model: visible ? model: visible ?
(selectObjMode ? Objects.getObjectsName(modelData[1].objType).concat(['+ Create new ' + modelData[1].objType]) : modelData[1].values) (selectObjMode ? Objects.getObjectsName(modelData[1].objType).concat([qsTr("+ Create new %1").arg(Objects.types[modelData[1].objType].displayType())]) : modelData[1].values)
: [] : []
visible: paramTypeIn(modelData[1], ['ObjectType', 'Enum']) visible: paramTypeIn(modelData[1], ['ObjectType', 'Enum'])
currentIndex: model.indexOf(selectObjMode ? objEditor.obj[modelData[0]].name : objEditor.obj[modelData[0]]) currentIndex: model.indexOf(selectObjMode ? objEditor.obj[modelData[0]].name : objEditor.obj[modelData[0]])
@ -195,7 +196,7 @@ D.Dialog {
// Creating new object. // Creating new object.
selectedObj = Objects.createNewRegisteredObject(modelData[1].objType) selectedObj = Objects.createNewRegisteredObject(modelData[1].objType)
history.addToHistory(new HistoryLib.CreateNewObject(selectedObj.name, modelData[1].objType, selectedObj.export())) history.addToHistory(new HistoryLib.CreateNewObject(selectedObj.name, modelData[1].objType, selectedObj.export()))
model = Objects.getObjectsName(modelData[1].objType).concat(['+ Create new ' + modelData[1].objType]) model = Objects.getObjectsName(modelData[1].objType).concat([qsTr("+ Create new %1").arg(Objects.types[modelData[1].objType].displayType())])
currentIndex = model.indexOf(selectedObj.name) currentIndex = model.indexOf(selectedObj.name)
} }
//Objects.currentObjects[objEditor.objType][objEditor.objIndex].requiredBy = objEditor.obj[modelData[0]].filter((obj) => objEditor.obj.name != obj.name) //Objects.currentObjects[objEditor.objType][objEditor.objIndex].requiredBy = objEditor.obj[modelData[0]].filter((obj) => objEditor.obj.name != obj.name)

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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -29,7 +29,7 @@ Column {
Label { Label {
id: createTitle id: createTitle
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
text: '+ Create new:' text: qsTr('+ Create new:')
font.pixelSize: 20 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -60,7 +60,7 @@ ListView {
} }
ToolTip.visible: hovered 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 { Label {
@ -96,7 +96,9 @@ ListView {
} }
ToolTip.visible: hovered 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 { Label {
@ -134,7 +136,7 @@ ListView {
property bool hasYProp: Objects.types[objType].properties().hasOwnProperty('y') property bool hasYProp: Objects.types[objType].properties().hasOwnProperty('y')
visible: hasXProp || hasYProp visible: hasXProp || hasYProp
ToolTip.visible: hovered 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: { onClicked: {
positionPicker.objType = objType positionPicker.objType = objType
@ -159,7 +161,7 @@ ListView {
icon.source: '../icons/delete.svg' icon.source: '../icons/delete.svg'
icon.color: sysPalette.buttonText icon.color: sysPalette.buttonText
ToolTip.visible: hovered 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: { onClicked: {
history.addToHistory(new HistoryLib.DeleteObject( history.addToHistory(new HistoryLib.DeleteObject(
@ -191,8 +193,8 @@ ListView {
D.ColorDialog { D.ColorDialog {
id: pickColor id: pickColor
color: obj.color color: obj.color.arg(obj.name)
title: `Pick new color for ${objType} ${obj.name}` title: qsTr("Pick new color for %1 %2").arg(Objects.types[objType].displayType())
onAccepted: { onAccepted: {
history.addToHistory(new HistoryLib.EditedProperty( history.addToHistory(new HistoryLib.EditedProperty(
obj.name, objType, "color", 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -85,7 +85,7 @@ Item {
Row { Row {
height: precisionSlider.height height: precisionSlider.height
Text { Text {
text: " Pointer precision: " text: " "+ qsTr("Pointer precision:") + " "
color: 'black' color: 'black'
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }
@ -105,7 +105,7 @@ Item {
CheckBox { CheckBox {
id: snapToGridCheckbox id: snapToGridCheckbox
text: "Snap to grid" text: qsTr("Snap to grid")
checked: false 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -70,7 +70,7 @@ ScrollView {
id: zoomX id: zoomX
height: 30 height: 30
isDouble: true isDouble: true
label: "X Zoom" label: qsTr("X Zoom")
min: 1 min: 1
icon: "icons/settings/xzoom.svg" icon: "icons/settings/xzoom.svg"
width: settings.settingWidth width: settings.settingWidth
@ -85,7 +85,7 @@ ScrollView {
id: zoomY id: zoomY
height: 30 height: 30
isDouble: true isDouble: true
label: "Y Zoom" label: qsTr("Y Zoom")
icon: "icons/settings/yzoom.svg" icon: "icons/settings/yzoom.svg"
width: settings.settingWidth width: settings.settingWidth
value: settings.yzoom.toFixed(2) value: settings.yzoom.toFixed(2)
@ -101,7 +101,7 @@ ScrollView {
height: 30 height: 30
isDouble: true isDouble: true
min: -Infinity min: -Infinity
label: "Min X" label: qsTr("Min X")
icon: "icons/settings/xmin.svg" icon: "icons/settings/xmin.svg"
width: settings.settingWidth width: settings.settingWidth
defValue: settings.xmin defValue: settings.xmin
@ -120,7 +120,7 @@ ScrollView {
height: 30 height: 30
isDouble: true isDouble: true
min: -Infinity min: -Infinity
label: "Max Y" label: qsTr("Max Y")
icon: "icons/settings/ymax.svg" icon: "icons/settings/ymax.svg"
width: settings.settingWidth width: settings.settingWidth
defValue: settings.ymax defValue: settings.ymax
@ -135,7 +135,7 @@ ScrollView {
height: 30 height: 30
isDouble: true isDouble: true
min: -Infinity min: -Infinity
label: "Max X" label: qsTr("Max X")
icon: "icons/settings/xmax.svg" icon: "icons/settings/xmax.svg"
width: settings.settingWidth width: settings.settingWidth
value: canvas.px2x(canvas.canvasSize.width).toFixed(2) value: canvas.px2x(canvas.canvasSize.width).toFixed(2)
@ -154,7 +154,7 @@ ScrollView {
height: 30 height: 30
isDouble: true isDouble: true
min: -Infinity min: -Infinity
label: "Min Y" label: qsTr("Min Y")
icon: "icons/settings/ymin.svg" icon: "icons/settings/ymin.svg"
width: settings.settingWidth width: settings.settingWidth
defValue: canvas.px2y(canvas.canvasSize.height).toFixed(2) defValue: canvas.px2y(canvas.canvasSize.height).toFixed(2)
@ -171,7 +171,7 @@ ScrollView {
TextSetting { TextSetting {
id: xAxisStep id: xAxisStep
height: 30 height: 30
label: "X Axis Step" label: qsTr("X Axis Step")
icon: "icons/settings/xaxisstep.svg" icon: "icons/settings/xaxisstep.svg"
width: settings.settingWidth width: settings.settingWidth
defValue: settings.xaxisstep defValue: settings.xaxisstep
@ -185,7 +185,7 @@ ScrollView {
TextSetting { TextSetting {
id: yAxisStep id: yAxisStep
height: 30 height: 30
label: "Y Axis Step" label: qsTr("Y Axis Step")
icon: "icons/settings/yaxisstep.svg" icon: "icons/settings/yaxisstep.svg"
width: settings.settingWidth width: settings.settingWidth
defValue: settings.yaxisstep defValue: settings.yaxisstep
@ -199,7 +199,7 @@ ScrollView {
id: lineWidth id: lineWidth
height: 30 height: 30
isDouble: true isDouble: true
label: "Line width" label: qsTr("Line width")
min: 1 min: 1
icon: "icons/settings/linewidth.svg" icon: "icons/settings/linewidth.svg"
width: settings.settingWidth width: settings.settingWidth
@ -214,7 +214,7 @@ ScrollView {
id: textSize id: textSize
height: 30 height: 30
isDouble: true isDouble: true
label: "Text size (px)" label: qsTr("Text size (px)")
min: 1 min: 1
icon: "icons/settings/textsize.svg" icon: "icons/settings/textsize.svg"
width: settings.settingWidth width: settings.settingWidth
@ -229,7 +229,7 @@ ScrollView {
id: xAxisLabel id: xAxisLabel
height: 30 height: 30
width: settings.settingWidth width: settings.settingWidth
label: 'X Label' label: qsTr('X Label')
icon: "icons/settings/xlabel.svg" icon: "icons/settings/xlabel.svg"
model: ListModel { model: ListModel {
ListElement { text: "" } ListElement { text: "" }
@ -255,7 +255,7 @@ ScrollView {
id: yAxisLabel id: yAxisLabel
height: 30 height: 30
width: settings.settingWidth width: settings.settingWidth
label: 'Y Label' label: qsTr('Y Label')
icon: "icons/settings/ylabel.svg" icon: "icons/settings/ylabel.svg"
model: ListModel { model: ListModel {
ListElement { text: "" } ListElement { text: "" }
@ -283,7 +283,7 @@ ScrollView {
CheckBox { CheckBox {
id: logScaleX id: logScaleX
checked: settings.logscalex checked: settings.logscalex
text: 'X Log scale' text: qsTr('X Log scale')
onClicked: { onClicked: {
settings.logscalex = checked settings.logscalex = checked
settings.changed() settings.changed()
@ -293,7 +293,7 @@ ScrollView {
CheckBox { CheckBox {
id: showXGrad id: showXGrad
checked: settings.showxgrad checked: settings.showxgrad
text: 'Show X graduation' text: qsTr('Show X graduation')
onClicked: { onClicked: {
settings.showxgrad = checked settings.showxgrad = checked
settings.changed() settings.changed()
@ -303,7 +303,7 @@ ScrollView {
CheckBox { CheckBox {
id: showYGrad id: showYGrad
checked: settings.showygrad checked: settings.showygrad
text: 'Show Y graduation' text: qsTr('Show Y graduation')
onClicked: { onClicked: {
settings.showygrad = checked settings.showygrad = checked
settings.changed() settings.changed()
@ -314,7 +314,7 @@ ScrollView {
id: copyToClipboard id: copyToClipboard
height: 30 height: 30
width: settings.settingWidth width: settings.settingWidth
text: "Copy to clipboard" text: qsTr("Copy to clipboard")
icon.name: 'editcopy' icon.name: 'editcopy'
onClicked: root.copyDiagramToClipboard() onClicked: root.copyDiagramToClipboard()
} }
@ -323,7 +323,7 @@ ScrollView {
id: saveDiagram id: saveDiagram
height: 30 height: 30
width: settings.settingWidth width: settings.settingWidth
text: "Save plot" text: qsTr("Save plot")
icon.name: 'document-save' icon.name: 'document-save'
onClicked: save() onClicked: save()
} }
@ -332,7 +332,7 @@ ScrollView {
id: saveDiagramAs id: saveDiagramAs
height: 30 height: 30
width: settings.settingWidth width: settings.settingWidth
text: "Save plot as" text: qsTr("Save plot as")
icon.name: 'document-save-as' icon.name: 'document-save-as'
onClicked: saveAs() onClicked: saveAs()
} }
@ -341,7 +341,7 @@ ScrollView {
id: loadDiagram id: loadDiagram
height: 30 height: 30
width: settings.settingWidth width: settings.settingWidth
text: "Load plot" text: qsTr("Load plot")
icon.name: 'document-open' icon.name: 'document-open'
onClicked: load() 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -74,7 +74,7 @@ class CreateNewObject extends Action {
} }
getReadableString() { getReadableString() {
return `New ${this.targetType} ${this.targetName} created.` return qsTr("New %1 %2 created.").arg(this.targetType).arg(this.targetName)
} }
} }
@ -91,7 +91,7 @@ class DeleteObject extends CreateNewObject {
} }
getReadableString() { getReadableString() {
return `${this.targetType} ${this.targetName} deleted.` return qsTr("%1 %2 deleted.").arg(this.targetType).arg(this.targetName)
} }
} }
@ -130,7 +130,7 @@ class EditedProperty extends Action {
getReadableString() { getReadableString() {
var prev = this.previousValue == null ? ""+this.previousValue : this.previousValue.toString() var prev = this.previousValue == null ? ""+this.previousValue : this.previousValue.toString()
var next = this.newValue == null ? ""+this.newValue : this.newValue.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(this.targetType).arg(this.targetName).arg(prev).arg(next)
} }
} }
@ -144,9 +144,9 @@ class EditedVisibility extends EditedProperty {
getReadableString() { getReadableString() {
if(this.newValue) { if(this.newValue) {
return `${this.targetType} ${this.targetName} shown.` return qsTr('%1 %2 shown.').arg(this.targetType).arg(this.targetName)
} else { } else {
return `${this.targetType} ${this.targetName} hidden.` return qsTr('%1 %2 hidden.').arg(this.targetType).arg(this.targetName)
} }
} }
} }

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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class Function extends Common.ExecutableObject { class Function extends Common.ExecutableObject {
static type(){return 'Function'} static type(){return 'Function'}
static displayType(){return 'Function'} static displayType(){return qsTr('Function')}
static displayTypeMultiple(){return 'Functions'} static displayTypeMultiple(){return qsTr('Functions')}
static properties() {return { static properties() {return {
'expression': 'Expression', 'expression': 'Expression',
'definitionDomain': 'Domain', 'definitionDomain': 'Domain',

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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -28,8 +28,8 @@
class GainBode extends Common.ExecutableObject { class GainBode extends Common.ExecutableObject {
static type(){return 'Gain Bode'} static type(){return 'Gain Bode'}
static displayType(){return 'Bode Magnitude'} static displayType(){return qsTr('Bode Magnitude')}
static displayTypeMultiple(){return 'Bode Magnitudes'} static displayTypeMultiple(){return qsTr('Bode Magnitudes')}
static properties() {return { static properties() {return {
'om_0': new P.ObjectType('Point'), 'om_0': new P.ObjectType('Point'),
'pass': new P.Enum('high', 'low'), 'pass': new P.Enum('high', 'low'),
@ -69,7 +69,8 @@ class GainBode extends Common.ExecutableObject {
} }
getReadableString() { 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() { 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -27,8 +27,8 @@
class PhaseBode extends Common.ExecutableObject { class PhaseBode extends Common.ExecutableObject {
static type(){return 'Phase Bode'} static type(){return 'Phase Bode'}
static displayType(){return 'Bode Phase'} static displayType(){return qsTr('Bode Phase')}
static displayTypeMultiple(){return 'Bode Phases'} static displayTypeMultiple(){return qsTr('Bode Phases')}
static properties() {return { static properties() {return {
'om_0': new P.ObjectType('Point'), 'om_0': new P.ObjectType('Point'),
'phase': 'Expression', '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -25,8 +25,8 @@
class Point extends Common.DrawableObject { class Point extends Common.DrawableObject {
static type(){return 'Point'} static type(){return 'Point'}
static displayType(){return 'Point'} static displayType(){return qsTr('Point')}
static displayTypeMultiple(){return 'Points'} static displayTypeMultiple(){return qsTr('Points')}
static properties() {return { static properties() {return {
'x': 'Expression', '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -23,8 +23,8 @@
class RepartitionFunction extends Common.ExecutableObject { class RepartitionFunction extends Common.ExecutableObject {
static type(){return 'Repartition'} static type(){return 'Repartition'}
static displayType(){return 'Repartition'} static displayType(){return qsTr('Repartition')}
static displayTypeMultiple(){return 'Repartition functions'} static displayTypeMultiple(){return qsTr('Repartition functions')}
static properties() {return { static properties() {return {
'beginIncluded': 'boolean', 'beginIncluded': 'boolean',
'drawLineEnds': '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class Sequence extends Common.ExecutableObject { class Sequence extends Common.ExecutableObject {
static type(){return 'Sequence'} static type(){return 'Sequence'}
static displayType(){return 'Sequence'} static displayType(){return qsTr('Sequence')}
static displayTypeMultiple(){return 'Sequences'} static displayTypeMultiple(){return qsTr('Sequences')}
static properties() {return { static properties() {return {
'drawPoints': 'boolean', 'drawPoints': 'boolean',
'drawDashedLines': '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -27,8 +27,8 @@
class SommeGainsBode extends Common.DrawableObject { class SommeGainsBode extends Common.DrawableObject {
static type(){return 'Somme gains Bode'} static type(){return 'Somme gains Bode'}
static displayType(){return 'Bode Magnitudes Sum'} static displayType(){return qsTr('Bode Magnitudes Sum')}
static displayTypeMultiple(){return 'Bode Magnitudes Sum'} static displayTypeMultiple(){return qsTr('Bode Magnitudes Sum')}
static createable() {return false} static createable() {return false}
static properties() {return { static properties() {return {
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'), '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class SommePhasesBode extends Common.ExecutableObject { class SommePhasesBode extends Common.ExecutableObject {
static type(){return 'Somme phases Bode'} static type(){return 'Somme phases Bode'}
static displayType(){return 'Bode Phases Sum'} static displayType(){return qsTr('Bode Phases Sum')}
static displayTypeMultiple(){return 'Bode Phases Sum'} static displayTypeMultiple(){return qsTr('Bode Phases Sum')}
static createable() {return false} static createable() {return false}
static properties() {return { static properties() {return {
'labelPosition': new P.Enum('above', 'below', 'left', 'right', 'above-left', 'above-right', 'below-left', 'below-right'), '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -25,8 +25,8 @@
class Text extends Common.DrawableObject { class Text extends Common.DrawableObject {
static type(){return 'Text'} static type(){return 'Text'}
static displayType(){return 'Text'} static displayType(){return qsTr('Text')}
static displayTypeMultiple(){return 'Texts'} static displayTypeMultiple(){return qsTr('Texts')}
static properties() {return { static properties() {return {
'x': 'Expression', 'x': 'Expression',
'y': '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -26,8 +26,8 @@
class XCursor extends Common.DrawableObject { class XCursor extends Common.DrawableObject {
static type(){return 'X Cursor'} static type(){return 'X Cursor'}
static displayType(){return 'X Cursor'} static displayType(){return qsTr('X Cursor')}
static displayTypeMultiple(){return 'X Cursors'} static displayTypeMultiple(){return qsTr('X Cursors')}
static properties() { static properties() {
return { return {
'x': 'Expression', '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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -18,7 +18,7 @@
.pragma library .pragma library
import "reference.js" as Reference .import "reference.js" as Reference
const OPERATION_PRIORITY = { const OPERATION_PRIORITY = {
"+": 10, "-": 10, "+": 10, "-": 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -45,7 +45,7 @@ class InputExpression {
} }
raise(message) { 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -18,7 +18,7 @@
.pragma library .pragma library
import "reference.js" as Reference .import "reference.js" as Reference
const WHITESPACES = " \t\n\r" const WHITESPACES = " \t\n\r"
const STRING_LIMITORS = '"\'`'; 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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 * Copyright (C) 2022 Ad5001
* *
* This program is free software: you can redistribute it and/or modify * 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/>. * 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.request import urlopen
from urllib.error import HTTPError, URLError from urllib.error import HTTPError, URLError
from sys import argv from sys import argv
@ -51,17 +51,16 @@ class UpdateCheckerRunnable(QRunnable):
current_version_tuple = self.current_version.split(".") current_version_tuple = self.current_version.split(".")
is_version_newer = version_tuple > current_version_tuple is_version_newer = version_tuple > current_version_tuple
if is_version_newer: 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 update_available = True
else: else:
show_alert = False show_alert = False
msg_text = "No update available." msg_text = QCoreApplication.translate("update","No update available.")
except HTTPError as e: 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: except URLError as e:
msg_text = "Could not fetch update information: Could not connect to the update server. " + str(e.reason) + "." msg_text = QCoreApplication.translate("update","Could not fetch update information: {}.").format(str(e.reason))
print(msg_text)
self.callback.got_update_info.emit(show_alert, msg_text,update_available) self.callback.got_update_info.emit(show_alert, msg_text,update_available)
def check_for_updates(current_version, window): def check_for_updates(current_version, window):

View file

@ -2,7 +2,14 @@
rm $(find . -name "*.qmlc") rm $(find . -name "*.qmlc")
rm $(find . -name "*.pyc") rm $(find . -name "*.pyc")
python3 -m pip install -U pyinstaller python3 -m pip install -U pyinstaller
# Buiilding translations
cd "LogarithmPlotter/i18n/"
bash release.sh
cd ../../
pyinstaller --add-data "LogarithmPlotter/qml:qml" \ pyinstaller --add-data "LogarithmPlotter/qml:qml" \
--add-data "LogarithmPlotter/i18n:i18n" \
--add-data "LICENSE.md:." \ --add-data "LICENSE.md:." \
--add-data "mac/logarithmplotterfile.icns:." \ --add-data "mac/logarithmplotterfile.icns:." \
--add-data "README.md:." \ --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. rem Need pyinstaller >= 4.3, or there is an issue regarding the PATH of the building.
python -m pip install -U pyinstaller>=4.3 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 Buiilding translations
cd "LogarithmPlotter\i18n"
bash 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 "*.qmlc")
rm $(find . -name "*.pyc") rm $(find . -name "*.pyc")
wine python -m pip install -U pyinstaller 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
# Buiilding 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,5 +1,11 @@
#!/bin/bash #!/bin/bash
# Buiilding translations
cd "LogarithmPlotter/i18n/"
bash release.sh
cd ../../
# Deb
python3 setup.py --remove-git-version --command-packages=stdeb.command sdist_dsc \ python3 setup.py --remove-git-version --command-packages=stdeb.command sdist_dsc \
--package logarithmplotter --copyright-file linux/debian/copyright --suite impish --depends3 "$(cat linux/debian/depends)" --section science \ --package logarithmplotter --copyright-file linux/debian/copyright --suite impish --depends3 "$(cat linux/debian/depends)" --section science \
--debian-version "ppa1" bdist_deb --debian-version "ppa1" bdist_deb

11
run.py
View file

@ -1,5 +1,16 @@
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(): def run():
update_translations()
from LogarithmPlotter import logarithmplotter from LogarithmPlotter import logarithmplotter
logarithmplotter.run() logarithmplotter.run()