Merge branch 'master' into test-dataflow

This commit is contained in:
Phil Olynyk 2020-08-03 14:09:34 -04:00
commit 363aa6d1b9
31 changed files with 15039 additions and 16831 deletions

View File

@ -19,6 +19,7 @@
<li>[new] OSCAR checks automatically for new releases.</li>
<li>[new] Privacy feature allows suppressing profile info in Statistics page and printed reports.</li>
<li>[new] Add option to print reports in black and white (monochrome).</li>
<li>[new] Hold down the Shift key while selecting a range on a chart to measure the duration without zooming.</li>
<li>[fix] Improve support for rare events in 50-series Philips Respironics devices.</li>
<li>[fix] Improve warning on Daily page when settings are missing.</li>
<li>[fix] No longer zoom charts to maximum when clicking on chart with popup menu present.</li>
@ -29,6 +30,8 @@
<li>[fix] Limit SD card scan to mounted vfat volumes.</li>
<li>[fix] Correct Statistics page calculations when CPAP and Oximetry use do not overlap.</li>
<li>[fix] Hours used on Welcome and Daily page are now hours of CPAP machine use.</li>
<li>[fix] Popout graphs now limited to desktop height and multiple popout graphs work better.</li>
<li>[fix] Overview tooltips now list chart components in same order as displayed in chart.</li>
</ul>
<p>
<b>Changes and fixes in OSCAR v1.1.1</b>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -94,6 +94,13 @@
<translation>:</translation>
</message>
</context>
<context>
<name>CheckUpdates</name>
<message>
<source>Checking for newer OSCAR versions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Daily</name>
<message>
@ -356,10 +363,6 @@
<source>Model %1 - %2</source>
<translation> %1 - %2</translation>
</message>
<message>
<source>(Mode/Pressure settings are guessed on this day.)</source>
<translation>(/)</translation>
</message>
<message>
<source>This day just contains summary data, only limited information is available.</source>
<translation></translation>
@ -436,6 +439,10 @@
<source>This bookmark is in a currently disabled area..</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(Mode and Pressure settings missing; yesterday&apos;s shown.)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExportCSV</name>
@ -1107,10 +1114,6 @@
<source>Report an Issue</source>
<translation></translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation></translation>
</message>
<message>
<source>The FAQ is not yet implemented</source>
<translation>FAQ尚未实施</translation>
@ -1377,6 +1380,18 @@
<source>Show Personal Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create zip of OSCAR diagnostic logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check For &amp;Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for updates not implemented</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MinMaxWidget</name>
@ -2429,22 +2444,6 @@ This option must be enabled before import, otherwise a purge is required.</sourc
<source> hours</source>
<translation> </translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;If your interested in helping test new features and bugfixes early, click here.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;But please be warned this will sometimes mean breaky code..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Standard Bars</source>
<translation></translation>
@ -2497,10 +2496,6 @@ Try it and see if you like it.</source>
<source>Median is recommended for ResMed users.</source>
<translation></translation>
</message>
<message>
<source>&amp;Check for Updates now</source>
<translation>&amp;</translation>
</message>
<message>
<source>Italic</source>
<translation></translation>
@ -2597,14 +2592,6 @@ Mainly affects the importer.</source>
<source>Bar Tops</source>
<translation></translation>
</message>
<message>
<source>Automatically Check For Updates</source>
<translation></translation>
</message>
<message>
<source>I want to try experimental and test builds (Advanced users only please.)</source>
<translation></translation>
</message>
<message>
<source>Other Visual Settings</source>
<translation></translation>
@ -2703,10 +2690,6 @@ Defaults to 60 minutes.. Highly recommend it&apos;s left at this value.</source>
<source>Preferences</source>
<translation></translation>
</message>
<message>
<source>Sourceforge hosts this project for free.. Please be considerate of their resources..</source>
<translation>SourceForge开发的</translation>
</message>
<message>
<source>Default display height of graphs in pixels</source>
<translation>使</translation>
@ -3364,6 +3347,42 @@ p, li { white-space: pre-wrap; }
<source>Will you be using a ResMed brand machine?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check For Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are using a test version of OSCAR. Test versions check for updates automatically at least once every seven days. You may set the interval to less than seven days.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Automatically check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>How often OSCAR should check for updates.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you are interested in helping test new features and bugfixes early, click here.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>I want to try experimental and test builds. (Advanced users only please.)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you would like to help test early versions of OSCAR, please see the Wiki page about testing OSCAR. We welcome everyone who would like to test OSCAR, help develop OSCAR, and help with translations to existing or new languages. https://www.sleepfiles.com/OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white, which can be more legible on non-color printers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white (monochrome)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfileSelect</name>
@ -5688,16 +5707,6 @@ TTIA: %1</source>
<source>Ramp Enable</source>
<translation></translation>
</message>
<message>
<source>%1
Line %2, column %3</source>
<translation>%1
%2, %3</translation>
</message>
<message>
<source>Could not parse Updates.xml file.</source>
<translation> Updates.xml.</translation>
</message>
<message>
<source>h</source>
<translation></translation>
@ -6639,6 +6648,42 @@ Line %2, column %3</source>
<source>(%2 days ago)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New versions file improperly formed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running the latest release of OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A more recent version of OSCAR is available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSCAR %1 is available &lt;a href=&apos;%2&apos;&gt;here&lt;/a&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information about more recent test version %1 is available at &lt;a href=&apos;%2&apos;&gt;%2&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(Reading %1 took %2 seconds)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for OSCAR Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create the OSCAR data folder at</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Report</name>
@ -6953,117 +6998,6 @@ Line %2, column %3</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UpdaterWindow</name>
<message>
<source>Log</source>
<translation></translation>
</message>
<message>
<source>Size</source>
<translation></translation>
</message>
<message>
<source>&amp;Finished</source>
<translation>&amp;</translation>
</message>
<message>
<source>Please wait while updates are downloaded and installed...</source>
<translation>...</translation>
</message>
<message>
<source>Component</source>
<translation></translation>
</message>
<message>
<source>&amp;Upgrade Now</source>
<translation>&amp;</translation>
</message>
<message>
<source>Version Information</source>
<translation></translation>
</message>
<message>
<source>Build Notes</source>
<translation></translation>
</message>
<message>
<source>No updates were found for your platform.</source>
<translation>.</translation>
</message>
<message>
<source>Downloading &amp; Installing Updates</source>
<translation> &amp; </translation>
</message>
<message>
<source>Maybe &amp;Later</source>
<translation> &amp;</translation>
</message>
<message>
<source>Progress</source>
<translation></translation>
</message>
<message>
<source>%1 bytes received</source>
<translation> %1 </translation>
</message>
<message>
<source>A new version of $APP is available</source>
<translation>$APP</translation>
</message>
<message>
<source>Updates</source>
<translation></translation>
</message>
<message>
<source>Version</source>
<translation></translation>
</message>
<message>
<source>Requesting </source>
<translation> </translation>
</message>
<message>
<source>Release Notes</source>
<translation></translation>
</message>
<message>
<source>You are already running the latest version.</source>
<translation></translation>
</message>
<message>
<source>Would you like to download and install them now?</source>
<translation></translation>
</message>
<message>
<source>OSCAR Updater</source>
<translation>OSCAR更新程序</translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation></translation>
</message>
<message>
<source>Checking for OSCAR Updates</source>
<translation>OSCAR更新</translation>
</message>
<message>
<source>OSCAR Updates</source>
<translation>OSCAR更新</translation>
</message>
<message>
<source>Version %1 of OSCAR is available, opening link to download site.</source>
<translation>OSCAR的版本%1</translation>
</message>
<message>
<source>New OSCAR Updates are avilable:</source>
<translation>OSCAR更新可用</translation>
</message>
<message>
<source>OSCAR Updates are currently unavailable for this platform</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Welcome</name>
<message>

File diff suppressed because it is too large Load Diff

View File

@ -94,6 +94,13 @@
<translation>Die Oxymeter-Datei konnte nicht geöffnet werden:</translation>
</message>
</context>
<context>
<name>CheckUpdates</name>
<message>
<source>Checking for newer OSCAR versions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Daily</name>
<message>
@ -404,10 +411,6 @@
<source>This day just contains summary data, only limited information is available.</source>
<translation>Dieser Tag enthält nur zusammenfassende Daten. Es stehen nur begrenzte Informationen zur Verfügung.</translation>
</message>
<message>
<source>(Mode/Pressure settings are guessed on this day.)</source>
<translation>(Die Einstellungen für den Druckmodus werden an diesem Tag geschätzt.)</translation>
</message>
<message>
<source>Time at Pressure</source>
<translation>Zeit in Druck</translation>
@ -436,6 +439,10 @@
<source>This bookmark is in a currently disabled area..</source>
<translation>Dieses Lesezeichen befindet sich in einem derzeit deaktivierten Bereich.</translation>
</message>
<message>
<source>(Mode and Pressure settings missing; yesterday&apos;s shown.)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExportCSV</name>
@ -835,10 +842,6 @@
<source>&lt;b&gt;Please be aware you can not undo this operation!&lt;/b&gt;</source>
<translation>&lt;b&gt;Bitte beachten Sie, dass Sie diesen Vorgang nicht rückgängig machen können!&lt;/b&gt;</translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation>Updates sind noch nicht implementiert</translation>
</message>
<message>
<source>View S&amp;tatistics</source>
<translation>Statistik &amp;anzeigen</translation>
@ -1395,6 +1398,18 @@
<source>Show Personal Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create zip of OSCAR diagnostic logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check For &amp;Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for updates not implemented</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MinMaxWidget</name>
@ -2589,22 +2604,6 @@ Diese Option muss vor dem Import aktiviert werden, da sonst eine Reinigung erfor
<source>Double click to change the descriptive name this channel.</source>
<translation>Klicken Sie doppelt auf den beschreibenden Namen um diesen Kanal zu ändern.</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;If your interested in helping test new features and bugfixes early, click here.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;But please be warned this will sometimes mean breaky code..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;- / / W3C / / DTD HTML 4.0 / / EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li {white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Haben Sie Interesse an Tests und wollen helfen neue Features und Bugfixes früh zu implementieren, klicken Sie hier.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style = &quot;font-style: italic;&quot;&gt; Aber bitte seien Sie gewarnt, dies wird manchmal bedeuten das es zu abgefahrenen Sachen kommt..&lt;/span&gt;&lt;/p&gt;
&lt;p style = &quot;-qt-Absatz-type: leer, margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px;-qt-Block-indent: 0; text-indent : 0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Sessions older than this date will not be imported</source>
<translation>Sitzungen, die älter als dieses Datum sind werden nicht importiert</translation>
@ -2744,10 +2743,6 @@ werden Sie sehen, dass es nicht sehr oft zu Problemen kommt.&lt;/p&gt;&lt;/body&
<source>Oximeter Events</source>
<translation>Oxymeter Ereignisse</translation>
</message>
<message>
<source>&amp;Check for Updates now</source>
<translation>&amp;Prüfen auf eine neue Version</translation>
</message>
<message>
<source>Italic</source>
<translation>Kursiv</translation>
@ -2944,14 +2939,6 @@ Vor allem wirkt sich das auf den Import von Daten aus.</translation>
<source>Bar Tops</source>
<translation>Balkendiagramme</translation>
</message>
<message>
<source>Automatically Check For Updates</source>
<translation>Automatisch nach Updates suchen</translation>
</message>
<message>
<source>I want to try experimental and test builds (Advanced users only please.)</source>
<translation>Ich möchte experimentelle und Test-Builds ausprobieren (nur für fortgeschrittene Benutzer)</translation>
</message>
<message>
<source>This calculation requires Total Leaks data to be provided by the CPAP machine. (Eg, PRS1, but not ResMed, which has these already)
@ -3196,10 +3183,6 @@ Um es mit ResScan zu verwenden, müssen die .gz-Dateien zuerst dekomprimiert wer
<source>General CPAP and Related Settings</source>
<translation>Allgemeine CPAP und verwandte Einstellungen</translation>
</message>
<message>
<source>Sourceforge hosts this project for free.. Please be considerate of their resources..</source>
<translation>Sourceforge hält dieses Projekt kostenlos .. Mit Rücksicht auf ihre Ressourcen..</translation>
</message>
<message>
<source>Default display height of graphs in pixels</source>
<translation>Standardanzeige Höhe von Diagrammen in Pixel</translation>
@ -3396,6 +3379,42 @@ p, li { white-space: pre-wrap; }
<source>Will you be using a ResMed brand machine?</source>
<translation>Werden Sie ein Gerät der Marke ResMed verwenden?</translation>
</message>
<message>
<source>Check For Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are using a test version of OSCAR. Test versions check for updates automatically at least once every seven days. You may set the interval to less than seven days.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Automatically check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>How often OSCAR should check for updates.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you are interested in helping test new features and bugfixes early, click here.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>I want to try experimental and test builds. (Advanced users only please.)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you would like to help test early versions of OSCAR, please see the Wiki page about testing OSCAR. We welcome everyone who would like to test OSCAR, help develop OSCAR, and help with translations to existing or new languages. https://www.sleepfiles.com/OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white, which can be more legible on non-color printers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white (monochrome)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfileSelect</name>
@ -4808,12 +4827,6 @@ p, li { white-space: pre-wrap; }
<source>AB Filter</source>
<translation>AB Filter</translation>
</message>
<message>
<source>%1
Line %2, column %3</source>
<translation>%1
Linie %2, Spalte %3</translation>
</message>
<message>
<source>Height</source>
<translation>Größe</translation>
@ -5400,10 +5413,6 @@ TTIA: %1</translation>
<source>Temperature Enable</source>
<translation>Temperatur aktivieren</translation>
</message>
<message>
<source>Could not parse Updates.xml file.</source>
<translation>Konnte die Updates.xml Datei nicht analysieren.</translation>
</message>
<message>
<source>Sorry, your Philips Respironics CPAP machine (Model %1) is not supported yet.</source>
<translation>Es tut uns leid, Ihre Philips Respironics CPAP-Gerät (Modell %1) wird noch nicht unterstützt.</translation>
@ -6670,6 +6679,42 @@ Stunden: %1</translation>
<source>(%2 days ago)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New versions file improperly formed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running the latest release of OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A more recent version of OSCAR is available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSCAR %1 is available &lt;a href=&apos;%2&apos;&gt;here&lt;/a&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information about more recent test version %1 is available at &lt;a href=&apos;%2&apos;&gt;%2&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(Reading %1 took %2 seconds)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for OSCAR Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create the OSCAR data folder at</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Report</name>
@ -6984,117 +7029,6 @@ Stunden: %1</translation>
<translation>Dieser Bericht wurde erstellt über %1 von OSCAR %2</translation>
</message>
</context>
<context>
<name>UpdaterWindow</name>
<message>
<source>Log</source>
<translation>Anmelden</translation>
</message>
<message>
<source>Size</source>
<translation>Größe</translation>
</message>
<message>
<source>&amp;Finished</source>
<translation>&amp;Fertig</translation>
</message>
<message>
<source>Please wait while updates are downloaded and installed...</source>
<translation>Bitte warten Sie solange, bis die Updates heruntergeladen und installiert wurden...</translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation>Updates sind noch nicht implementiert</translation>
</message>
<message>
<source>Component</source>
<translation>Komponente</translation>
</message>
<message>
<source>&amp;Upgrade Now</source>
<translation>&amp;Jetzt ein Upgrade</translation>
</message>
<message>
<source>Version Information</source>
<translation>Versionsinformationen</translation>
</message>
<message>
<source>Build Notes</source>
<translation>Erstellen Sie Notizen</translation>
</message>
<message>
<source>Would you like to download and install them now?</source>
<translation>Möchten Sie sie jetzt herunterladen und installieren?</translation>
</message>
<message>
<source>No updates were found for your platform.</source>
<translation>Es stehen keine neuen Updates zur Verfügung.</translation>
</message>
<message>
<source>Downloading &amp; Installing Updates</source>
<translation>Herunterladen &amp; Installieren von Updates</translation>
</message>
<message>
<source>Maybe &amp;Later</source>
<translation>Möglicherweise &amp;Später</translation>
</message>
<message>
<source>OSCAR Updater</source>
<translation>OSCAR Updater</translation>
</message>
<message>
<source>OSCAR Updates</source>
<translation>OSCAR Updates</translation>
</message>
<message>
<source>Version %1 of OSCAR is available, opening link to download site.</source>
<translation>Version %1 von OSCAR ist verfügbar, ein Link zur Download-Site.</translation>
</message>
<message>
<source>You are already running the latest version.</source>
<translation>Sie führen bereits die neueste Version aus.</translation>
</message>
<message>
<source>Progress</source>
<translation>Fortschritt</translation>
</message>
<message>
<source>%1 bytes received</source>
<translation>%1 Bytes empfangen</translation>
</message>
<message>
<source>A new version of $APP is available</source>
<translation>Eine neue Version von $APP ist vorhanden</translation>
</message>
<message>
<source>Updates</source>
<translation>Updates</translation>
</message>
<message>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<source>Requesting </source>
<translation>Anfordern </translation>
</message>
<message>
<source>Release Notes</source>
<translation>Versionshinweise</translation>
</message>
<message>
<source>Checking for OSCAR Updates</source>
<translation>Nach OSCAR-Updates suchen</translation>
</message>
<message>
<source>New OSCAR Updates are avilable:</source>
<translation>Neue OSCAR-Updates sind verfügbar:</translation>
</message>
<message>
<source>OSCAR Updates are currently unavailable for this platform</source>
<translation>OSCAR-Updates sind derzeit für diese Plattform nicht verfügbar</translation>
</message>
</context>
<context>
<name>Welcome</name>
<message>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -94,6 +94,13 @@
<translation>Impossible d&apos;ouvrir les fichiers d&apos;oxymétrie :</translation>
</message>
</context>
<context>
<name>CheckUpdates</name>
<message>
<source>Checking for newer OSCAR versions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Daily</name>
<message>
@ -356,10 +363,6 @@
<source>Model %1 - %2</source>
<translation>Modèle %1 - %2</translation>
</message>
<message>
<source>(Mode/Pressure settings are guessed on this day.)</source>
<translation>(Les réglages de mode et de pression sont extrapolés pour ce jour)</translation>
</message>
<message>
<source>This day just contains summary data, only limited information is available.</source>
<translation>Jour avec informations limitées, seulement le résumé.</translation>
@ -436,6 +439,10 @@
<source>This bookmark is in a currently disabled area..</source>
<translation>Ce favori est actuellement en zone désactivée..</translation>
</message>
<message>
<source>(Mode and Pressure settings missing; yesterday&apos;s shown.)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExportCSV</name>
@ -1107,10 +1114,6 @@
<source>Report an Issue</source>
<translation>Rapporter un problème</translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation>Désolé, fonction non encore implémentée</translation>
</message>
<message>
<source>The FAQ is not yet implemented</source>
<translation>Désolé, fonction non encore implémentée</translation>
@ -1395,6 +1398,18 @@
<source>Show Personal Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create zip of OSCAR diagnostic logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check For &amp;Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for updates not implemented</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MinMaxWidget</name>
@ -2542,22 +2557,6 @@ Option à activer avant import, sinon une purge est nécessaire.</translation>
<source>Double click to change the descriptive name this channel.</source>
<translation>Double-cliquez pour changer la description de ce canal.</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;If your interested in helping test new features and bugfixes early, click here.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;But please be warned this will sometimes mean breaky code..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Pour tester les nouveautés cliquez ici&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Attention ! Sans garantie de bon fonctionnement&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Sessions older than this date will not be imported</source>
<translation>Les sessions antérieures à cette date ne seront pas importées</translation>
@ -2674,10 +2673,6 @@ Cela affecte aussi les impressions
<source>Oximeter Events</source>
<translation>Évènements de l&apos;oxymètre</translation>
</message>
<message>
<source>&amp;Check for Updates now</source>
<translation>&amp;Vérifier les mises à jour</translation>
</message>
<message>
<source>Italic</source>
<translation>Italique</translation>
@ -2842,14 +2837,6 @@ Surtout pour l&apos;import.</translation>
<source>Bar Tops</source>
<translation>Haut des barres</translation>
</message>
<message>
<source>Automatically Check For Updates</source>
<translation>Vérifier les mises à jour automatiquement</translation>
</message>
<message>
<source>I want to try experimental and test builds (Advanced users only please.)</source>
<translation>Je veux essayer les versions expérimentales (Utilisateurs confirmés seulement)</translation>
</message>
<message>
<source>This calculation requires Total Leaks data to be provided by the CPAP machine. (Eg, PRS1, but not ResMed, which has these already)
@ -3038,10 +3025,6 @@ Defaults to 60 minutes.. Highly recommend it&apos;s left at this value.</source>
<source>General CPAP and Related Settings</source>
<translation>Réglages généraux de PPC</translation>
</message>
<message>
<source>Sourceforge hosts this project for free.. Please be considerate of their resources..</source>
<translation>Sourceforge héberge gratuitement ce projet, soyez respectueux de leur bande passante.</translation>
</message>
<message>
<source>Default display height of graphs in pixels</source>
<translation>Afficher la hauteur des graphiques en pixels</translation>
@ -3384,6 +3367,42 @@ p, li { white-space: pre-wrap; }
<source>Will you be using a ResMed brand machine?</source>
<translation>Utiliserez-vous un appareil Resmed?</translation>
</message>
<message>
<source>Check For Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are using a test version of OSCAR. Test versions check for updates automatically at least once every seven days. You may set the interval to less than seven days.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Automatically check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>How often OSCAR should check for updates.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you are interested in helping test new features and bugfixes early, click here.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>I want to try experimental and test builds. (Advanced users only please.)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you would like to help test early versions of OSCAR, please see the Wiki page about testing OSCAR. We welcome everyone who would like to test OSCAR, help develop OSCAR, and help with translations to existing or new languages. https://www.sleepfiles.com/OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white, which can be more legible on non-color printers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white (monochrome)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfileSelect</name>
@ -4657,12 +4676,6 @@ p, li { white-space: pre-wrap; }
<source>AB Filter</source>
<translation>Filtre AB</translation>
</message>
<message>
<source>%1
Line %2, column %3</source>
<translation>%1
Ligne %2, colonne %3</translation>
</message>
<message>
<source>Ramp Enable</source>
<translation>Rampe active</translation>
@ -5165,10 +5178,6 @@ TTIA : %1</translation>
<source>Temperature Enable</source>
<translation>Niv. Temp. activé</translation>
</message>
<message>
<source>Could not parse Updates.xml file.</source>
<translation>Impossible de traiter le fichier Updates.xml.</translation>
</message>
<message>
<source>Sorry, your Philips Respironics CPAP machine (Model %1) is not supported yet.</source>
<translation>Désolé votre appareil Philips Respironics (Model %1) n&apos;est pas pris en charge pour le moment.</translation>
@ -6673,6 +6682,42 @@ corporelle</translation>
<source>(%2 days ago)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New versions file improperly formed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running the latest release of OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A more recent version of OSCAR is available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSCAR %1 is available &lt;a href=&apos;%2&apos;&gt;here&lt;/a&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information about more recent test version %1 is available at &lt;a href=&apos;%2&apos;&gt;%2&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(Reading %1 took %2 seconds)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for OSCAR Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create the OSCAR data folder at</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Report</name>
@ -6987,117 +7032,6 @@ corporelle</translation>
<translation>Ce rapport a é rédigé le %1 par OSCAR %2</translation>
</message>
</context>
<context>
<name>UpdaterWindow</name>
<message>
<source>Log</source>
<translation>Log</translation>
</message>
<message>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
<source>&amp;Finished</source>
<translation>&amp;Fin de mise à jour</translation>
</message>
<message>
<source>Please wait while updates are downloaded and installed...</source>
<translation>Merci d&apos;attendre. Téléchargement et installation en cours...</translation>
</message>
<message>
<source>Component</source>
<translation>Composant</translation>
</message>
<message>
<source>&amp;Upgrade Now</source>
<translation>&amp;Upgrader maintenant</translation>
</message>
<message>
<source>Version Information</source>
<translation>Informations de version</translation>
</message>
<message>
<source>Build Notes</source>
<translation>Note de compilation</translation>
</message>
<message>
<source>No updates were found for your platform.</source>
<translation>Aucune mise à jour disponible.</translation>
</message>
<message>
<source>Downloading &amp; Installing Updates</source>
<translation>Téléchargement et installation en cours</translation>
</message>
<message>
<source>Maybe &amp;Later</source>
<translation>&amp;Plus tard</translation>
</message>
<message>
<source>Progress</source>
<translation>Avancement</translation>
</message>
<message>
<source>%1 bytes received</source>
<translation>%1 octets reçus</translation>
</message>
<message>
<source>A new version of $APP is available</source>
<translation>Une nouvelle version de $APP est disponible</translation>
</message>
<message>
<source>Updates</source>
<translation>Mises à jour</translation>
</message>
<message>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<source>Requesting </source>
<translation>Requête en cours </translation>
</message>
<message>
<source>Release Notes</source>
<translation>Notes de publication</translation>
</message>
<message>
<source>You are already running the latest version.</source>
<translation>C&apos;est la version la plus à jour.</translation>
</message>
<message>
<source>Would you like to download and install them now?</source>
<translation>Voulez-vous les télécharger et les installer maintenant ?</translation>
</message>
<message>
<source>OSCAR Updater</source>
<translation>Outil de mise à jour de OSCAR</translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation>Désolé, fonction non encore implémentée</translation>
</message>
<message>
<source>Checking for OSCAR Updates</source>
<translation>Vérification de disponibilité de mise à jour</translation>
</message>
<message>
<source>OSCAR Updates</source>
<translation>Mise à jour de OSCAR</translation>
</message>
<message>
<source>Version %1 of OSCAR is available, opening link to download site.</source>
<translation>La version &lt;b&gt;v%1&lt;/b&gt; est disponible. Ouverture du lien vers le site de téléchargement.</translation>
</message>
<message>
<source>New OSCAR Updates are avilable:</source>
<translation>Une mise à jour de OSCAR est disponible :</translation>
</message>
<message>
<source>OSCAR Updates are currently unavailable for this platform</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Welcome</name>
<message>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -95,6 +95,13 @@
<translation>Nie można otworzyć pliku pulsoksymetru:</translation>
</message>
</context>
<context>
<name>CheckUpdates</name>
<message>
<source>Checking for newer OSCAR versions</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Daily</name>
<message>
@ -289,10 +296,6 @@
<source>PAP Mode: %1</source>
<translation>Tryb PAP- %1</translation>
</message>
<message>
<source>(Mode/Pressure settings are guessed on this day.)</source>
<translation>(Ustawienia Tryb/Ciśnienie zgadywane w tym dniu)</translation>
</message>
<message>
<source>This day just contains summary data, only limited information is available.</source>
<translation>Ten dzień zawiera tylko dane sumaryczne, jest dostępna tylko ograniczona informacja.</translation>
@ -437,6 +440,10 @@
<source>This bookmark is in a currently disabled area..</source>
<translation>Ta zakładka nie jest aktuallnie obsługiwana.</translation>
</message>
<message>
<source>(Mode and Pressure settings missing; yesterday&apos;s shown.)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExportCSV</name>
@ -1126,10 +1133,6 @@
<source>Access to Preferences has been blocked until recalculation completes.</source>
<translation>Dostęp do preferencji został zablokowany do czasu zakończenia obliczeń.</translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation>Uaktualnienia jeszcze nie działają</translation>
</message>
<message>
<source>There was an error saving screenshot to file &quot;%1&quot;</source>
<translation>Błąd przy zapisywaniu zrzutu ekranu do pliku &quot;%1&quot;</translation>
@ -1396,6 +1399,18 @@
<source>Show Personal Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create zip of OSCAR diagnostic logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check For &amp;Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for updates not implemented</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MinMaxWidget</name>
@ -2750,26 +2765,14 @@ Głównie wpływa na import.</translation>
<source>Show flags for machine detected events that haven&apos;t been identified yet.</source>
<translation>Pokaż flagi zdarzeń wykrytych przez aparat które dotąd nie zostały zidentyfikowane.</translation>
</message>
<message>
<source>Automatically Check For Updates</source>
<translation>Automatycznie sprawdzaj uaktualnienia</translation>
</message>
<message>
<source>Check for new version every</source>
<translation>Sprawdzaj w poszukiwaniu nowej wersji co</translation>
</message>
<message>
<source>Sourceforge hosts this project for free.. Please be considerate of their resources..</source>
<translation>Sourceforge przechowuje ten projekt za darmo. Prosimy o rozważenie ich zasobów.</translation>
</message>
<message>
<source>days.</source>
<translation>dni.</translation>
</message>
<message>
<source>&amp;Check for Updates now</source>
<translation>&amp;Sprawdź uaktualnienia teraz</translation>
</message>
<message>
<source>Last Checked For Updates: </source>
<translation>Ostatnio sprawdzano uaktualnienia: </translation>
@ -2778,26 +2781,6 @@ Głównie wpływa na import.</translation>
<source>TextLabel</source>
<translation>Etykieta tekstowa</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;If your interested in helping test new features and bugfixes early, click here.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;But please be warned this will sometimes mean breaky code..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Jeśli jesteś zainteresowany w pomocy w testowaniu nowych funkcji, i usuwaniu błędów, kliknij tu.&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Tylko ostrzegamy, to może czasem oznaczać zepsuty kod programu.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>I want to try experimental and test builds (Advanced users only please.)</source>
<translation>Chcę wypróbować wersje testowe i eksperymentalne (Zapraszamy tylko zaawansowanych użytkowników)</translation>
</message>
<message>
<source>&amp;Appearance</source>
<translation>&amp;Wygląd</translation>
@ -3391,6 +3374,42 @@ p, li { white-space: pre-wrap; }
<source>Will you be using a ResMed brand machine?</source>
<translation>Czy będziesz używał aparatu ResMed?</translation>
</message>
<message>
<source>Check For Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are using a test version of OSCAR. Test versions check for updates automatically at least once every seven days. You may set the interval to less than seven days.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Automatically check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>How often OSCAR should check for updates.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you are interested in helping test new features and bugfixes early, click here.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>I want to try experimental and test builds. (Advanced users only please.)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If you would like to help test early versions of OSCAR, please see the Wiki page about testing OSCAR. We welcome everyone who would like to test OSCAR, help develop OSCAR, and help with translations to existing or new languages. https://www.sleepfiles.com/OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white, which can be more legible on non-color printers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Print reports in black and white (monochrome)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfileSelect</name>
@ -6086,16 +6105,6 @@ Proszę przebuduj dane CPAP</translation>
<source>Please Wait...</source>
<translation>Zaczekaj ...</translation>
</message>
<message>
<source>%1
Line %2, column %3</source>
<translation>%1
Wiersz %2, kolumna %3</translation>
</message>
<message>
<source>Could not parse Updates.xml file.</source>
<translation>Nie można zanalizować pliku Updates.xml.</translation>
</message>
<message>
<source>Using </source>
<translation>Używam </translation>
@ -6666,6 +6675,42 @@ Wiersz %2, kolumna %3</translation>
<source>(%2 days ago)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>New versions file improperly formed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running the latest release of OSCAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A more recent version of OSCAR is available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You are running version %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSCAR %1 is available &lt;a href=&apos;%2&apos;&gt;here&lt;/a&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information about more recent test version %1 is available at &lt;a href=&apos;%2&apos;&gt;%2&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(Reading %1 took %2 seconds)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check for OSCAR Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create the OSCAR data folder at</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Report</name>
@ -6980,117 +7025,6 @@ Wiersz %2, kolumna %3</translation>
<translation>Ten raport został przygotowany %1 przez OSCAR %2</translation>
</message>
</context>
<context>
<name>UpdaterWindow</name>
<message>
<source>A new version of $APP is available</source>
<translation>Nowa wersja $APP jest dostępna</translation>
</message>
<message>
<source>Version Information</source>
<translation>Informacje o wersji</translation>
</message>
<message>
<source>Release Notes</source>
<translation>Informacje o wydaniu</translation>
</message>
<message>
<source>OSCAR Updater</source>
<translation>file:///F:/z pulpitu/linguist_5.12.0/Polski.pl.ts</translation>
</message>
<message>
<source>Build Notes</source>
<translation>Informacje o wydaniu</translation>
</message>
<message>
<source>Maybe &amp;Later</source>
<translation>Może &amp;później</translation>
</message>
<message>
<source>&amp;Upgrade Now</source>
<translation>&amp;Uaktualnij teraz</translation>
</message>
<message>
<source>Please wait while updates are downloaded and installed...</source>
<translation>Proszę zaczekaj, aktualizacja jest pobierana i instalowana...</translation>
</message>
<message>
<source>Updates</source>
<translation>Uaktualnienia</translation>
</message>
<message>
<source>Component</source>
<translation>Składnik</translation>
</message>
<message>
<source>Version</source>
<translation>Wersja</translation>
</message>
<message>
<source>Size</source>
<translation>Rozmiar</translation>
</message>
<message>
<source>Progress</source>
<translation>Postęp</translation>
</message>
<message>
<source>Log</source>
<translation>Log</translation>
</message>
<message>
<source>Downloading &amp; Installing Updates</source>
<translation>Pobieranie i instalowanie uaktualnień</translation>
</message>
<message>
<source>&amp;Finished</source>
<translation>&amp;Ukończone</translation>
</message>
<message>
<source>Requesting </source>
<translation>Wysyłanie żądania </translation>
</message>
<message>
<source>Updates are not yet implemented</source>
<translation>Uaktualnienia jak na razie niedostępne</translation>
</message>
<message>
<source>Checking for OSCAR Updates</source>
<translation>Sprawdzanie uaktualnień OSCAR</translation>
</message>
<message>
<source>OSCAR Updates</source>
<translation>Uaktualnienia OSCAR</translation>
</message>
<message>
<source>Version %1 of OSCAR is available, opening link to download site.</source>
<translation>Wersja %1 OSCAR jest dostępna, otwieram link do strony z pobieraniem.</translation>
</message>
<message>
<source>You are already running the latest version.</source>
<translation>Używasz najnowszej wersji.</translation>
</message>
<message>
<source>No updates were found for your platform.</source>
<translation>Nie znaleziono uaktualnień dla Twojej platformy.</translation>
</message>
<message>
<source>Would you like to download and install them now?</source>
<translation>Czy chcesz pobrać i zainstalować je teraz?</translation>
</message>
<message>
<source>%1 bytes received</source>
<translation>Odebrano %1 bajtów</translation>
</message>
<message>
<source>New OSCAR Updates are avilable:</source>
<translation> dostępne aktualizacje:</translation>
</message>
<message>
<source>OSCAR Updates are currently unavailable for this platform</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Welcome</name>
<message>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -927,6 +927,11 @@ void gGraph::mouseReleaseEvent(QMouseEvent *event)
m_selecting_area = false;
m_selection.setWidth(0);
// Shift-drag only measures a range and should not zoom in.
if ((event->modifiers() & Qt::ShiftModifier) != 0) {
return;
}
if (m_graphview->horizTravel() > mouse_movement_threshold) {
x -= left; //+m_marginleft;
//y -= top; //+m_margintop;

View File

@ -20,7 +20,9 @@
#include <QVBoxLayout>
#include <QDockWidget>
#include <QMainWindow>
# include <QWindow>
#include <QScreen>
#include <QWindow>
#include <QMessageBox>
#ifdef DEBUG_EFFICIENCY
@ -447,28 +449,45 @@ void MyDockWindow::closeEvent(QCloseEvent *event)
MyDockWindow * gGraphView::dock = nullptr;
void gGraphView::popoutGraph()
{
QScreen *screen = QGuiApplication::primaryScreen();
QRect screenGeometry = screen->availableGeometry();
int screenHeight = screenGeometry.height();
if (popout_graph) {
// Create new dock if we don't have one already
if (dock == nullptr) {
dock = new MyDockWindow(mainwin->getDaily(), Qt::Window);
dock->resize(width(),0);
// QScrollArea
}
QDockWidget * widget = new QDockWidget(dock);
widget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
widget->setMouseTracking(true);
int h = dock->height()+popout_graph->height()+30;
if (h > height()) h = height();
dock->resize(dock->width(), h);
widget->resize(width(), popout_graph->height()+30);
gGraphView * gv = new gGraphView(widget, this);
widget->setWidget(gv);
//////// Create dock widget and resize dock to hold new widget
QDockWidget * newDockWidget = new QDockWidget(dock);
newDockWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
newDockWidget->setMouseTracking(true);
int titleBarHeight = 30;
int newDockHeight = dock->height()+popout_graph->height()+titleBarHeight/*+2*/; // +2 for group box border
qDebug() << "widget geometry" << newDockWidget->frameGeometry() << "title bar height" << titleBarHeight;
if (newDockHeight > screenHeight) {
QMessageBox::warning(nullptr, STR_MessageBox_Warning,
QObject::tr("The popout window is full. You should capture the existing\npopout window, delete it, then pop out this graph again."));
return;
}
qDebug() << "dock height" << dock->height() << "popout graph height" << popout_graph->height();
dock->resize(dock->width(), newDockHeight);
newDockWidget->setMinimumHeight(popout_graph->height()+titleBarHeight);
newDockWidget->resize(width(), popout_graph->height()+titleBarHeight);
qDebug() << "dock height resized to" << dock->height() << "widget resized to" << newDockWidget->height();
//////// End resize dock to hold new widget
gGraphView * gv = new gGraphView(newDockWidget, this);
newDockWidget->setWidget(gv);
gv->setMouseTracking(true);
gv->setDay(this->day());
dock->addDockWidget(Qt::BottomDockWidgetArea, widget,Qt::Vertical);
dock->addDockWidget(Qt::BottomDockWidgetArea, newDockWidget, Qt::Vertical);
/////// Fix some resize glitches ///////
// https://stackoverflow.com/questions/26286646/create-a-qdockwidget-that-resizes-to-its-contents?rq=1
/********* Is this still needed? -- gts 8/1/2020
QDockWidget* dummy = new QDockWidget;
dock->addDockWidget(Qt::BottomDockWidgetArea, dummy);
dock->removeDockWidget(dummy);
@ -479,6 +498,7 @@ void gGraphView::popoutGraph()
QMouseEvent* grabSeparatorEvent =
new QMouseEvent(QMouseEvent::MouseButtonPress,mousePos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);
qApp->postEvent(dock, grabSeparatorEvent);
*************/
/////////////////////////////////////////
// dock->updateGeometry();
@ -486,6 +506,8 @@ void gGraphView::popoutGraph()
gGraph * graph = popout_graph;
/////////////////////
// Construct name for this popout graph
QString basename = graph->title()+" - ";
if (graph->m_day) {
// append the date of the graph's left edge to the snapshot name
@ -494,14 +516,14 @@ void gGraphView::popoutGraph()
QDateTime date = QDateTime::fromMSecsSinceEpoch(graph->min_x, Qt::LocalTime);
basename += date.date().toString(Qt::SystemLocaleLongDate);
}
QString newname = basename;
// Find a new name.. How many snapshots for each graph counts as stupid?
QString newtitle = graph->title();
newDockWidget->setWindowTitle(newname);
// end name construction and setting title
/////////////////////
widget->setWindowTitle(newname);
qDebug() << "original graph height is" << graph->height();
gGraph * newgraph = new gGraph(newname, nullptr, newtitle, graph->units(), graph->height(), graph->group());
newgraph->setHeight(graph->height());
@ -536,11 +558,14 @@ void gGraphView::popoutGraph()
newgraph->setSnapshot(false);
newgraph->setShowTitle(true);
qDebug() << "newgraph height" << newgraph->height() << "gv height" << gv->height();
gv->resetLayout();
gv->timedRedraw(0);
//widget->setUpdatesEnabled(true);
// Force dock to redraw (and return focus to OSCAR)
dock->activateWindow();
dock->raise();
this->activateWindow();
this->raise();
}
}

View File

@ -223,11 +223,11 @@ void gLineOverlayBar::paint(QPainter &painter, gGraph &w, const QRegion &region)
painter.drawRect(rect);
// Queue tooltip
QString lab2 = QString("%1").arg(schema::channel[m_code].fullname());
QString strEventTooltip = QString("%1").arg(schema::channel[m_code].fullname());
if (raw != 0) // Hide duration when it is zero
lab2 += QString(" (%1)").arg(raw);
strEventTooltip += QString(" (%1)").arg(raw);
w.ToolTip(lab2, x1 - 10, start_py + 24 + (3 * w.printScaleY()), TT_AlignRight, AppSetting->tooltipTimeout());
w.ToolTip(strEventTooltip, x1 - 10, start_py + 24 + (3 * w.printScaleY()), TT_AlignRight, AppSetting->tooltipTimeout());
painter.setPen(QPen(col,3));
} else {

View File

@ -317,9 +317,10 @@ QString gSummaryChart::tooltipData(Day *, int idx)
{
QString txt;
const auto & slices = cache[idx];
for (const auto & slice : slices) {
txt += QString("\n%1: %2").arg(slice.name).arg(float(slice.value), 0, 'f', 2);
int i = slices.size();
while (i > 0) {
i--;
txt += QString("\n%1: %2").arg(slices[i].name).arg(float(slices[i].value), 0, 'f', 2);
}
return txt;
}
@ -1240,33 +1241,35 @@ void gAHIChart::afterDraw(QPainter & /*painter */, gGraph &graph, QRectF rect)
QStringList txtlist;
if (!skip) txtlist.append(QObject::tr("%1 %2 / %3 / %4").arg(STR_TR_AHI).arg(min_ahi, 0, 'f', 2).arg(med, 0, 'f', 2).arg(max_ahi, 0, 'f', 2));
for (auto & calc : calcitems) {
ChannelID code = calc.code;
int i = calcitems.size();
while (i > 0) {
i--;
ChannelID code = calcitems[i].code;
schema::Channel & chan = schema::channel[code];
float mid = 0;
skip = true;
switch (midcalc) {
case 0:
if (calc.median_data.size() > 0) {
mid = median(calc.median_data.begin(), calc.median_data.end());
if (calcitems[i].median_data.size() > 0) {
mid = median(calcitems[i].median_data.begin(), calcitems[i].median_data.end());
skip = false;
}
break;
case 1:
if (calc.divisor > 0) {
mid = calc.wavg_sum / calc.divisor;
if (calcitems[i].divisor > 0) {
mid = calcitems[i].wavg_sum / calcitems[i].divisor;
skip = false;
}
break;
case 2:
if (calc.cnt > 0) {
mid = calc.avg_sum / calc.cnt;
if (calcitems[i].cnt > 0) {
mid = calcitems[i].avg_sum / calcitems[i].cnt;
skip = false;
}
break;
}
if (!skip) txtlist.append(QString("%1 %2 / %3 / %4").arg(chan.label()).arg(calc.min, 0, 'f', 2).arg(mid, 0, 'f', 2).arg(calc.max, 0, 'f', 2));
if (!skip) txtlist.append(QString("%1 %2 / %3 / %4").arg(chan.label()).arg(calcitems[i].min, 0, 'f', 2).arg(mid, 0, 'f', 2).arg(calcitems[i].max, 0, 'f', 2));
}
QString txt = txtlist.join(", ");
graph.renderText(txt, rect.left(), rect.top()-5*graph.printScaleY(), 0);
@ -1294,9 +1297,11 @@ QString gAHIChart::tooltipData(Day *day, int idx)
float total = 0;
float hour = day->hours(m_machtype);
QString txt;
for (const auto & slice : slices) {
total += slice.value;
txt += QString("\n%1: %2").arg(slice.name).arg(float(slice.value) / hour, 0, 'f', 2);
int i = slices.size();
while (i > 0) {
i--;
total += slices[i].value;
txt += QString("\n%1: %2").arg(slices[i].name).arg(float(slices[i].value) / hour, 0, 'f', 2);
}
return QString("\n%1: %2").arg(STR_TR_AHI).arg(float(total) / hour,0,'f',2)+txt;
}

View File

@ -1045,26 +1045,26 @@ QString formatTime(EventDataType v, bool show_seconds = false, bool duration = f
bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
{
graph->timedRedraw(0);
int x = event->x();
int y = event->y();
int xposLeft = event->x();
int yPosTop = event->y();
if (!m_rect.contains(x, y)) {
if (!m_rect.contains(xposLeft, yPosTop)) {
// if ((x<0 || y<0 || x>l_width || y>l_height)) {
hl_day = -1;
//graph->timedRedraw(2000);
return false;
}
x -= m_rect.left();
y -= m_rect.top();
xposLeft -= m_rect.left();
yPosTop -= m_rect.top();
Q_UNUSED(y)
Q_UNUSED(yPosTop)
double xx = l_maxx - l_minx;
double xmult = xx / double(l_width + barw);
qint64 mx = ceil(xmult * double(x - offset));
qint64 mx = ceil(xmult * double(xposLeft - offset));
mx += l_minx;
mx = mx + l_offset; //-86400000L;
int zd = mx / 86400000L;
@ -1080,7 +1080,7 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
QMap<short, EventDataType> &valhash = d.value();
x += m_rect.left(); //gYAxis::Margin+gGraphView::titleWidth; //graph->m_marginleft+
xposLeft += m_rect.left(); //gYAxis::Margin+gGraphView::titleWidth; //graph->m_marginleft+
int y = event->y() - m_rect.top() + rtop - 15;
//QDateTime dt1=QDateTime::fromTime_t(hl_day*86400).toLocalTime();
QDateTime dt2 = QDateTime::fromTime_t(hl_day * 86400).toUTC();
@ -1094,7 +1094,7 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
if ((d != m_values.end()) && (day != nullptr)) {
bool summary_only = day->summaryOnly();
QString z = dt.toString(Qt::SystemLocaleShortDate);
QString strTooltip = dt.toString(Qt::SystemLocaleShortDate);
// Day * day=m_days[hl_day];
//EventDataType val;
@ -1112,10 +1112,10 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
val = QString::number(d.value()[0], 'f', 2);
}
z += "\r\n" + m_label + ": " + val;
strTooltip += "\r\n" + m_label + ": " + val;
if (m_type[1] == ST_SESSIONS) {
z += " "+QString(QObject::tr("(Sess: %1)")).arg(day->size(), 0);
strTooltip += " "+QString(QObject::tr("(Sess: %1)")).arg(day->size(), 0);
}
EventDataType v = m_times[zd][0];
@ -1123,9 +1123,9 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
if (lastt < 0) { lastt = 0; }
z += "\r\n"+QString(QObject::tr("Bedtime: %1")).arg(formatTime(v, false, false, true));
strTooltip += "\r\n"+QString(QObject::tr("Bedtime: %1")).arg(formatTime(v, false, false, true));
v = m_times[zd][lastt] + m_values[zd][lastt];
z += "\r\n"+QString(QObject::tr("Waketime: %1")).arg(formatTime(v, false, false, true));
strTooltip += "\r\n"+QString(QObject::tr("Waketime: %1")).arg(formatTime(v, false, false, true));
} else if (m_graphtype == GT_BAR) {
if (m_type[0] == ST_HOURS) {
@ -1138,11 +1138,11 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
val = QString::number(d.value()[0], 'f', 2);
}
z += "\r\n" + m_label + ": " + val;
strTooltip += "\r\n" + m_label + ": " + val;
//z+="\r\nMode="+QString::number(day->settings_min("FlexSet"),'f',0);
} else {
QString a;
QString strDataType;
for (int i = 0; i < m_type.size(); i++) {
if (!m_goodcodes[i]) {
@ -1157,64 +1157,64 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
switch (m_type[i]) {
case ST_WAVG:
a = STR_TR_WAvg;
strDataType = STR_TR_WAvg;
break;
case ST_AVG:
a = STR_TR_Avg;
strDataType = STR_TR_Avg;
break;
case ST_90P:
a = QObject::tr("90%");
strDataType = QObject::tr("90%");
break;
case ST_PERC:
if (tval >= 0.99) { a = STR_TR_Max; }
else if (tval == 0.5) { a = STR_TR_Med; }
else { a = QString("%1%").arg(tval * 100.0, 0, 'f', 0); }
if (tval >= 0.99) { strDataType = STR_TR_Max; }
else if (tval == 0.5) { strDataType = STR_TR_Med; }
else { strDataType = QString("%1%").arg(tval * 100.0, 0, 'f', 0); }
break;
case ST_MIN:
a = STR_TR_Min;
strDataType = STR_TR_Min;
break;
case ST_MAX:
a = STR_TR_Max;
strDataType = STR_TR_Max;
break;
case ST_CPH:
a = "";
strDataType = "";
break;
case ST_SPH:
a = "%";
strDataType = "%";
break;
case ST_HOURS:
a = STR_UNIT_Hours;
strDataType = STR_UNIT_Hours;
break;
case ST_SESSIONS:
a = STR_TR_Sessions;
strDataType = STR_TR_Sessions;
break;
case ST_SETMIN:
a = STR_TR_Min;
strDataType = STR_TR_Min;
break;
case ST_SETMAX:
a = STR_TR_Max;
strDataType = STR_TR_Max;
break;
default:
a = "";
strDataType = "";
break;
}
if (m_type[i] == ST_SESSIONS) {
val = QString::number(d.value()[i + 1], 'f', 0);
z += "\r\n" + a + ": " + val;
strTooltip += "\r\n" + strDataType + ": " + val;
} else {
//if (day && (day->channelExists(m_codes[i]) || day->settingExists(m_codes[i]))) {
schema::Channel &chan = schema::channel[m_codes[i]];
@ -1230,26 +1230,24 @@ bool SummaryChart::mouseMoveEvent(QMouseEvent *event, gGraph *graph)
val = QString::number(v, 'f', 2);
}
z += "\r\n" + chan.label() + " " + a + ": " + val;
strTooltip += "\r\n" + chan.label() + " " + strDataType + ": " + val;
//}
}
}
}
if (summary_only) {
z += "\r\n"+QObject::tr("(Summary Only)");
strTooltip += "\r\n"+QObject::tr("(Summary Only)");
}
graph->ToolTip(z, x, y - 15);
graph->ToolTip(strTooltip, xposLeft, y - 15);
return false;
} else {
QString z = dt.toString(Qt::SystemLocaleShortDate) + "\r\n"+QObject::tr("No Data");
graph->ToolTip(z, x, y - 15);
graph->ToolTip(z, xposLeft, y - 15);
return false;
}
}
return false;
}