From 414f06c0c26d786068d3c1f72895665920fbb29b Mon Sep 17 00:00:00 2001 From: Alex Spataru Date: Mon, 23 Sep 2024 01:17:27 -0500 Subject: [PATCH] Finish spanish translation --- app/CMakeLists.txt | 14 +- app/qml/MainWindow/Panes/Toolbar.qml | 1 - app/rcc/themes/Outdoor Night.json | 4 +- app/src/CSV/Player.cpp | 2 +- app/src/IO/Drivers/Network.cpp | 2 +- app/src/IO/Drivers/Serial.cpp | 2 +- app/src/IO/Manager.cpp | 18 +- app/src/IO/Manager.h | 2 +- app/src/Misc/ModuleManager.cpp | 2 +- app/src/Misc/Translator.cpp | 14 +- app/translations/README.md | 133 + app/translations/de.qm | Bin 42450 -> 0 bytes app/translations/de.ts | 3656 --------------------- app/translations/en.qm | Bin 25104 -> 0 bytes app/translations/en.ts | 2761 ---------------- app/translations/es.qm | Bin 43776 -> 0 bytes app/translations/es.ts | 3832 ----------------------- app/translations/qm/de_DE.qm | Bin 0 -> 33 bytes app/translations/qm/en_US.qm | Bin 0 -> 26717 bytes app/translations/qm/es_MX.qm | Bin 0 -> 46773 bytes app/translations/qm/ru_RU.qm | Bin 0 -> 44 bytes app/translations/qm/zh_CN.qm | Bin 0 -> 26 bytes app/translations/ru.qm | Bin 42275 -> 0 bytes app/translations/ru.ts | 3396 -------------------- app/translations/translation_manager.py | 158 + app/translations/translations.qrc | 9 + app/translations/ts/de_DE.ts | 2448 +++++++++++++++ app/translations/ts/en_US.ts | 2448 +++++++++++++++ app/translations/ts/es_MX.ts | 2449 +++++++++++++++ app/translations/ts/ru_RU.ts | 2448 +++++++++++++++ app/translations/ts/zh_CN.ts | 2448 +++++++++++++++ app/translations/zh.qm | Bin 30382 -> 0 bytes app/translations/zh.ts | 3741 ---------------------- 33 files changed, 12573 insertions(+), 17415 deletions(-) create mode 100644 app/translations/README.md delete mode 100644 app/translations/de.qm delete mode 100644 app/translations/de.ts delete mode 100644 app/translations/en.qm delete mode 100644 app/translations/en.ts delete mode 100644 app/translations/es.qm delete mode 100644 app/translations/es.ts create mode 100644 app/translations/qm/de_DE.qm create mode 100644 app/translations/qm/en_US.qm create mode 100644 app/translations/qm/es_MX.qm create mode 100644 app/translations/qm/ru_RU.qm create mode 100644 app/translations/qm/zh_CN.qm delete mode 100644 app/translations/ru.qm delete mode 100644 app/translations/ru.ts create mode 100644 app/translations/translation_manager.py create mode 100644 app/translations/translations.qrc create mode 100644 app/translations/ts/de_DE.ts create mode 100644 app/translations/ts/en_US.ts create mode 100644 app/translations/ts/es_MX.ts create mode 100644 app/translations/ts/ru_RU.ts create mode 100644 app/translations/ts/zh_CN.ts delete mode 100644 app/translations/zh.qm delete mode 100644 app/translations/zh.ts diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 0752c2a6..6955ce2c 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -55,6 +55,7 @@ find_package( Bluetooth Positioning PrintSupport + LinguistTools QuickControls2 ) @@ -62,7 +63,7 @@ qt_standard_project_setup() qt_policy(SET QTP0001 NEW) #------------------------------------------------------------------------------- -# Import source code & resources +# Import source code #------------------------------------------------------------------------------- include_directories(src) @@ -224,11 +225,17 @@ elseif(UNIX) endif() #------------------------------------------------------------------------------- -# Generate resources +# Add resources #------------------------------------------------------------------------------- qt_add_resources(RES_RCC ${CMAKE_CURRENT_SOURCE_DIR}/rcc/rcc.qrc) +#------------------------------------------------------------------------------- +# Add translations +#------------------------------------------------------------------------------- + +qt_add_resources(QM_RCC ${CMAKE_CURRENT_SOURCE_DIR}/translations/translations.qrc) + #------------------------------------------------------------------------------- # Create executable #------------------------------------------------------------------------------- @@ -239,6 +246,9 @@ qt_add_executable( ${HEADERS} ${QML_RCC} ${RES_RCC} + ${QM_RCC} + ${QT_RCC_TRANSLATIONS} + ${APP_RCC_TRANSLATIONS} MANUAL_FINALIZATION ) diff --git a/app/qml/MainWindow/Panes/Toolbar.qml b/app/qml/MainWindow/Panes/Toolbar.qml index 0c39ffe5..e112ef87 100644 --- a/app/qml/MainWindow/Panes/Toolbar.qml +++ b/app/qml/MainWindow/Panes/Toolbar.qml @@ -295,7 +295,6 @@ ToolBar { "qrc:/rcc/icons/toolbar/disconnect.svg" - // // Connect/disconnect device when button is clicked // diff --git a/app/rcc/themes/Outdoor Night.json b/app/rcc/themes/Outdoor Night.json index 19292510..c2df39ad 100644 --- a/app/rcc/themes/Outdoor Night.json +++ b/app/rcc/themes/Outdoor Night.json @@ -95,8 +95,8 @@ "#ff2d55", "#7a7c80", "#8e8e93", - "#61afef", - "#b16286" + "#b16286", + "#56b6c2" ] } } diff --git a/app/src/CSV/Player.cpp b/app/src/CSV/Player.cpp index c8022dac..ebe6fd04 100644 --- a/app/src/CSV/Player.cpp +++ b/app/src/CSV/Player.cpp @@ -244,7 +244,7 @@ void CSV::Player::openFile(const QString &filePath) "to disconnect from the serial port"), qAppName(), QMessageBox::No | QMessageBox::Yes); if (response == QMessageBox::Yes) - IO::Manager::instance().disconnectDriver(); + IO::Manager::instance().disconnectDevice(); else return; } diff --git a/app/src/IO/Drivers/Network.cpp b/app/src/IO/Drivers/Network.cpp index 3b2572a0..f8ed4a5a 100644 --- a/app/src/IO/Drivers/Network.cpp +++ b/app/src/IO/Drivers/Network.cpp @@ -536,6 +536,6 @@ void IO::Drivers::Network::onErrorOccurred( else error = QString::number(socketError); - Manager::instance().disconnectDriver(); + Manager::instance().disconnectDevice(); Misc::Utilities::showMessageBox(tr("Network socket error"), error); } diff --git a/app/src/IO/Drivers/Serial.cpp b/app/src/IO/Drivers/Serial.cpp index 68443057..7ae37d45 100644 --- a/app/src/IO/Drivers/Serial.cpp +++ b/app/src/IO/Drivers/Serial.cpp @@ -746,7 +746,7 @@ void IO::Drivers::Serial::refreshSerialDevices() void IO::Drivers::Serial::handleError(QSerialPort::SerialPortError error) { if (error != QSerialPort::NoError) - Manager::instance().disconnectDriver(); + Manager::instance().disconnectDevice(); } /** diff --git a/app/src/IO/Manager.cpp b/app/src/IO/Manager.cpp index 3731f8e7..a936eddb 100644 --- a/app/src/IO/Manager.cpp +++ b/app/src/IO/Manager.cpp @@ -241,7 +241,7 @@ qint64 IO::Manager::writeData(const QByteArray &data) void IO::Manager::toggleConnection() { if (connected()) - disconnectDriver(); + disconnectDevice(); else connectDevice(); } @@ -269,7 +269,7 @@ void IO::Manager::connectDevice() // Error opening the device else - disconnectDriver(); + disconnectDevice(); // Update UI Q_EMIT connectedChanged(); @@ -279,21 +279,18 @@ void IO::Manager::connectDevice() /** * Disconnects from the current device and clears temp. data */ -void IO::Manager::disconnectDriver() +void IO::Manager::disconnectDevice() { if (deviceAvailable()) { // Disconnect device signals/slots disconnect(driver(), &IO::HAL_Driver::dataReceived, this, &IO::Manager::onDataReceived); - disconnect(driver(), &IO::HAL_Driver::configurationChanged, this, - &IO::Manager::configurationChanged); // Close driver device driver()->close(); - // Update device pointer - m_driver = Q_NULLPTR; + // Reset data buffer m_receivedBytes = 0; m_dataBuffer.clear(); m_dataBuffer.reserve(maxBufferSize()); @@ -395,14 +392,11 @@ void IO::Manager::setSeparatorSequence(const QString &sequence) void IO::Manager::setSelectedDriver(const IO::Manager::SelectedDriver &driver) { // Disconnect current driver - disconnectDriver(); + disconnectDevice(); // Change data source m_selectedDriver = driver; - // Disconnect previous device (if any) - disconnectDriver(); - // Try to open a serial port connection if (selectedDriver() == SelectedDriver::Serial) setDriver(&(Drivers::Serial::instance())); @@ -537,7 +531,7 @@ void IO::Manager::onDataReceived(const QByteArray &data) { // Verify that device is still valid if (!driver()) - disconnectDriver(); + disconnectDevice(); // Read data & append it to buffer auto bytes = data.length(); diff --git a/app/src/IO/Manager.h b/app/src/IO/Manager.h index dc19b691..58c4bc88 100644 --- a/app/src/IO/Manager.h +++ b/app/src/IO/Manager.h @@ -157,7 +157,7 @@ public: public slots: void connectDevice(); void toggleConnection(); - void disconnectDriver(); + void disconnectDevice(); void setWriteEnabled(const bool enabled); void processPayload(const QByteArray &payload); void setMaxBufferSize(const int maxBufferSize); diff --git a/app/src/Misc/ModuleManager.cpp b/app/src/Misc/ModuleManager.cpp index d142f450..6534f02d 100644 --- a/app/src/Misc/ModuleManager.cpp +++ b/app/src/Misc/ModuleManager.cpp @@ -168,7 +168,7 @@ void Misc::ModuleManager::onQuit() { CSV::Export::instance().closeFile(); CSV::Player::instance().closeFile(); - IO::Manager::instance().disconnectDriver(); + IO::Manager::instance().disconnectDevice(); Misc::TimerEvents::instance().stopTimers(); Plugins::Server::instance().removeConnection(); } diff --git a/app/src/Misc/Translator.cpp b/app/src/Misc/Translator.cpp index 177aaef8..41aa7f4a 100644 --- a/app/src/Misc/Translator.cpp +++ b/app/src/Misc/Translator.cpp @@ -167,27 +167,27 @@ void Misc::Translator::setLanguage(const int language) switch (language) { case 0: - langName = QStringLiteral("en"); + langName = QStringLiteral("en_US"); locale = QLocale(QLocale::English); break; case 1: - langName = QStringLiteral("es"); + langName = QStringLiteral("es_MX"); locale = QLocale(QLocale::Spanish); break; case 2: - langName = QStringLiteral("zh"); + langName = QStringLiteral("zh_CN"); locale = QLocale(QLocale::Chinese); break; case 3: - langName = QStringLiteral("de"); + langName = QStringLiteral("de_DE"); locale = QLocale(QLocale::German); break; case 4: - langName = QStringLiteral("ru"); + langName = QStringLiteral("ru_RU"); locale = QLocale(QLocale::Russian); break; default: - langName = QStringLiteral("en"); + langName = QStringLiteral("en_US"); locale = QLocale(QLocale::English); break; } @@ -210,7 +210,7 @@ void Misc::Translator::setLanguage(const QLocale &locale, const QString &language) { qApp->removeTranslator(&m_translator); - const auto qmPath = QStringLiteral(":/rcc/translations/%1.qm").arg(language); + const auto qmPath = QStringLiteral(":/qm/%1.qm").arg(language); if (m_translator.load(locale, qmPath)) { qApp->installTranslator(&m_translator); diff --git a/app/translations/README.md b/app/translations/README.md new file mode 100644 index 00000000..786bf87f --- /dev/null +++ b/app/translations/README.md @@ -0,0 +1,133 @@ +# Translation Manager + +`translation_manager.py` is a Python script designed to manage Qt translation files (`.ts` and `.qm`). It can be used to: +1. Create new translation source (`.ts`) files for a given language. +2. Update existing `.ts` files by running `lupdate` and removing obsolete strings. +3. Compile `.ts` files into binary `.qm` files using `lrelease`. + +## Prerequisites + +Before using this script, ensure the following tools are installed on your system: +- **Qt Linguist**: The `lupdate` and `lrelease` commands are part of the Qt toolchain. Make sure they are available in your system's path. + +You can verify the installation by running: + +```bash +lupdate --version +lrelease --version +``` + +Additionally, ensure that you have Python 3.x installed. + +## Usage + +The script provides three main functionalities: +- **Create a new `.ts` file for a language** +- **Update existing `.ts` files using `lupdate`** +- **Compile `.ts` files into `.qm` files using `lrelease`** + +### 1. Creating a New Translation File + +To create a new `.ts` file for a language, use the `--new-ts` option followed by the language code (e.g., `es_MX` for Mexican Spanish): + +```bash +python3 translation_manager.py --new-ts es_MX +``` + +This will generate a new `es_MX.ts` file in the `app/translations/ts` folder with the source language set to `en_US`. + +### 2. Updating Existing `.ts` Files + +To update existing `.ts` files and remove obsolete entries, use the `--lupdate` option: + +```bash +python3 translation_manager.py --lupdate +``` + +This will scan the source files (both `.cpp`, `.h`, and `.qml`) in the `app` and `lib` directories and update the translations in the `.ts` files located in the `app/translations/ts` folder. + +### 3. Compiling `.ts` Files into `.qm` Files + +To compile the `.ts` files into binary `.qm` files for use in the application, use the `--lrelease` option: + +```bash +python3 translation_manager.py --lrelease +``` + +The `.qm` files will be generated and placed in the `app/translations/qm` folder. + +### 4. Running Both `lupdate` and `lrelease` + +You can also combine both updating and compiling into a single command: + +```bash +python3 translation_manager.py --lupdate --lrelease +``` + +### 5. Help and Usage Instructions + +If no arguments are provided, the script will display the help message: + +```bash +python3 translation_manager.py +``` + +This will output the following information: + +``` +usage: translation_manager.py [-h] [--new-ts LANGUAGE] [--lupdate] [--lrelease] + +Manage translations with lupdate and lrelease. + +optional arguments: + -h, --help show this help message and exit + --new-ts LANGUAGE Create a new .ts file for the given language code (e.g., "es" for Spanish). + --lupdate Run lupdate to update all existing .ts files. + --lrelease Run lrelease to compile .ts files into .qm files. +``` + +## Folder Structure + +Here’s an example of the folder structure where the script operates: + +``` +app/ +├── translations/ +│ ├── ts/ # Folder containing the .ts files (source translations) +│ │ ├── en_US.ts +│ │ ├── es_MX.ts +│ │ └── ru_RU.ts +│ ├── qm/ # Folder where the .qm files (compiled translations) are stored +│ └── translation_manager.py # This script +``` + +## Example Commands + +1. Create a new French translation file (`fr_FR.ts`): + +```bash +python3 translation_manager.py --new-ts fr_FR +``` + +2. Update all existing `.ts` files: + +```bash +python3 translation_manager.py --lupdate +``` + +3. Compile `.ts` files into `.qm`: + +```bash +python3 translation_manager.py --lrelease +``` + +4. Perform both update and compile: + +```bash +python3 translation_manager.py --lupdate --lrelease +``` + +## Notes + +- The script assumes that your source language is `en_US`, and this is automatically set when creating new `.ts` files. +- Make sure that the `lib` folder (which contains additional source files) exists at the same level as the `app` folder. diff --git a/app/translations/de.qm b/app/translations/de.qm deleted file mode 100644 index 3d0894720345175a53c050e7f76f08404f3915cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42450 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 diff --git a/app/translations/de.ts b/app/translations/de.ts deleted file mode 100644 index 82c235a1..00000000 --- a/app/translations/de.ts +++ /dev/null @@ -1,3656 +0,0 @@ - - - - - About - - - About - Über - - - - Version %1 - Version %1 - - - - The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - Das Programm wird OHNE JEGLICHE GEWÄHRLEISTUNG geliefert, EINSCHLIESSLICH DER GEWÄHRLEISTUNG FÜR DESIGN, MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. - - - Contact author - Autor kontaktieren - - - - Report bug - Fehler melden - - - Check for updates - Nach Updates suchen - - - - Documentation - Dokumentation - - - - Close - Schließen - - - - Copyright © 2020-%1 %2, released under the MIT License. - Copyright © 2020-%1 %2, veröffentlicht unter der MIT-Lizenz. - - - Open log file - Logdatei öffnen - - - - Website - Webseite - - - - Acknowledgements - Danksagung - - - - Make a donation - Spenden - - - - AccelerometerDelegate - - G Units - G Einheiten - - - Reset - Zurücksetzen - - - - Acknowledgements - - - Acknowledgements - Danksagung - - - - Close - Schließen - - - - Application - - Check for updates automatically? - Automatish auf Updates prüfen? - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - Soll %1 Automatish auf Updates prüfen? Sie können jederzeit manuell über das Menü "Hilfe" nach Updates suchen - - - Drop JSON and CSV files here - JSON und CSV Dateien hierher Ziehen - - - - BluetoothLE - - - Device - - - - - Service - - - - - Scanning.... - - - - - Sorry, this version of %1 is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. - - - - - CSV::Export - - - CSV file not open - CSV Datei nicht geöffnet - - - - Cannot find CSV export file! - Konnte CSV exportierte Datei nicht finden! - - - - CSV File Error - CSV Datei Fehler - - - - Cannot open CSV file for writing! - Konnte nicht in CSV schreiben! - - - - CSV::Player - - - Select CSV file - CSV Datei auswählen - - - - CSV files - CSV Dateien - - - Invalid configuration for CSV player - Konfiguration des CSV players ist ungültig - - - You need to select a JSON map file in order to use this feature - Sie müssen eine JSON-Modelldatei auswählen, um diese Funktion nutzen zu können - - - - Serial port open, do you want to continue? - Serielle Schnittstelle offen, wollen Sie fortfahren? - - - - In order to use this feature, its necessary to disconnect from the serial port - Um diese Funktion zu nutzen, ist es notwendig, die Verbindung zur seriellen Schnittstelle zu trennen - - - There is an error with the data in the CSV file - Es liegt ein Fehler in der CSV Datei vor - - - Please verify that the CSV file was created with Serial Studio - Überprüfen Sie ob die CSV mit Serial Studio erstellt ist - - - - Cannot read CSV file - CSV-Datei kann nicht gelesen werden - - - - Please check file permissions & location - Prüfen Sie die Dateiberechtigungen und Dateipfade - - - Replay of %1 - Wiederholen von %1 - - - - Console - - No data received so far... - Noch keine Daten verfügbar... - - - Send data to device - Daten an das Gerät senden - - - Echo - Echo - - - Autoscroll - Auto Scroll - - - Show timestamp - Zeitstempel anzeigen - - - Copy - Kopieren - - - Clear - Löschen - - - Save as - Speichern als - - - Select all - Alles auswählen - - - No data received so far - Noch keine Daten verfügbar - - - Print - Drucken - - - Hide menubar - Menüleiste ausblenden - - - Show menubar - Menüleiste anzeigen - - - - Console - Konsole - - - - CsvPlayer - - - CSV Player - - - - Invalid configuration for CSV player - Konfiguration des CSV players ist ungültig - - - You need to select a JSON map file in order to use this feature - Sie müssen eine JSON-Modelldatei auswählen, um diese Funktion nutzen zu können - - - Select CSV file - CSV Datei auswählen - - - Serial port open, do you want to continue? - Serielle Schnittstelle offen, wollen Sie fortfahren? - - - In order to use this feature, its necessary to disconnect from the serial port - Um diese Funktion zu nutzen, ist es notwendig, die Verbindung zur seriellen Schnittstelle zu trennen - - - There is an error with the data in the CSV file - Es liegt ein Fehler in der CSV Datei vor - - - Please verify that the CSV file was created with Serial Studio - Überprüfen Sie ob die CSV mit Serial Studio erstellt ist - - - Cannot read CSV file - CSV-Datei kann nicht gelesen werden - - - Please check file permissions & location - Prüfen Sie die Dateiberechtigungen und Dateipfade - - - Replay of %1 - Wiederholen von %1 - - - CSV files - CSV Dateien - - - - Dashboard - - - Console - Konsole - - - - DashboardTitle - - - Console - Konsole - - - - DataGrid - - View - Ansicht - - - Horizontal Range - Horizontaler Bereich - - - Data Groups - Daten Gruppen - - - Data Plots - Daten-Diagramme - - - Data - Daten - - - Points - Punkte - - - Scale - Multiplikator - - - - DeviceManager - - Communication Mode - Komunikations Modus - - - COM Port - COM Schnittstelle - - - Baud Rate - Baud rate - - - Data Bits - Data bits - - - Stop Bits - Stop bits - - - Flow Control - Fluss-Kontrolle - - - - Donate - - - - Donate - Spende - - - - Later - Später - - - - Close - Schließen - - - - Support the development of %1! - Unterstützen Sie die Entwicklung von %1! - - - - Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) - Serial Studio ist eine freie & Open-Source-Software, die von Freiwilligen unterstützt wird. Ziehen Sie eine Spende zur Unterstützung der Entwicklung in Betracht :) - - - - You can also support this project by sharing it, reporting bugs and proposing new features! - Sie können dieses Projekt auch unterstützen, indem Sie es teilen, Fehler melden und neue Funktionen vorschlagen! - - - - Don't annoy me again! - Ärgern Sie mich nicht mehr! - - - - Downloader - - - - Updater - - - - - - - Downloading updates - Herunterladen der Updates - - - - Time remaining: 0 minutes - Verbleibende Zeit: 0 Minuten - - - - Open - Öffnen - - - - - Stop - - - - - - Time remaining - Zeit übrig - - - - unknown - unbekant - - - - Error - Fehler - - - - Cannot find downloaded update! - Heruntergeladenes Update konnte nicht gefunden werden! - - - - Close - Schließen - - - - Download complete! - Download abgeschlossen! - - - - The installer will open separately - Der Installationsprogramm öffnet sich in einem neuen Fenster - - - - Click "OK" to begin installing the update - Klicken Sie auf "OK", um die Installation des Updates zu starten - - - - In order to install the update, you may need to quit the application. - Um das Update zu installieren, müssen Sie eventuell die Anwendung beenden. - - - - In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application - Um das Update zu installieren, müssen Sie eventuell die Anwendung beenden. Dieses update is ein obligatorisches Update, die Anwedung wird jetzt geschlossen - - - - Click the "Open" button to apply the update - Klicken Sie auf die Schaltfläche "Öffnen", um das Update anzuwenden - - - - Are you sure you want to cancel the download? - Sind Sie sicher, dass Sie den Download abbrechen möchten? - - - - Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application - Sind Sie sicher, dass Sie den Download abbrechen möchten? Dies ist ein obligatorisches Update. Wenn Sie jetzt abbrechen, wird die Anwendung geschlossen - - - - - %1 bytes - - - - - - %1 KB - - - - - - %1 MB - - - - - of - von - - - - Downloading Updates - Herunterladen von Updates - - - - Time Remaining - Verbleibende Zeit - - - - Unknown - Unbekannt - - - - about %1 hours - etwa %1 Stunden - - - - about one hour - etwa 1 Stunde - - - - %1 minutes - %1 Minuten - - - - 1 minute - 1 Minute - - - - %1 seconds - %1 Sekunden - - - - 1 second - 1 Sekunde - - - - Export - - CSV file not open - CSV Datei nicht geöffnet - - - Cannot find CSV export file! - Konnte CSV exportierte Datei nicht finden! - - - CSV File Error - CSV Datei Fehler - - - Cannot open CSV file for writing! - Konnte nicht in CSV schreiben! - - - - Footer - - - Close - Schließen - - - - Add group - Gruppe hinzufügen - - - - Customize frame parser - - - - - Open existing project... - Vorhandenes Projekt öffnen... - - - - Create new project - Neues Projekt erstellen - - - - Apply - Bewerbung - - - - Save - Speichern - - - - GpsMap - - - Center on coordinate - Koordinate zentrieren - - - - Group - - Invalid - Ungültig - - - - GroupEditor - - - Group %1 - - - - - GyroDelegate - - %1° YAW - %1 Gierachse - - - %1° ROLL - %1 Rollachse - - - %1° PITCH - %1° Neigachse - - - - Hardware - - - Data source - - - - - Header - - - Project title (required) - Projekttitel (erforderlich) - - - - Data separator (default is ',') - Datentrennzeichen (Standard ist ',') - - - - Frame start sequence (default is '/*') - - - - - Frame end sequence (default is '*/') - - - - Frame start sequence (default is '%1') - Startsequenz des Rahmens (Standard ist '%1') - - - Frame end sequence (default is '%1') - Rahmenendsequenz (Standard ist '%1') - - - - IO::Console - - - ASCII - ASCII - - - - HEX - HEX - - - - No line ending - Kein Zeilenende - - - - New line - Neue zeile - - - - Carriage return - Zeilenumbruch (CR) - - - - NL + CR - Sowohl NL als auch CR - - - - Plain text - Klartext - - - - Hexadecimal - Hexadezimal - - - - Export console data - Konsolendaten exportieren - - - - Text files - Textdateien - - - - File save error - Fehler beim Speichern der Datei - - - - IO::DataSources::Network - - Socket error - Socket-Fehler - - - IP address lookup error - IP-Adressensuchfehler - - - Network socket error - Netzwerk-Socket-Fehler - - - - IO::DataSources::Serial - - None - Keine - - - No Device - Kein Gerät - - - Even - Gerade - - - Odd - Ungerade - - - Baud rate registered successfully - Baudrate erfolgreich registriert - - - Rate "%1" has been added to baud rate list - Rate "%1" wurde zur Baudratenliste hinzugefügt - - - Select Port - Port auswählen - - - Critical serial port error - Kritischer Fehler an der seriellen Schnittstelle - - - Serial port error - Fehler an der seriellen Schnittstelle - - - - IO::Drivers::BluetoothLE - - - The BLE device has been disconnected - - - - - Select device - - - - - Select service - - - - - Error while configuring BLE service - - - - - Operation error - Betriebsfehler - - - - Characteristic write error - - - - - Descriptor write error - - - - - Unknown error - Unbekannter Fehler - - - - Characteristic read error - - - - - Descriptor read error - - - - - Bluetooth adapter is off! - - - - - Invalid Bluetooth adapter! - - - - - Unsuported platform or operating system - - - - - Unsupported discovery method - - - - - General I/O error - - - - - IO::Drivers::Network - - - Network socket error - Netzwerk-Socket-Fehler - - - - IO::Drivers::Serial - - - - - - None - Keine - - - - No Device - Kein Gerät - - - - Even - Gerade - - - - Odd - Ungerade - - - - Space - - - - - Mark - - - - - Baud rate registered successfully - Baudrate erfolgreich registriert - - - - Rate "%1" has been added to baud rate list - Rate "%1" wurde zur Baudratenliste hinzugefügt - - - - Select port - - - - - IO::Manager - - - Serial port - Serielle Schnittstelle - - - - Network port - Netzwerk Schnittstelle - - - - Bluetooth LE device - - - - - JSON::Editor - - Dataset widgets - Widgets für Datensätze - - - Accelerometer - Beschleunigungsmesser - - - Gyroscope - Gyroskop - - - Map - Karte - - - None - Keine - - - Gauge - Messgerät - - - Bar/level - Bar/Niveau - - - Compass - Kompass - - - New Project - Neues Projekt - - - Do you want to save your changes? - Möchten Sie Ihre Änderungen speichern? - - - You have unsaved modifications in this project! - Sie haben nicht gespeicherte Änderungen in diesem Projekt! - - - Project error - Projektfehler - - - Project title cannot be empty! - Der Projekttitel darf nicht leer sein! - - - Project error - Group %1 - Projektfehler - Gruppe %1 - - - Group title cannot be empty! - Der Gruppentitel darf nicht leer sein! - - - Project error - Group %1, Dataset %2 - Projektfehler - Gruppe %1, Datensatz %2 - - - Dataset title cannot be empty! - Der Titel des Datensatzes darf nicht leer sein! - - - Warning - Group %1, Dataset %2 - Warnung - Gruppe %1, Datensatz %2 - - - Dataset contains duplicate frame index position! Continue? - Der Datensatz enthält eine doppelte Frame-Indexposition! Weiter? - - - Save JSON project - JSON-Projekt speichern - - - File open error - Fehler beim Öffnen einer Datei - - - Select JSON file - JSON Modelldatei auswählen - - - New Group - Neue Gruppe - - - Delete group "%1" - Gruppe "%1" löschen - - - Are you sure you want to delete this group? - Sind Sie sicher, dass Sie diese Gruppe löschen wollen? - - - Are you sure you want to change the group-level widget? - Sind Sie sicher, dass Sie das Widget auf Gruppenebene ändern möchten? - - - Existing datasets for this group will be deleted - Vorhandene Datensätze für diese Gruppe werden gelöscht - - - Accelerometer %1 - Beschleunigungsmesser %1 - - - Gyro %1 - Kreisel %1 - - - Latitude - Breitengrad - - - Longitude - Längengrad - - - New dataset - Neuer Datensatz - - - Delete dataset "%1" - Datensatz "%1" löschen - - - Are you sure you want to delete this dataset? - Sind Sie sicher, dass Sie diesen Datensatz löschen wollen? - - - GPS - GPS - - - Multiple data plot - Mehrfache Datenplot - - - Altitude - Höhenlage - - - - JSON::Generator - - - Select JSON map file - JSON Modelldatei auswählen - - - - JSON files - JSON Dateien - - - - JSON parse error - JSON-Parsing-Fehler - - - JSON map file loaded successfully! - JSON Modelldatei erfolgreich geladen! - - - File "%1" loaded into memory - Datei %1 geladen - - - - Cannot read JSON file - JSON-Datei kann nicht gelesen werden - - - - Please check file permissions & location - Prüfen Sie die Dateiberechtigungen und Dateipfade - - - JSON/serial data format mismatch - JSON/serielles Datenformat stimmt nicht überein - - - The format of the received data does not correspond to the selected JSON map file. - Das Format der empfangenen Daten stimmt nicht mit der ausgewählten JSON Modelldatei überein. - - - - JSONDropArea - - - Drop JSON and CSV files here - JSON und CSV Dateien hierher Ziehen - - - - JsonDatasetDelegate - - - - Dataset %1 - %2 - Datensatz %1 - %2 - - - - Title: - Titel: - - - - Sensor reading, uptime, etc... - Sensormesswerte, Betriebszeit usw... - - - - Units: - Einheiten: - - - - Volts, meters, seconds, etc... - Volt, Meter, Sekunden, usw... - - - - Frame index: - Frame-Index: - - - Generate graph: - Erzeugen Sie ein Diagramm: - - - - Widget: - Widget: - - - - Min value: - Minimaler Wert: - - - - Max value: - Maximaler Wert: - - - - Generate plot: - Grafik generieren: - - - - Logarithmic plot: - Logarithmische Grafik: - - - - FFT plot: - FFT-Grafik: - - - - FFT Samples: - FFT-Proben: - - - - Alarm level: - Alarmstufe: - - - - Note: - Anmerkung: - - - - The compass widget expects values from 0° to 360°. - Das Kompass-Widget erwartet Werte von 0° bis 360°. - - - - Display LED: - LED anzeigen: - - - - JsonEditor - - JSON Editor - %1 - JSON-Editor - %1 - - - Project title (required) - Projekttitel (erforderlich) - - - Data separator (default is ',') - Datentrennzeichen (Standard ist ',') - - - Frame start sequence (default is '%1') - Startsequenz des Rahmens (Standard ist '%1') - - - Frame end sequence (default is '%1') - Rahmenendsequenz (Standard ist '%1') - - - Start something awesome - Starten Sie etwas Großartiges - - - Click on the "%1" button to begin - Klicken Sie auf die Schaltfläche "%1", um zu beginnen - - - Close - Schließen - - - Add group - Gruppe hinzufügen - - - Open existing project... - Vorhandenes Projekt öffnen... - - - Create new project - Neues Projekt erstellen - - - Apply - Bewerbung - - - Save - Speichern - - - Click on the "Add group" button to begin - Klicken Sie auf die Schaltfläche "Gruppe hinzufügen", um zu beginnen - - - - JsonGenerator - - Select JSON map file - JSON Modelldatei auswählen - - - JSON parse error - JSON-Parsing-Fehler - - - JSON map file loaded successfully! - JSON Modelldatei erfolgreich geladen! - - - File "%1" loaded into memory - Datei %1 geladen - - - Cannot read JSON file - JSON-Datei kann nicht gelesen werden - - - Please check file permissions & location - Prüfen Sie die Dateiberechtigungen und Dateipfade - - - JSON/serial data format mismatch - JSON/serielles Datenformat stimmt nicht überein - - - The format of the received data does not correspond to the selected JSON map file. - Das Format der empfangenen Daten stimmt nicht mit der ausgewählten JSON Modelldatei überein. - - - JSON files - JSON Dateien - - - - JsonGroupDelegate - - - Group %1 - %2 - Gruppe %1 - %2 - - - - - Title - Titel - - - - Group widget - - - - - Empty group - - - - - Set group title and click on the "Add dataset" button to begin - - - - - Add dataset - Datensatz hinzufügen - - - - - Note: - Anmerkung: - - - - The accelerometer widget expects values in m/s². - Das Beschleunigungsmesser-Widget erwartet Werte in m/s². - - - - The gyroscope widget expects values in degrees (0° to 360°). - Das Gyroskop-Widget erwartet Werte in Grad (0° bis 360°). - - - - KLed - - - LED on - Accessible name of a Led whose state is on - LED an - - - - LED off - Accessible name of a Led whose state is off - LED aus - - - - MQTT - - - Version - Ausführung - - - - Mode - Modus - - - - Host - Server - - - - Port - Port - - - - Topic - Thema - - - - MQTT topic - MQTT-Thema - - - - User - Nutzer - - - - MQTT username - MQTT-Benutzername - - - - Password - Kennwort - - - - MQTT password - MQTT-Kennwort - - - DNS lookup - DNS-Suche - - - Enter address (e.g. google.com) - Adresse eingeben (z. B. google.com) - - - - Disconnect - Trennen - - - Connect - Verbinden - - - - Advanced setup - Erweiterte Einstellungen - - - - Connect to broker - Verbindung zum Broker - - - - MQTT::Client - - - Publisher - Publisher - - - - Subscriber - - - - - IP address lookup error - IP-Adressensuchfehler - - - - Unknown error - Unbekannter Fehler - - - - Connection refused - Verbindung abgelehnt - - - - Remote host closed the connection - Verbindung abgelehnt - - - - Host not found - Host nicht gefunden - - - - Socket access error - Socket-Zugriffsfehler - - - - Socket resource error - Socket-Ressourcenfehler - - - - Socket timeout - Socket-Timeout - - - - Socket datagram too large - Socket-Datagramm zu groß - - - - Network error - Netzwerkfehler - - - - Address in use - Verwendete Adresse - - - - Address not available - Adresse nicht verfügbar - - - - Unsupported socket operation - Nicht unterstützter Socket-Betrieb - - - - Unfinished socket operation - Unfertiger Sockelbetrieb - - - - Proxy authentication required - Proxy-Authentifizierung erforderlich - - - - SSL handshake failed - SSL-Handshake fehlgeschlagen - - - - Proxy connection refused - Proxy-Verbindung abgelehnt - - - - Proxy connection closed - Proxy-Verbindung geschlossen - - - - Proxy connection timeout - Zeitlimit für Proxy-Verbindung - - - - Proxy not found - Proxy nicht gefunden - - - - Proxy protocol error - Proxy-Protokollfehler - - - - Operation error - Betriebsfehler - - - - SSL internal error - Interner SSL-Fehler - - - - Invalid SSL user data - Ungültige SSL-Benutzerdaten - - - - Socket temprary error - Socket temporärer Fehler - - - - Unacceptable MQTT protocol - Inakzeptables MQTT-Protokoll - - - - MQTT identifier rejected - MQTT-Kennung abgelehnt - - - - MQTT server unavailable - MQTT-Server nicht verfügbar - - - - Bad MQTT username or password - Ungültiger MQTT-Benutzername oder Passwort - - - - MQTT authorization error - MQTT-Autorisierungsfehler - - - - MQTT no ping response - MQTT keine Ping-Antwort - - - - MQTT client error - MQTT-Clientfehler - - - - 0: At most once - 0: Höchstens einmal - - - - 1: At least once - 1: Mindestens einmal - - - - 2: Exactly once - 2: Genau einmal - - - - - System default - System-Standard - - - - Select CA file - CA-Datei auswählen - - - - Cannot open CA file! - CA-Datei kann nicht geöffnet werden! - - - - MQTT client SSL/TLS error, ignore? - MQTT-Client SSL/TLS-Fehler, ignorieren? - - - - MQTTConfiguration - - - MQTT Configuration - MQTT-Konfiguration - - - - Version - Ausführung - - - - Mode - Modus - - - - QOS level - QOS-Niveau - - - - Keep alive (s) - Überlebenszeit (s) - - - - Host - Server - - - - Port - Port - - - - Topic - Thema - - - - Retain - Behalten - - - - MQTT topic - MQTT-Thema - - - - Add retain flag - Behalten-Flag hinzufügen - - - - User - Nutzer - - - - Password - Kennwort - - - - MQTT username - MQTT-Benutzername - - - - MQTT password - MQTT-Kennwort - - - - Enable SSL/TLS: - SSL/TLS aktivieren: - - - - Certificate: - Zertifikat: - - - - Use system database - Systemdatenbank verwenden - - - - Custom CA file - CA-Datei auswählen - - - - Protocol: - Protokoll: - - - - CA file: - CA-datei: - - - - Disconnect - Trennen - - - - Connect - Verbinden - - - - Apply - Bewerbung - - - - MapDelegate - - Center on coordinate - Koordinate zentrieren - - - - Menubar - - - File - Datei - - - - Select JSON file - JSON Modelldatei auswählen - - - - CSV export - CSV Export - - - - Enable CSV export - Aktivieren den CSV-Export - - - - Show CSV in explorer - CSV im Explorer anzeigen - - - - Replay CSV - CSV-Wiedergabe - - - - Export console output - Konsolendaten exportieren - - - - Quit - Beenden - - - - Edit - Bearbeiten - - - - Copy - Kopieren - - - - Select all - Alles auswählen - - - - Clear console output - Konsolenausgabe löschen - - - - Communication mode - Komunikations modus - - - - Device sends JSON - Gerät sendet JSON - - - - Load JSON from computer - Laden JSON vom Computer - - - - View - Ansicht - - - - - Console - Konsole - - - - Dashboard - Dashboard - - - - Show setup pane - Setup-Bereich anzeigen - - - Hide menubar - Menüleiste ausblenden - - - Show menubar - Menüleiste anzeigen - - - - Exit full screen - Vollbildmodus verlassen - - - - Enter full screen - Vollbildmodus einschalten - - - - Autoscroll - Auto Scroll - - - - Show timestamp - Zeitstempel anzeigen - - - - VT-100 emulation - VT-100 emulation - - - - Echo user commands - Echo Benutzerbefehle - - - - Display mode - Visualisierung - - - - Normal (plain text) - Normal (Klartext) - - - - Binary (hexadecimal) - Binär (hexadezimal) - - - - Line ending character - Zeilenendezeichen - - - - Help - Hilfe - - - - - About %1 - Über %1 - - - - Auto-updater - Auto-updater - - - - Check for updates - Auf Updates prüfen - - - - Project website - Projekt webseite - - - - Documentation/wiki - Dokumentation/wiki - - - Show log file - Logdatei anzeigen - - - - Report bug - Fehler melden - - - - Print - Drucken - - - - MenubarMacOS - - - File - Datei - - - - Select JSON file - JSON Modelldatei auswählen - - - - CSV export - CSV Export - - - - Enable CSV export - Aktivieren den CSV-Export - - - - Show CSV in explorer - CSV im Explorer anzeigen - - - - Replay CSV - CSV-Wiedergabe - - - - Export console output - Konsolendaten exportieren - - - - Quit - Beenden - - - - Edit - Bearbeiten - - - - Copy - Kopieren - - - - Select all - Alles auswählen - - - - Clear console output - Konsolenausgabe löschen - - - - Communication mode - Komunikations Modus - - - - Device sends JSON - Gerät sendet JSON - - - - Load JSON from computer - Laden JSON vom Computer - - - - View - Ansicht - - - - - Console - Konsole - - - - Dashboard - Dashboard - - - - Show setup pane - Setup-Bereich anzeigen - - - - Exit full screen - Vollbildmodus verlassen - - - - Enter full screen - Vollbildmodus einschalten - - - - Autoscroll - Auto Scroll - - - - Show timestamp - Zeitstempel anzeigen - - - - VT-100 emulation - VT-100 emulation - - - - Echo user commands - Echo Benutzerbefehle - - - - Display mode - Visualisierung - - - - Normal (plain text) - Normal (Klartext) - - - - Binary (hexadecimal) - Binär (hexadezimal) - - - - Line ending character - Zeilenendezeichen - - - - Help - Hilfe - - - - - About %1 - Über %1 - - - - Auto-updater - Auto-updater - - - - Check for updates - Auf Updates prüfen - - - - Project website - Projekt webseite - - - - Documentation/wiki - Dokumentation/wiki - - - Show log file - Logdatei anzeigen - - - - Report bug - Fehler melden - - - - Print - Drucken - - - - Misc::MacExtras - - - Setup - Einstellungen - - - - Console - Konsole - - - Widgets - Widgets - - - - Dashboard - Dashboard - - - - Misc::ModuleManager - - Initializing... - Initialisierung... - - - Configuring updater... - Konfigurieren des Updaters... - - - Initializing modules... - Module initialisieren... - - - Loading user interface... - Benutzeroberfläche laden... - - - The rendering engine change will take effect after restart - Die Änderung der Rendering-Engine wird nach dem Neustart wirksam - - - - Unknown OS - - - - - The change will take effect after restart - - - - - Do you want to restart %1 now? - Möchten Sie %1 jetzt neu starten? - - - - Misc::ThemeManager - - - The theme change will take effect after restart - Die Änderung des Themas wird nach dem Neustart wirksam - - - - Do you want to restart %1 now? - Möchten Sie %1 jetzt neu starten? - - - - Misc::Utilities - - - Check for updates automatically? - Automatish auf Updates prüfen? - - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - Soll %1 Automatish auf Updates prüfen? Sie können jederzeit manuell über das Menü "Hilfe" nach Updates suchen - - - - Ok - Ok - - - - Save - Speichern - - - - Save all - Alle speichern - - - - Open - Öffnen - - - - Yes - Ja - - - - Yes to all - Ja zu allen - - - - No - Nein - - - - No to all - Nein zu alle - - - - Abort - Abbrechen - - - - Retry - Wiederholung - - - - Ignore - Ignorieren - - - - Close - Schließen - - - - Cancel - Abbrechen - - - - Discard - Ablegen - - - - Help - Hilfe - - - - Apply - Bewerbung - - - - Reset - Zurücksetzen - - - - Restore defaults - Standardwerte wiederherstellen - - - - ModuleManager - - Initializing... - Initialisierung... - - - Configuring updater... - Konfigurieren des Updaters... - - - Initializing modules... - Module initialisieren... - - - Starting timers... - Timer starten... - - - Loading user interface... - Benutzeroberfläche laden... - - - The rendering engine change will take effect after restart - Die Änderung der Rendering-Engine wird nach dem Neustart wirksam - - - Do you want to restart %1 now? - Möchten Sie %1 jetzt neu starten? - - - - Network - - - Socket type - Steckdosentyp - - - IP Address - IP Adresse - - - - Port - Port-Nummer - - - DNS lookup - DNS-Suche - - - Enter address (e.g. google.com) - Adresse eingeben (z. B. google.com) - - - Host - Server - - - - Multicast - Multicast - - - - Remote address - Entfernte Adresse - - - - Local port - Lokaler Port - - - - Type 0 for automatic port - Geben Sie 0 ein, um den Port automatisch zuzuweisen - - - - Remote port - Entfernter Port - - - - Ignore data delimiters - Datenbegrenzer ignorieren - - - - Plugins::Bridge - - Unable to start plugin TCP server - Plugin-TCP-Server kann nicht gestartet werden - - - Plugin server - Plugin Server - - - Invalid pending connection - Ungültige ausstehende Verbindung - - - - Plugins::Server - - - Unable to start plugin TCP server - Plugin-TCP-Server kann nicht gestartet werden - - - - Plugin server - Plugin Server - - - - Invalid pending connection - Ungültige ausstehende Verbindung - - - - Project::CodeEditor - - - New - - - - - Open - Öffnen - - - - Save - Speichern - - - - Undo - - - - - Redo - - - - - Cut - - - - - Copy - Kopieren - - - - Paste - - - - - Help - Hilfe - - - - Customize frame parser - - - - - - - The document has been modified! - - - - - - Are you sure you want to continue? - - - - - Select Javascript file to import - - - - - Frame parser code updated successfully! - - - - - No errors have been detected in the code. - - - - - Frame parser error! - - - - - No parse() function has been declared! - - - - - Frame parser syntax error! - - - - - Error on line %1. - - - - - Generic error - - - - - Evaluation error - - - - - Range error - - - - - Reference error - - - - - Syntax error - - - - - Type error - - - - - URI error - - - - - Unknown error - Unbekannter Fehler - - - - Frame parser error detected! - - - - - Do you want to save the changes? - - - - - Project::Model - - - Dataset widgets - Widgets für Datensätze - - - - - Accelerometer - Beschleunigungsmesser - - - - - Gyroscope - Gyroskop - - - - - GPS - GPS - - - - Multiple data plot - Mehrfache Datenplot - - - - None - Keine - - - - Gauge - Messgerät - - - - Bar/level - Bar/Niveau - - - - Compass - Kompass - - - - New Project - Neues Projekt - - - - Do you want to save your changes? - Möchten Sie Ihre Änderungen speichern? - - - - You have unsaved modifications in this project! - Sie haben nicht gespeicherte Änderungen in diesem Projekt! - - - - Project error - Projektfehler - - - - Project title cannot be empty! - Der Projekttitel darf nicht leer sein! - - - - Project error - Group %1 - Projektfehler - Gruppe %1 - - - - Group title cannot be empty! - Der Gruppentitel darf nicht leer sein! - - - - Project error - Group %1, Dataset %2 - Projektfehler - Gruppe %1, Datensatz %2 - - - - Dataset title cannot be empty! - Der Titel des Datensatzes darf nicht leer sein! - - - - Warning - Group %1, Dataset %2 - Warnung - Gruppe %1, Datensatz %2 - - - - Dataset contains duplicate frame index position! Continue? - Der Datensatz enthält eine doppelte Frame-Indexposition! Weiter? - - - - Save JSON project - JSON-Projekt speichern - - - - File open error - Fehler beim Öffnen einer Datei - - - - Select JSON file - JSON Modelldatei auswählen - - - - New Group - Neue Gruppe - - - - Delete group "%1" - Gruppe "%1" löschen - - - - Are you sure you want to delete this group? - Sind Sie sicher, dass Sie diese Gruppe löschen wollen? - - - - Are you sure you want to change the group-level widget? - Sind Sie sicher, dass Sie das Widget auf Gruppenebene ändern möchten? - - - - Existing datasets for this group will be deleted - Vorhandene Datensätze für diese Gruppe werden gelöscht - - - - - - Accelerometer %1 - Beschleunigungsmesser %1 - - - - - - Gyro %1 - Kreisel %1 - - - - Latitude - Breitengrad - - - - Longitude - Längengrad - - - - Altitude - Höhenlage - - - - New dataset - Neuer Datensatz - - - - Delete dataset "%1" - Datensatz "%1" löschen - - - - Are you sure you want to delete this dataset? - Sind Sie sicher, dass Sie diesen Datensatz löschen wollen? - - - - ProjectEditor - - - Project Editor - %1 - - - - - Start something awesome - Starten Sie etwas Großartiges - - - - Click on the "Add group" button to begin - Klicken Sie auf die Schaltfläche "Gruppe hinzufügen", um zu beginnen - - - - QObject - - - Failed to load welcome text :( - Begrüßungstext konnte nicht geladen werden :( - - - - QwtPlotRenderer - - - - - Documents - Dokumente - - - - Images - Bilder - - - - Export File Name - Name der Exportdatei - - - - QwtPolarRenderer - - - - - Documents - Dokumente - - - - Images - Bilder - - - - Export File Name - Name der Exportdatei - - - - Serial - - - COM Port - COM Schnittstelle - - - - Baud Rate - Baud rate - - - - Data Bits - Data bits - - - - Parity - Parität - - - - Stop Bits - Stop bits - - - - Flow Control - Fluss-Kontrolle - - - - Auto-reconnect - Auto-Wiederverbindung - - - - SerialManager - - No Device - Kein Gerät - - - Received: %1 %2 - Empfangen: %1 %2 - - - Select Port - Port auswählen - - - None - Keine - - - Even - Gerade - - - Odd - Ungerade - - - Critical serial port error - Kritischer Fehler an der seriellen Schnittstelle - - - Plain text (as it comes) - Klartext (wie es kommt) - - - Plain text (remove control characters) - Klartext (Steuerzeichen entfernen) - - - Hex display - Hexadezimal - - - As it comes - Wie es kommt - - - Remove control characters - Steuerzeichen entfernen - - - Hexadecimal - Hexadezimal - - - Baud rate registered successfully - Baudrate erfolgreich registriert - - - Rate "%1" has been added to baud rate list - Rate "%1" wurde zur Baudratenliste hinzugefügt - - - - Settings - - - Language - Sprache - - - - Software rendering - - - - Start sequence - Startsequenz - - - End sequence - Kündigungssequenz - - - - Plugin system - Plugin-System - - - Applications/plugins can interact with %1 by establishing a TCP connection on port 7777 - Anwendungen / Plugins können mit %1 interagieren, indem sie eine TCP-Verbindung an Port 7777 herstellen - - - - Applications/plugins can interact with %1 by establishing a TCP connection on port 7777. - Anwendungen/Plugins können mit %1 interagieren, indem sie eine TCP-Verbindung an Port 7777 herstellen. - - - - Theme - Thema - - - Data separator - Daten-Trennzeichen - - - UI refresh rate - UI-Aktualisierungsrate - - - Rendering engine - Rendering Motor - - - Threaded frame parsing - Analyse von Multithreading-Rahmen - - - Multithreaded frame parsing - Analyse von Multithreading-Rahmen - - - - Custom window decorations - Fensterdekorationen - - - - Setup - - - Communication Mode - Komunikations Modus - - - Auto (JSON from serial device) - Auto (JSON von Gerät) - - - Manual (use JSON map file) - Manuell (JSON Modelldatei) - - - Change map file (%1) - Modelldatei ändern (%1) - - - Select map file - Modelldatei auswählen - - - COM Port - COM Schnittstelle - - - Baud Rate - Baud rate - - - Data Bits - Data bits - - - Parity - Parität - - - Stop Bits - Stop bits - - - Flow Control - Fluss-Kontrolle - - - Language - Sprache - - - Open mode - Öffnungsmodus - - - Read-only - Schreibgeschützt - - - Read/write - Lesen/schreiben - - - Display mode - Visualisierung - - - Custom baud rate - Andere Baudrate - - - CSV Export - CSV-Export - - - CSV Player - CSV Player - - - - Create CSV file - CSV-Datei erstellen - - - Start sequence - Startsequenz - - - End sequence - Kündigungssequenz - - - Serial - Serielle - - - Network - Netzwerk - - - - Settings - Einstellungen - - - - MQTT - MQTT - - - - Setup - Einstellungen - - - - No parsing (device sends JSON data) - Kein Parsing (Gerät sendet JSON-Daten) - - - - Parse via JSON project file - Parsen über JSON-Projektdatei - - - - Change project file (%1) - Projektdatei ändern (%1) - - - - Select project file - Projektdatei auswählen - - - - Device - - - - - Sidebar - - Open CSV - CSV Öffnen - - - - Terminal - - - Copy - Kopieren - - - - Select all - Alles auswählen - - - - Clear - Löschen - - - - Print - Drucken - - - - Save as - Speichern als - - - Hide menubar - Menüleiste ausblenden - - - Show menubar - Menüleiste anzeigen - - - - No data received so far - Noch keine Daten verfügbar - - - - Send data to device - Daten an das Gerät senden - - - - Echo - Echo - - - - Autoscroll - Auto Scroll - - - - Show timestamp - Zeitstempel anzeigen - - - - Toolbar - - - Console - Konsole - - - About - Über - - - - Dashboard - - - - - Open CSV - CSV Öffnen - - - - Setup - Einstellungen - - - - Project Editor - - - - - Disconnect - Trennen - - - - Connect - Verbinden - - - JSON Editor - JSON-Editor - - - - TreeView - - - JSON Project Tree - JSON-Projektbaum - - - - UI::Dashboard - - - Status Panel - Status-Panel - - - - UI::DashboardWidget - - - Invalid - Ungültig - - - - UI::WidgetLoader - - Invalid - Ungültig - - - - Updater - - - Would you like to download the update now? - Möchten Sie das Update jetzt herunterladen? - - - - Would you like to download the update now? This is a mandatory update, exiting now will close the application - Möchten Sie das Update jetzt herunterladen? Dies ist ein obligatorisches Update, die Anwedung wird jetzt geschlossen - - - - Version %1 of %2 has been released! - Die Version %1 von %2 ist verfügbar! - - - - No updates are available for the moment - Im Moment sind keine Updates verfügbar - - - - Congratulations! You are running the latest version of %1 - Glückwunsch! Sie verwenden die neueste Version von %1 - - - - ViewOptions - - - View - Ansicht - - - Plot divisions (%1) - Abteilungen (%1) - - - - Datasets - Datensatz - - - - Multiple data plots - Mehrfache Datenplots - - - - FFT plots - FFT-Grafiken - - - - Data plots - Daten-Grafiken - - - - Bars - Barren - - - - Gauges - Messgeräte - - - - Compasses - Kompasse - - - - Gyroscopes - Gyroskope - - - - Accelerometers - Beschleunigungsmesser - - - - GPS - GPS - - - - LED Panels - LED-Paneele - - - View options - Anzeige-Optionen - - - - Points: - Punkte: - - - Widgets: - Widgets: - - - - Visualization options - Visualisierungsoptionen - - - - Decimal places: - Nachkommastellen: - - - - Widget size: - Widget-Größe: - - - - WidgetGrid - - - Data - Daten - - - - Widgets - - View - Ansicht - - - Widgets - Widgets - - - - Widgets::FFTPlot - - - Samples - Proben - - - - FFT of %1 - FFT von %1 - - - - Widgets::GPS - - Latitude - Breitengrad - - - Longitude - Längengrad - - - Altitude - Höhenlage - - - Loading... - Laden... - - - Double-click to open map - Doppelklick zum Öffnen der Karte - - - - Widgets::MultiPlot - - - Unknown - Unbekannt - - - - Samples - Proben - - - - Widgets::Plot - - - Samples - Proben - - - - Widgets::WidgetLoader - - Invalid - Ungültig - - - - main - - Check for updates automatically? - Automatish auf Updates prüfen? - - - Should %1 automatically check for updates? You can always check for updates manually from the "About" dialog - Soll %1 Automatish auf Updates prüfen? Sie können jederzeit manuell über den "Über"-Dialog nach Updates suchen - - - Drop JSON and CSV files here - JSON und CSV Dateien hierher Ziehen - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - Soll %1 Automatish auf Updates prüfen? Sie können jederzeit manuell über das Menü "Hilfe" nach Updates suchen - - - diff --git a/app/translations/en.qm b/app/translations/en.qm deleted file mode 100644 index 97acd75f324bbfc66909b426f1d193f263cad63a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25104 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 - - - - About - - - About - - - - - Version %1 - - - - - The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - - - - Report bug - - - - - Documentation - - - - - Close - - - - - Copyright © 2020-%1 %2, released under the MIT License. - - - - - Website - - - - - Acknowledgements - - - - - Make a donation - - - - - Acknowledgements - - - Acknowledgements - - - - - Close - - - - - BluetoothLE - - - Device - - - - - Service - - - - - Scanning.... - - - - - Sorry, this version of %1 is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. - - - - - CSV::Export - - - CSV file not open - - - - - Cannot find CSV export file! - - - - - CSV File Error - CSV file error - - - - Cannot open CSV file for writing! - - - - - CSV::Player - - - Select CSV file - - - - - CSV files - CSV files - - - - Serial port open, do you want to continue? - - - - - In order to use this feature, its necessary to disconnect from the serial port - - - - - Cannot read CSV file - - - - - Please check file permissions & location - - - - - Console - - - Console - - - - - CsvPlayer - - - CSV Player - - - - CSV files - CSV files - - - - Dashboard - - - Console - - - - - DashboardTitle - - - Console - - - - - DataGrid - - Horizontal Range - Horizontal range - - - Data Groups - Data groups - - - Data Plots - Data plots - - - - DeviceManager - - Communication Mode - Communication mode - - - COM Port - COM port - - - Baud Rate - Baud rate - - - Data Bits - Data bits - - - Stop Bits - Stop bits - - - Flow Control - Flow control - - - - Donate - - - - Donate - - - - - Later - - - - - Close - - - - - Support the development of %1! - - - - - Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) - - - - - You can also support this project by sharing it, reporting bugs and proposing new features! - - - - - Don't annoy me again! - - - - - Downloader - - - - Updater - - - - - - - Downloading updates - - - - - Time remaining: 0 minutes - - - - - Open - - - - - - Stop - - - - - - Time remaining - - - - - unknown - - - - - Error - - - - - Cannot find downloaded update! - - - - - Close - - - - - Download complete! - - - - - The installer will open separately - - - - - Click "OK" to begin installing the update - - - - - In order to install the update, you may need to quit the application. - - - - - In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application - - - - - Click the "Open" button to apply the update - - - - - Are you sure you want to cancel the download? - - - - - Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application - - - - - - %1 bytes - - - - - - %1 KB - - - - - - %1 MB - - - - - of - - - - - Downloading Updates - - - - - Time Remaining - - - - - Unknown - - - - - about %1 hours - - - - - about one hour - - - - - %1 minutes - - - - - 1 minute - - - - - %1 seconds - - - - - 1 second - - - - - Export - - CSV File Error - CSV file error - - - - Footer - - - Close - - - - - Add group - - - - - Customize frame parser - - - - - Open existing project... - - - - - Create new project - - - - - Apply - - - - - Save - - - - - GpsMap - - - Center on coordinate - - - - - GroupEditor - - - Group %1 - - - - - Hardware - - - Data source - - - - - Header - - - Project title (required) - - - - - Data separator (default is ',') - - - - - Frame start sequence (default is '/*') - - - - - Frame end sequence (default is '*/') - - - - - IO::Console - - - ASCII - - - - - HEX - - - - - No line ending - - - - - New line - - - - - Carriage return - - - - - NL + CR - - - - - Plain text - - - - - Hexadecimal - - - - - Export console data - - - - - Text files - - - - - File save error - - - - - IO::DataSources::Serial - - No Device - No device - - - Select Port - Select port - - - - IO::Drivers::BluetoothLE - - - The BLE device has been disconnected - - - - - Select device - - - - - Select service - - - - - Error while configuring BLE service - - - - - Operation error - - - - - Characteristic write error - - - - - Descriptor write error - - - - - Unknown error - - - - - Characteristic read error - - - - - Descriptor read error - - - - - Bluetooth adapter is off! - - - - - Invalid Bluetooth adapter! - - - - - Unsuported platform or operating system - - - - - Unsupported discovery method - - - - - General I/O error - - - - - IO::Drivers::Network - - - Network socket error - - - - - IO::Drivers::Serial - - - - - - None - - - - - No Device - No device - - - - Even - - - - - Odd - - - - - Space - - - - - Mark - - - - - Baud rate registered successfully - - - - - Rate "%1" has been added to baud rate list - - - - - Select port - - - - - IO::Manager - - - Serial port - - - - - Network port - - - - - Bluetooth LE device - - - - - JSON::Generator - - - Select JSON map file - - - - - JSON files - - - - - JSON parse error - - - - - Cannot read JSON file - - - - - Please check file permissions & location - - - - - JSONDropArea - - - Drop JSON and CSV files here - - - - - JsonDatasetDelegate - - - - Dataset %1 - %2 - - - - - Title: - - - - - Sensor reading, uptime, etc... - - - - - Units: - - - - - Volts, meters, seconds, etc... - - - - - Frame index: - - - - - Widget: - - - - - Min value: - - - - - Max value: - - - - - Generate plot: - - - - - Logarithmic plot: - - - - - FFT plot: - - - - - FFT Samples: - - - - - Alarm level: - - - - - Note: - - - - - The compass widget expects values from 0° to 360°. - - - - - Display LED: - - - - - JsonGroupDelegate - - - Group %1 - %2 - - - - - - Title - - - - - Group widget - - - - - Empty group - - - - - Set group title and click on the "Add dataset" button to begin - - - - - Add dataset - - - - - - Note: - - - - - The accelerometer widget expects values in m/s². - - - - - The gyroscope widget expects values in degrees (0° to 360°). - - - - - KLed - - - LED on - Accessible name of a Led whose state is on - - - - - LED off - Accessible name of a Led whose state is off - - - - - MQTT - - - Version - - - - - Mode - - - - - Host - - - - - Port - - - - - Topic - - - - - MQTT topic - - - - - User - - - - - MQTT username - - - - - Password - - - - - MQTT password - - - - - Disconnect - - - - - Advanced setup - - - - - Connect to broker - - - - - MQTT::Client - - - Publisher - - - - - Subscriber - - - - - IP address lookup error - - - - - Unknown error - - - - - Connection refused - - - - - Remote host closed the connection - - - - - Host not found - - - - - Socket access error - - - - - Socket resource error - - - - - Socket timeout - - - - - Socket datagram too large - - - - - Network error - - - - - Address in use - - - - - Address not available - - - - - Unsupported socket operation - - - - - Unfinished socket operation - - - - - Proxy authentication required - - - - - SSL handshake failed - - - - - Proxy connection refused - - - - - Proxy connection closed - - - - - Proxy connection timeout - - - - - Proxy not found - - - - - Proxy protocol error - - - - - Operation error - - - - - SSL internal error - - - - - Invalid SSL user data - - - - - Socket temprary error - - - - - Unacceptable MQTT protocol - - - - - MQTT identifier rejected - - - - - MQTT server unavailable - - - - - Bad MQTT username or password - - - - - MQTT authorization error - - - - - MQTT no ping response - - - - - MQTT client error - - - - - 0: At most once - - - - - 1: At least once - - - - - 2: Exactly once - - - - - - System default - - - - - Select CA file - - - - - Cannot open CA file! - - - - - MQTT client SSL/TLS error, ignore? - - - - - MQTTConfiguration - - - MQTT Configuration - - - - - Version - - - - - Mode - - - - - QOS level - - - - - Keep alive (s) - - - - - Host - - - - - Port - - - - - Topic - - - - - Retain - - - - - MQTT topic - - - - - Add retain flag - - - - - User - - - - - Password - - - - - MQTT username - - - - - MQTT password - - - - - Enable SSL/TLS: - - - - - Certificate: - - - - - Use system database - - - - - Custom CA file - - - - - Protocol: - - - - - CA file: - - - - - Disconnect - - - - - Connect - - - - - Apply - - - - - Menubar - - - File - - - - - Select JSON file - - - - - CSV export - - - - - Enable CSV export - - - - - Show CSV in explorer - - - - - Replay CSV - - - - - Export console output - - - - - Quit - - - - - Edit - - - - - Copy - - - - - Select all - - - - - Clear console output - - - - - Communication mode - - - - - Device sends JSON - - - - - Load JSON from computer - - - - - View - - - - - - Console - - - - - Dashboard - - - - - Show setup pane - - - - - Exit full screen - - - - - Enter full screen - - - - - Autoscroll - - - - - Show timestamp - - - - - VT-100 emulation - - - - - Echo user commands - - - - - Display mode - - - - - Normal (plain text) - - - - - Binary (hexadecimal) - - - - - Line ending character - - - - - Help - - - - - - About %1 - - - - - Auto-updater - - - - - Check for updates - - - - - Project website - - - - - Documentation/wiki - - - - - Report bug - - - - - Print - - - - - MenubarMacOS - - - File - - - - - Select JSON file - - - - - CSV export - - - - - Enable CSV export - - - - - Show CSV in explorer - - - - - Replay CSV - - - - - Export console output - - - - - Quit - - - - - Edit - - - - - Copy - - - - - Select all - - - - - Clear console output - - - - - Communication mode - - - - - Device sends JSON - - - - - Load JSON from computer - - - - - View - - - - - - Console - - - - - Dashboard - - - - - Show setup pane - - - - - Exit full screen - - - - - Enter full screen - - - - - Autoscroll - - - - - Show timestamp - - - - - VT-100 emulation - - - - - Echo user commands - - - - - Display mode - - - - - Normal (plain text) - - - - - Binary (hexadecimal) - - - - - Line ending character - - - - - Help - - - - - - About %1 - - - - - Auto-updater - - - - - Check for updates - - - - - Project website - - - - - Documentation/wiki - - - - - Report bug - - - - - Print - - - - - Misc::MacExtras - - - Setup - - - - - Console - - - - - Dashboard - - - - - Misc::ModuleManager - - - Unknown OS - - - - - The change will take effect after restart - - - - - Do you want to restart %1 now? - - - - - Misc::ThemeManager - - - The theme change will take effect after restart - - - - - Do you want to restart %1 now? - - - - - Misc::Utilities - - - Check for updates automatically? - - - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - - - - - Ok - - - - - Save - - - - - Save all - - - - - Open - - - - - Yes - - - - - Yes to all - - - - - No - - - - - No to all - - - - - Abort - - - - - Retry - - - - - Ignore - - - - - Close - - - - - Cancel - - - - - Discard - - - - - Help - - - - - Apply - - - - - Reset - - - - - Restore defaults - - - - - Network - - - Socket type - - - - - Port - - - - - Multicast - - - - - Remote address - - - - - Local port - - - - - Type 0 for automatic port - - - - - Remote port - - - - - Ignore data delimiters - - - - - Plugins::Server - - - Unable to start plugin TCP server - - - - - Plugin server - - - - - Invalid pending connection - - - - - Project::CodeEditor - - - New - - - - - Open - - - - - Save - - - - - Undo - - - - - Redo - - - - - Cut - - - - - Copy - - - - - Paste - - - - - Help - - - - - Customize frame parser - - - - - - - The document has been modified! - - - - - - Are you sure you want to continue? - - - - - Select Javascript file to import - - - - - Frame parser code updated successfully! - - - - - No errors have been detected in the code. - - - - - Frame parser error! - - - - - No parse() function has been declared! - - - - - Frame parser syntax error! - - - - - Error on line %1. - - - - - Generic error - - - - - Evaluation error - - - - - Range error - - - - - Reference error - - - - - Syntax error - - - - - Type error - - - - - URI error - - - - - Unknown error - - - - - Frame parser error detected! - - - - - Do you want to save the changes? - - - - - Project::Model - - - Dataset widgets - - - - - - Accelerometer - - - - - - Gyroscope - - - - - - GPS - - - - - Multiple data plot - - - - - None - - - - - Gauge - - - - - Bar/level - - - - - Compass - - - - - New Project - - - - - Do you want to save your changes? - - - - - You have unsaved modifications in this project! - - - - - Project error - - - - - Project title cannot be empty! - - - - - Project error - Group %1 - - - - - Group title cannot be empty! - - - - - Project error - Group %1, Dataset %2 - - - - - Dataset title cannot be empty! - - - - - Warning - Group %1, Dataset %2 - - - - - Dataset contains duplicate frame index position! Continue? - - - - - Save JSON project - - - - - File open error - - - - - Select JSON file - - - - - New Group - - - - - Delete group "%1" - - - - - Are you sure you want to delete this group? - - - - - Are you sure you want to change the group-level widget? - - - - - Existing datasets for this group will be deleted - - - - - - - Accelerometer %1 - - - - - - - Gyro %1 - - - - - Latitude - - - - - Longitude - - - - - Altitude - - - - - New dataset - - - - - Delete dataset "%1" - - - - - Are you sure you want to delete this dataset? - - - - - ProjectEditor - - - Project Editor - %1 - - - - - Start something awesome - - - - - Click on the "Add group" button to begin - - - - - QObject - - - Failed to load welcome text :( - - - - - QwtPlotRenderer - - - - - Documents - - - - - Images - - - - - Export File Name - - - - - QwtPolarRenderer - - - - - Documents - - - - - Images - - - - - Export File Name - - - - - Serial - - - COM Port - COM port - - - - Baud Rate - Baud rate - - - - Data Bits - Data bits - - - - Parity - - - - - Stop Bits - Stop bits - - - - Flow Control - Flow control - - - - Auto-reconnect - - - - - SerialManager - - No Device - No device - - - Select Port - Select port - - - - Settings - - - Language - - - - - Plugin system - - - - - Software rendering - - - - - Applications/plugins can interact with %1 by establishing a TCP connection on port 7777. - - - - - Theme - - - - - Custom window decorations - - - - - Setup - - - Communication Mode - Communication mode - - - COM Port - COM port - - - Baud Rate - Baud rate - - - Data Bits - Data bits - - - Stop Bits - Stop bits - - - Flow Control - Flow control - - - - Create CSV file - - - - - Settings - - - - - MQTT - - - - - Setup - - - - - No parsing (device sends JSON data) - - - - - Parse via JSON project file - - - - - Change project file (%1) - - - - - Select project file - - - - - Device - - - - - Terminal - - - Copy - - - - - Select all - - - - - Clear - - - - - Print - - - - - Save as - - - - - No data received so far - - - - - Send data to device - - - - - Echo - - - - - Autoscroll - - - - - Show timestamp - - - - - Toolbar - - - Console - - - - - Dashboard - - - - - Project Editor - - - - - Open CSV - - - - - Setup - - - - - Disconnect - - - - - Connect - - - - - TreeView - - - JSON Project Tree - - - - - UI::Dashboard - - - Status Panel - - - - - UI::DashboardWidget - - - Invalid - - - - - Updater - - - Would you like to download the update now? - - - - - Would you like to download the update now? This is a mandatory update, exiting now will close the application - - - - - Version %1 of %2 has been released! - - - - - No updates are available for the moment - - - - - Congratulations! You are running the latest version of %1 - - - - - ViewOptions - - - View - - - - - Datasets - - - - - Multiple data plots - - - - - FFT plots - - - - - Data plots - - - - - Bars - - - - - Gauges - - - - - Compasses - - - - - Gyroscopes - - - - - Accelerometers - - - - - GPS - - - - - LED Panels - - - - - Points: - - - - - Visualization options - - - - - Decimal places: - - - - - Widget size: - - - - - WidgetGrid - - - Data - - - - - Widgets::FFTPlot - - - Samples - - - - - FFT of %1 - - - - - Widgets::MultiPlot - - - Unknown - - - - - Samples - - - - - Widgets::Plot - - - Samples - - - - diff --git a/app/translations/es.qm b/app/translations/es.qm deleted file mode 100644 index c17919119e840bfbd6751b092c1c290c7c722a4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43776 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 - - - - About - - - About - Acerca de - - - - Version %1 - Versión %1 - - - Copyright © 2020 %1, released under the MIT License. - Copyright © 2020 %1, distribuido bajo la licencia MIT. - - - - The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - El programa se proporciona TAL CUAL, SIN GARANTÍA DE NINGÚN TIPO, INCLUIDA LA GARANTÍA DE DISEÑO, COMERCIABILIDAD Y APTITUD PARA UN PROPÓSITO EN PARTICULAR. - - - Contact author - Contactar al autor - - - - Report bug - Reportar un error - - - Check for updates - Buscar actualizaciones - - - - Documentation - Documentación - - - - Close - Cerrar - - - - Copyright © 2020-%1 %2, released under the MIT License. - Copyright © 2020-%1 %2, distribuido bajo la licencia MIT. - - - Open log file - Abrir archivo de log - - - - Website - Sitio web - - - - Acknowledgements - Agradecimientos - - - - Make a donation - Haz una donación - - - - AccelerometerDelegate - - G Units - Unidades G - - - %1 G MAX - %1 G MAX - - - %1 G MIN - %1 G MIN - - - %1 G ACT - %1 G ACT - - - Reset - Reajustar - - - - Acknowledgements - - - Acknowledgements - Agradecimientos - - - - Close - Cerrar - - - - Application - - Check for updates automatically? - ¿Buscar actualizaciones automaticamente? - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - ¿Debería %1 buscar actualizaciones automáticamente? También puedes buscar actualizaciones manualmente desde el menu de "Ayuda" - - - Drop JSON and CSV files here - Arrastre archivos JSON y CSV aquí - - - - BluetoothLE - - - Device - - - - - Service - - - - - Scanning.... - - - - - Sorry, this version of %1 is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. - - - - - CSV::Export - - - CSV file not open - Archivo CSV no abierto - - - - Cannot find CSV export file! - ¡No se puede encontrar el archivo de exportación CSV! - - - - CSV File Error - Error de archivo CSV - - - - Cannot open CSV file for writing! - ¡No se puede abrir el archivo CSV en modo de escritura! - - - - CSV::Player - - - Select CSV file - Seleccionar archivo CSV - - - - CSV files - Archivos CSV - - - Invalid configuration for CSV player - Configuración inválida para el reproductor CSV - - - You need to select a JSON map file in order to use this feature - Debe seleccionar un archivo de mapa JSON para utilizar esta función - - - - Serial port open, do you want to continue? - Puerto serie abierto, ¿quieres continuar? - - - - In order to use this feature, its necessary to disconnect from the serial port - Para utilizar esta función, es necesario desconectarse del puerto serie - - - There is an error with the data in the CSV file - Hay un error con los datos en el archivo CSV - - - Please verify that the CSV file was created with Serial Studio - Verifique que el archivo CSV haya sido creado con Serial Studio - - - - Cannot read CSV file - No se puede leer el archivo CSV - - - - Please check file permissions & location - Verifique los permisos y la ubicación del archivo - - - Replay of %1 - Reproducción de %1 - - - - Console - - No data received so far... - No se han recibido datos hasta ahora ... - - - Autoscroll - Desplazamiento automático - - - Send data to device - Enviar datos al dispositivo - - - Echo - Eco - - - Show timestamp - Marca de tiempo - - - Copy - Copiar - - - Clear - Limpiar - - - Save as - Guardar como - - - Select all - Seleccionar todo - - - No data received so far - No se han recibido datos hasta ahora - - - Print - Imprimir - - - Hide menubar - Ocular la barra de menú - - - Show menubar - Mostrar la barra de menú - - - - Console - Consola - - - - CsvPlayer - - - CSV Player - Reproductor CSV - - - Invalid configuration for CSV player - Configuración inválida para el reproductor CSV - - - You need to select a JSON map file in order to use this feature - Debe seleccionar un archivo de mapa JSON para utilizar esta función - - - Select CSV file - Seleccionar archivo CSV - - - CSV files (*.csv) - Archivos CSV (* .csv) - - - Serial port open, do you want to continue? - Puerto serie abierto, ¿quieres continuar? - - - In order to use this feature, its necessary to disconnect from the serial port - Para utilizar esta función, es necesario desconectarse del puerto serie - - - There is an error with the data in the CSV file - Hay un error con los datos en el archivo CSV - - - Please verify that the CSV file was created with Serial Studio - Verifique que el archivo CSV haya sido creado con Serial Studio - - - Cannot read CSV file - No se puede leer el archivo CSV - - - Please check file permissions & location - Verifique los permisos y la ubicación del archivo - - - Replay of %1 - Reproducción de %1 - - - CSV files - Archivos CSV - - - - Dashboard - - - Console - Consola - - - - DashboardTitle - - - Console - Consola - - - - DataGrid - - View - Vista - - - Horizontal Range - Rango Horizontal - - - Data Groups - Grupos de Datos - - - Data Plots - Gráficos de Datos - - - Data - Datos - - - Points - Puntos - - - Scale - Escala - - - - DeviceManager - - Communication Mode - Modo de comunicación - - - Auto (JSON from serial device) - Automático (JSON desde puerto serial) - - - Manual (use JSON map file) - Manual (usar archivo de mapa JSON) - - - Change map file (%1) - Cambiar archivo (%1) - - - Select map file - Seleccionar archivo de mapa - - - COM Port - Puerto COM - - - Baud Rate - Baudios - - - Data Bits - Bits de datos - - - Parity - Paridad - - - Stop Bits - Bits de parada - - - Flow Control - Control de flujo - - - Language - Idioma - - - - Donate - - - - Donate - Donar - - - - Later - Más tarde - - - - Close - Cerrar - - - - Support the development of %1! - ¡Apoye el desarrollo de %1! - - - - Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) - Serial Studio es un software gratuito y de código abierto apoyado por voluntarios. Considera donar para apoyar nuestros esfuerzos :) - - - - You can also support this project by sharing it, reporting bugs and proposing new features! - ¡También puede apoyar compartiéndo, informando errores y proponiendo nuevas funciones! - - - - Don't annoy me again! - ¡No mostrar este diálogo de nuevo! - - - - Downloader - - - - Updater - Actualizador - - - - - - Downloading updates - Descargando actualizaciones - - - - Time remaining: 0 minutes - Tiempo restante: 0 minutos - - - - Open - Abrir - - - - - Stop - Cancelar - - - - - Time remaining - Tiempo restante - - - - unknown - desconocido - - - - Error - Error - - - - Cannot find downloaded update! - No se puede encontrar el archivo descargado! - - - - Close - Cerrar - - - - Download complete! - Descarga completa! - - - - The installer will open separately - El instalador se abrirá por separado - - - - Click "OK" to begin installing the update - Haga clic en "Aceptar" para comenzar a instalar la actualización - - - - In order to install the update, you may need to quit the application. - Para instalar la actualización, es posible que deba salir de la aplicación. - - - - In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application - Para instalar la actualización, es posible que deba salir de la aplicación. Esta es una actualización obligatoria, salir ahora cerrará la aplicación - - - - Click the "Open" button to apply the update - Haga clic en el botón "Abrir" para instalar la actualización - - - - Are you sure you want to cancel the download? - ¿Estás seguro/a de que deseas cancelar la descarga? - - - - Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application - ¿Estás seguro/a de que deseas cancelar la descarga? Esta es una actualización obligatoria, salir ahora cerrará la aplicación - - - - - %1 bytes - - - - - - %1 KB - - - - - - %1 MB - - - - - of - de - - - - Downloading Updates - Descargando actualizaciones - - - - Time Remaining - Tiempo restante - - - - Unknown - Desconocido - - - - about %1 hours - alrededor de %1 horas - - - - about one hour - alrededor de una hora - - - - %1 minutes - %1 minutos - - - - 1 minute - 1 minuto - - - - %1 seconds - %1 segundos - - - - 1 second - 1 segundo - - - - Export - - CSV file not open - Archivo CSV no abierto - - - Cannot find CSV export file! - ¡No se puede encontrar el archivo de exportación CSV! - - - CSV File Error - Error de archivo CSV - - - Cannot open CSV file for writing! - ¡No se puede abrir el archivo CSV en modo de escritura! - - - - Footer - - - Close - Cerrar - - - - Add group - Agregar grupo - - - - Customize frame parser - - - - - Open existing project... - Abrir un proyecto existente... - - - - Create new project - Crear nuevo proyecto - - - - Apply - Aplicar - - - - Save - Guardar - - - - GpsMap - - - Center on coordinate - Centrar en coordenada - - - - Group - - Invalid - Inválido - - - - GroupEditor - - - Group %1 - - - - - Hardware - - - Data source - - - - - Header - - - Project title (required) - Título del proyecto (obligatorio) - - - - Data separator (default is ',') - Separador de datos (por defecto es ',') - - - - Frame start sequence (default is '/*') - - - - - Frame end sequence (default is '*/') - - - - Frame start sequence (default is '%1') - Secuencia de inicio de la trama (por defecto es '%1') - - - Frame end sequence (default is '%1') - Secuencia de fin de la trarma (por defecto es '%1') - - - - IO::Console - - - ASCII - ASCII - - - - HEX - HEX - - - - No line ending - Sin ajuste de línea - - - - New line - Nueva línea - - - - Carriage return - Retorno de carro - - - - NL + CR - Ambos NL & CR - - - - Plain text - Texto sin formato - - - - Hexadecimal - Hexadecimal - - - - Export console data - Exportar datos de la consola - - - - Text files - Archivos de texto - - - - File save error - Error al intentar guardar el archivo - - - - IO::DataSources::Network - - Socket error - Error de socket - - - IP address lookup error - Error de búsqueda de dirección IP - - - Network socket error - Error de conexión de red - - - - IO::DataSources::Serial - - None - Ninguno - - - No Device - Sin Dispositivo - - - Even - Par - - - Odd - Impar - - - Space - Espacio - - - Mark - Marca - - - Baud rate registered successfully - Nueva tasa de baudios registrada correctamente - - - Rate "%1" has been added to baud rate list - Se ha añadido la velocidad "%1" a la lista de tasa de baudios - - - Select Port - Seleccionar Puerto - - - Critical serial port error - Error crítico del puerto serie - - - Serial port error - Error de puerto serie - - - - IO::Drivers::BluetoothLE - - - The BLE device has been disconnected - - - - - Select device - - - - - Select service - - - - - Error while configuring BLE service - - - - - Operation error - Error de operación - - - - Characteristic write error - - - - - Descriptor write error - - - - - Unknown error - Error desconocido - - - - Characteristic read error - - - - - Descriptor read error - - - - - Bluetooth adapter is off! - - - - - Invalid Bluetooth adapter! - - - - - Unsuported platform or operating system - - - - - Unsupported discovery method - - - - - General I/O error - - - - - IO::Drivers::Network - - - Network socket error - Error de conexión de red - - - - IO::Drivers::Serial - - - - - - None - Ninguno - - - - No Device - Sin Dispositivo - - - - Even - Par - - - - Odd - Impar - - - - Space - Espacio - - - - Mark - Marca - - - - Baud rate registered successfully - Nueva tasa de baudios registrada correctamente - - - - Rate "%1" has been added to baud rate list - Se ha añadido la velocidad "%1" a la lista de tasa de baudios - - - - Select port - - - - - IO::Manager - - - Serial port - Puerto serial - - - - Network port - Puerto de red - - - - Bluetooth LE device - - - - - JSON::Editor - - Dataset widgets - Widgets de conjuntos de datos - - - Accelerometer - Acelerómetro - - - Gyroscope - Giroscopio - - - Map - Mapa - - - None - Ninguno - - - Gauge - Calibre - - - Bar/level - Barra/nivel - - - Compass - Brújula - - - New Project - Nuevo proyecto - - - Do you want to save your changes? - ¿Quieres guardar los cambios? - - - You have unsaved modifications in this project! - ¡Tienes modificaciones sin guardar en este proyecto! - - - Project error - Error de proyecto - - - Project title cannot be empty! - El título del proyecto no puede estar vacío. - - - Project error - Group %1 - Error de proyecto - Grupo %1 - - - Group title cannot be empty! - El título del grupo no puede estar vacío. - - - Project error - Group %1, Dataset %2 - Error de proyecto - Grupo %1, Conjunto de datos %2 - - - Dataset title cannot be empty! - El título del conjunto de datos no puede estar vacío. - - - Warning - Group %1, Dataset %2 - Advertencia - Grupo %1, conjunto de datos %2 - - - Dataset contains duplicate frame index position! Continue? - El conjunto de datos contiene una posición de índice de trama duplicada. ¿Continuar? - - - Save JSON project - Guardar proyecto JSON - - - File open error - Error al abrir el archivo - - - Select JSON file - Seleccionar archivo JSON - - - New Group - Nuevo grupo - - - Delete group "%1" - Eliminar el grupo "%1" - - - Are you sure you want to delete this group? - ¿Estás seguro/a de que quieres eliminar este grupo? - - - Are you sure you want to change the group-level widget? - ¿Estás seguro/a de que quieres cambiar el widget a nivel de grupo? - - - Existing datasets for this group will be deleted - Los conjuntos de datos existentes para este grupo se eliminarán - - - Accelerometer %1 - Acelerómetro %1 - - - Gyro %1 - Giroscopio %1 - - - Latitude - Latitud - - - Longitude - Longitud - - - New dataset - Nuevo conjunto de datos - - - Delete dataset "%1" - Eliminar el conjunto de datos "%1" - - - Are you sure you want to delete this dataset? - ¿Está seguro/a de que quiere eliminar este conjunto de datos? - - - Multiple data plot - Gráfico de datos múltiples - - - Altitude - Altitud - - - - JSON::Generator - - - Select JSON map file - Seleccionar mapa JSON - - - - JSON files - Archivos JSON - - - - JSON parse error - Error de lectura de JSON - - - JSON map file loaded successfully! - ¡El archivo de mapa JSON se cargó correctamente! - - - File "%1" loaded into memory - Archivo "%1" cargado en memoria - - - - Cannot read JSON file - Error de lectura del archivo JSON - - - - Please check file permissions & location - Verifique los permisos y la ubicación del archivo - - - JSON/serial data format mismatch - El formato de los datos recibidos no coincide - - - The format of the received data does not correspond to the selected JSON map file. - El formato de los datos recibidos no se corresponde con el archivo de mapa JSON seleccionado. - - - - JSONDropArea - - - Drop JSON and CSV files here - Arrastre archivos JSON y CSV aquí - - - - JsonDatasetDelegate - - - - Dataset %1 - %2 - Conjunto de datos %1 - %2 - - - - Title: - Título: - - - - Sensor reading, uptime, etc... - Lectura del sensor, tiempo de funcionamiento, etc... - - - - Units: - Unidades: - - - - Volts, meters, seconds, etc... - Voltios, metros, segundos, etc... - - - - Frame index: - Índice de la trama: - - - Generate graph: - Generar gráfico: - - - - Widget: - Widget: - - - - Min value: - Valor mínimo: - - - - Max value: - Valor máximo: - - - - Generate plot: - Generar gráfico: - - - - Logarithmic plot: - Gráfico logarítmico: - - - - FFT plot: - Gráfico FFT: - - - - FFT Samples: - Muestras FFT: - - - - Alarm level: - Nivel de alarma: - - - - Note: - Nota: - - - - The compass widget expects values from 0° to 360°. - El widget de la brújula espera valores de 0° a 360°. - - - - Display LED: - Mostrar LED: - - - - JsonEditor - - JSON Editor - %1 - Editor JSON - %1 - - - Project title (required) - Título del proyecto (obligatorio) - - - Data separator (default is ',') - Separador de datos (por defecto es ',') - - - Frame start sequence (default is '%1') - Secuencia de inicio de la trama (por defecto es '%1') - - - Frame end sequence (default is '%1') - Secuencia de fin de la trarma (por defecto es '%1') - - - Start something awesome - Comienza algo increíble - - - Click on the "%1" button to begin - Haga clic en el botón "%1" para comenzar - - - Close - Cerrar - - - Add group - Agregar grupo - - - Open existing project... - Abrir un proyecto existente... - - - Create new project - Crear nuevo proyecto - - - Apply - Aplicar - - - Save - Guardar - - - Click on the "Add group" button to begin - Haga clic en el botón "Añadir grupo" para empezar - - - - JsonGenerator - - Select JSON map file - Seleccionar mapa JSON - - - JSON files (*.json) - Archivos JSON (*.json) - - - JSON parse error - Error de lectura de JSON - - - JSON map file loaded successfully! - ¡El archivo de mapa JSON se cargó correctamente! - - - File "%1" loaded into memory - Archivo "%1" cargado en memoria - - - Cannot read JSON file - Error de lectura del archivo JSON - - - Please check file permissions & location - Verifique los permisos y la ubicación del archivo - - - JSON/serial data format mismatch - El formato de los datos recibidos no coincide - - - The format of the received data does not correspond to the selected JSON map file. - El formato de los datos recibidos no se corresponde con el archivo de mapa JSON seleccionado. - - - JSON files - Archivos JSON - - - - JsonGroupDelegate - - - Group %1 - %2 - Grupo %1 - %2 - - - - - Title - Título - - - - Group widget - - - - - Empty group - - - - - Set group title and click on the "Add dataset" button to begin - - - - - Add dataset - Agregar conjunto de datos - - - - - Note: - Nota: - - - - The accelerometer widget expects values in m/s². - El widget del acelerómetro espera valores en m/s². - - - - The gyroscope widget expects values in degrees (0° to 360°). - El widget del giroscopio espera valores en grados (de 0° a 360°). - - - - JsonParser - - Select JSON map file - Seleccionar mapa JSON - - - JSON files (*.json) - Archivos JSON (*.json) - - - JSON parse error - Error de lectura de JSON - - - JSON map file loaded successfully! - ¡El archivo de mapa JSON se cargó correctamente! - - - File "%1" loaded into memory - Archivo "%1" cargado en memoria - - - Cannot read JSON file - Error de lectura del archivo JSON - - - Please check file permissions & location - Verifique los permisos y la ubicación del archivo - - - - KLed - - - LED on - Accessible name of a Led whose state is on - LED prendido - - - - LED off - Accessible name of a Led whose state is off - LED apagado - - - - MQTT - - - Version - Versión - - - - Mode - Operación - - - - Host - Servidor - - - - Port - Puerto - - - - Topic - Tema - - - - MQTT topic - Tema MQTT - - - - User - Usuario - - - - MQTT username - Usuario MQTT - - - - Password - Contraseña - - - - MQTT password - Contraseña de MQTT - - - DNS lookup - Búsqueda DNS - - - Enter address (e.g. google.com) - Ingresar dirección (p.ej. google.com) - - - - Disconnect - Desconectar - - - Connect - Conectar - - - - Advanced setup - Configuración avanzada - - - - Connect to broker - Conectarse al broker - - - - MQTT::Client - - - Publisher - Publidador - - - - Subscriber - Suscriptor - - - - IP address lookup error - Error de búsqueda de dirección IP - - - - Unknown error - Error desconocido - - - - Connection refused - Conexión rechazada - - - - Remote host closed the connection - El host remoto cerró la conexión - - - - Host not found - Host no encontrado - - - - Socket access error - Error de acceso de socket - - - - Socket resource error - Error de recurso del socket - - - - Socket timeout - Tiempo límite excedido - - - - Socket datagram too large - Datagrama de socket demasiado grande - - - - Network error - Error de red - - - - Address in use - Dirección de red en uso - - - - Address not available - Dirección de red no disponible - - - - Unsupported socket operation - Operación de socket no soportado - - - - Unfinished socket operation - No se pudo finalizar la operación de socket - - - - Proxy authentication required - Se requiere autenticación proxy - - - - SSL handshake failed - El protocolo de enlace SSL falló - - - - Proxy connection refused - Conexión de proxy rechazada - - - - Proxy connection closed - Conexión de proxy cerrada - - - - Proxy connection timeout - Tiempo límite de conexión de proxy excedido - - - - Proxy not found - Proxy no encontrado - - - - Proxy protocol error - Error de protocolo de proxy - - - - Operation error - Error de operación - - - - SSL internal error - Error interno de SSL - - - - Invalid SSL user data - Datos de usuario SSL inválidos - - - - Socket temprary error - Error temporal de socket - - - - Unacceptable MQTT protocol - Error de protocolo MQTT crítico - - - - MQTT identifier rejected - Identificador de MQTT rechazado - - - - MQTT server unavailable - El servidor MQTT no está disponible - - - - Bad MQTT username or password - Nombre de usuario o contraseña incorrectos - - - - MQTT authorization error - Error de autorización de MQTT - - - - MQTT no ping response - El servidor MQTT no da una respuesta de ping - - - - MQTT client error - Error del cliente MQTT - - - - 0: At most once - 0: a lo mucho una vez - - - - 1: At least once - 0: al menos una vez - - - - 2: Exactly once - 0: exactamente una vez - - - - - System default - Predeterminado del sistema - - - - Select CA file - Seleccionar archivo CA - - - - Cannot open CA file! - ¡Error al abrir el archivo CA! - - - - MQTT client SSL/TLS error, ignore? - Error SSL/TLS del cliente MQTT, ¿ignorar? - - - - MQTTConfiguration - - - MQTT Configuration - Configuración del cliente MQTT - - - - Version - Versión - - - - Mode - Operación - - - - QOS level - Nivel QOS - - - - Keep alive (s) - Tiempo de permanencia (s) - - - - Host - Servidor - - - - Port - Puerto - - - - Topic - Tema - - - - Retain - Retención - - - - MQTT topic - Tema MQTT - - - - Add retain flag - Agregar bandera de retención - - - - User - Usuario - - - - Password - Contraseña - - - - MQTT username - Usuario MQTT - - - - MQTT password - Contraseña de MQTT - - - - Enable SSL/TLS: - Habilidar SSL/TLS: - - - - Certificate: - Certificado: - - - - Use system database - Usar base de datos del sistema - - - - Custom CA file - Usar archivo CA - - - - Protocol: - Protocolo: - - - - CA file: - Archivo CA: - - - - Disconnect - Desconectar - - - - Connect - Conectar - - - - Apply - Aplicar - - - - MapDelegate - - Center on coordinate - Centrar en coordenada - - - - Menubar - - - File - Archivo - - - - Select JSON file - Seleccionar archivo JSON - - - - CSV export - Exportación CSV - - - - Enable CSV export - Habilitar la exportación CSV - - - - Show CSV in explorer - Mostar CSV en el explorador - - - - Replay CSV - Reproducir CSV - - - - Export console output - Exportar datos de la consola - - - - Quit - Salir - - - - Edit - Editar - - - - Copy - Copiar - - - - Select all - Seleccionar todo - - - - Clear console output - Limpiar salida de la consola - - - - Communication mode - Modo de comunicación - - - - Device sends JSON - Dispositivo manda JSON - - - - Load JSON from computer - Cargar JSON desde la computadora - - - - View - Vista - - - - - Console - Consola - - - - Dashboard - Tablero - - - Widgets - Widgets - - - - Show setup pane - Mostar panel de configuración - - - Hide menubar - Ocular la barra de menú - - - Show menubar - Mostrar la barra de menú - - - - Exit full screen - Salir de pantalla completa - - - - Enter full screen - Pantalla completa - - - - Autoscroll - Desplazamiento automático - - - - Show timestamp - Mostar marca de tiempo - - - - VT-100 emulation - Emulación de VT-100 - - - - Echo user commands - Mostar comandos del usuario - - - - Display mode - Modo de visualización - - - - Normal (plain text) - Normal (texto sin formato) - - - - Binary (hexadecimal) - Binario (hexadecimal) - - - - Line ending character - Carácter de final de línea - - - - Help - Ayuda - - - - - About %1 - Acerca de %1 - - - - Auto-updater - Buscar actualizaciones automaticamente - - - - Check for updates - Buscar actualizaciones - - - - Project website - Sitio web del proyecto - - - - Documentation/wiki - Documentación/wiki - - - Show log file - Mostar archivo de log - - - - Report bug - Reportar un error - - - - Print - Imprimir - - - - MenubarMacOS - - - File - Archivo - - - - Select JSON file - Seleccionar archivo JSON - - - - CSV export - Exportación CSV - - - - Enable CSV export - Habilitar la exportación CSV - - - - Show CSV in explorer - Mostar CSV en el explorador - - - - Replay CSV - Reproducir CSV - - - - Export console output - Exportar datos de la consola - - - - Quit - Salir - - - - Edit - Editar - - - - Copy - Copiar - - - - Select all - Seleccionar todo - - - - Clear console output - Limpiar salida de la consola - - - - Communication mode - Modo de comunicación - - - - Device sends JSON - Dispositivo manda JSON - - - - Load JSON from computer - Cargar JSON desde la computadora - - - - View - Vista - - - - - Console - Consola - - - - Dashboard - Tablero - - - Widgets - Widgets - - - - Show setup pane - Mostar panel de configuración - - - - Exit full screen - Salir de pantalla completa - - - - Enter full screen - Pantalla completa - - - - Autoscroll - Desplazamiento automático - - - - Show timestamp - Mostar marca de tiempo - - - - VT-100 emulation - Emulación de VT-100 - - - - Echo user commands - Mostar comandos del usuario - - - - Display mode - Modo de visualización - - - - Normal (plain text) - Normal (texto sin formato) - - - - Binary (hexadecimal) - Binario (hexadecimal) - - - - Line ending character - Carácter de final de línea - - - - Help - Ayuda - - - - - About %1 - Acerca de %1 - - - - Auto-updater - Buscar actualizaciones automaticamente - - - - Check for updates - Buscar actualizaciones - - - - Project website - Sitio web del proyecto - - - - Documentation/wiki - Documentación/wiki - - - Show log file - Mostar archivo de log - - - - Report bug - Reportar un error - - - - Print - Imprimir - - - - Misc::MacExtras - - - Setup - Configuración - - - - Console - Consola - - - Widgets - Widgets - - - - Dashboard - Tablero - - - - Misc::ModuleManager - - Initializing... - Inicializando... - - - Configuring updater... - Configurando actualizador... - - - Initializing modules... - Inicializando módulos.... - - - Loading user interface... - Cargando la interfaz de usuario... - - - The rendering engine change will take effect after restart - El cambio de motor de renderización tendrá efecto después de reiniciar - - - - Unknown OS - - - - - The change will take effect after restart - - - - - Do you want to restart %1 now? - ¿Quiere reiniciar %1 ahora? - - - - Misc::ThemeManager - - - The theme change will take effect after restart - El cambio de tema entrará en vigor después de reiniciar la aplicación - - - - Do you want to restart %1 now? - ¿Quiere reiniciar %1 ahora? - - - - Misc::Utilities - - - Check for updates automatically? - ¿Buscar actualizaciones automaticamente? - - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - ¿Debería %1 buscar actualizaciones automáticamente? También puedes buscar actualizaciones manualmente desde el menu de "Ayuda" - - - - Ok - Ok - - - - Save - Guardar - - - - Save all - Guardar todo - - - - Open - Abrir - - - - Yes - Si - - - - Yes to all - Si a todo - - - - No - No - - - - No to all - No a todo - - - - Abort - Abortar - - - - Retry - Intentar de nuevo - - - - Ignore - Ignorar - - - - Close - Cerrar - - - - Cancel - Cancelar - - - - Discard - Descartar - - - - Help - Ayuda - - - - Apply - Aplicar - - - - Reset - Restaurar - - - - Restore defaults - Restaurar prederminados - - - - ModuleManager - - Initializing... - Inicializando... - - - Configuring updater... - Configurando actualizador... - - - Initializing modules... - Inicializando módulos.... - - - Starting timers... - Configurando temporizadores... - - - Loading user interface... - Cargando la interfaz de usuario... - - - The rendering engine change will take effect after restart - El cambio de motor de renderización tendrá efecto después de reiniciar - - - Do you want to restart %1 now? - ¿Quiere reiniciar %1 ahora? - - - - Network - - - Socket type - Tipo de socket - - - IP Address - Direccion IP - - - - Port - Puerto - - - DNS lookup - Búsqueda DNS - - - Enter address (e.g. google.com) - Ingresar dirección (p.ej. google.com) - - - Host - Servidor - - - - Multicast - Multidifusión - - - - Remote address - Dirección remota - - - - Local port - Puerto local - - - - Type 0 for automatic port - Escriba 0 para asignar automáticamente el puerto - - - - Remote port - Puerto remoto - - - Each datagram is a frame - Ignorar delimitadores de datos - - - - Ignore data delimiters - Ignorar delimitadores de datos - - - - Plugins::Bridge - - Unable to start plugin TCP server - No se puede iniciar el servidor de plugins TCP - - - Plugin server - Servidor de plugins - - - Invalid pending connection - Conexión pendiente no válida - - - - Plugins::Server - - - Unable to start plugin TCP server - No se puede iniciar el servidor de plugins TCP - - - - Plugin server - Servidor de plugins - - - - Invalid pending connection - Conexión pendiente no válida - - - - Project::CodeEditor - - - New - - - - - Open - Abrir - - - - Save - Guardar - - - - Undo - - - - - Redo - - - - - Cut - - - - - Copy - Copiar - - - - Paste - - - - - Help - Ayuda - - - - Customize frame parser - - - - - - - The document has been modified! - - - - - - Are you sure you want to continue? - - - - - Select Javascript file to import - - - - - Frame parser code updated successfully! - - - - - No errors have been detected in the code. - - - - - Frame parser error! - - - - - No parse() function has been declared! - - - - - Frame parser syntax error! - - - - - Error on line %1. - - - - - Generic error - - - - - Evaluation error - - - - - Range error - - - - - Reference error - - - - - Syntax error - - - - - Type error - - - - - URI error - - - - - Unknown error - Error desconocido - - - - Frame parser error detected! - - - - - Do you want to save the changes? - - - - - Project::Model - - - Dataset widgets - Widgets de conjuntos de datos - - - - - Accelerometer - Acelerómetro - - - - - Gyroscope - Giroscopio - - - - - GPS - GPS - - - - Multiple data plot - Gráfico de datos múltiples - - - - None - Ninguno - - - - Gauge - Calibre - - - - Bar/level - Barra/nivel - - - - Compass - Brújula - - - - New Project - Nuevo proyecto - - - - Do you want to save your changes? - ¿Quieres guardar los cambios? - - - - You have unsaved modifications in this project! - ¡Tienes modificaciones sin guardar en este proyecto! - - - - Project error - Error de proyecto - - - - Project title cannot be empty! - El título del proyecto no puede estar vacío. - - - - Project error - Group %1 - Error de proyecto - Grupo %1 - - - - Group title cannot be empty! - El título del grupo no puede estar vacío. - - - - Project error - Group %1, Dataset %2 - Error de proyecto - Grupo %1, Conjunto de datos %2 - - - - Dataset title cannot be empty! - El título del conjunto de datos no puede estar vacío. - - - - Warning - Group %1, Dataset %2 - Advertencia - Grupo %1, conjunto de datos %2 - - - - Dataset contains duplicate frame index position! Continue? - El conjunto de datos contiene una posición de índice de trama duplicada. ¿Continuar? - - - - Save JSON project - Guardar proyecto JSON - - - - File open error - Error al abrir el archivo - - - - Select JSON file - Seleccionar archivo JSON - - - - New Group - Nuevo grupo - - - - Delete group "%1" - Eliminar el grupo "%1" - - - - Are you sure you want to delete this group? - ¿Estás seguro/a de que quieres eliminar este grupo? - - - - Are you sure you want to change the group-level widget? - ¿Estás seguro/a de que quieres cambiar el widget a nivel de grupo? - - - - Existing datasets for this group will be deleted - Los conjuntos de datos existentes para este grupo se eliminarán - - - - - - Accelerometer %1 - Acelerómetro %1 - - - - - - Gyro %1 - Giroscopio %1 - - - - Latitude - Latitud - - - - Longitude - Longitud - - - - Altitude - Altitud - - - - New dataset - Nuevo conjunto de datos - - - - Delete dataset "%1" - Eliminar el conjunto de datos "%1" - - - - Are you sure you want to delete this dataset? - ¿Está seguro/a de que quiere eliminar este conjunto de datos? - - - - ProjectEditor - - - Project Editor - %1 - - - - - Start something awesome - Comienza algo increíble - - - - Click on the "Add group" button to begin - Haga clic en el botón "Añadir grupo" para empezar - - - - QObject - - - Failed to load welcome text :( - Error al cargar el texto de bienvenida :( - - - :/messages/Welcome_EN.txt - :/messages/Welcome_ES.txt - - - - QwtPlotRenderer - - - - - Documents - Documentos - - - - Images - Imagenes - - - - Export File Name - Nombre del archivo de exportación - - - - QwtPolarRenderer - - - - - Documents - Documentos - - - - Images - Imagenes - - - - Export File Name - Nombre del archivo de exportación - - - - Serial - - - COM Port - Puerto COM - - - - Baud Rate - Baudios - - - - Data Bits - Bits de datos - - - - Parity - Paridad - - - - Stop Bits - Bits de parada - - - - Flow Control - Control de flujo - - - - Auto-reconnect - Auto reconexión - - - - SerialManager - - No Parity - Sin Paridad - - - One - Uno - - - No Flow Control - Sin control de flujo - - - No Device - Sin Dispositivo - - - Received: %1 %2 - Recibido: %1 %2 - - - Even Parity - Par - - - Odd Parity - Inpar - - - Space Parity - Espacio - - - Mark Parity - Marca - - - One and Half - Uno y Medio - - - Two - Dos - - - Hardware Control - Controlado por hardware - - - Software Control - Controlado por software - - - Select Port - Seleccionar Puerto - - - None - Ninguno - - - Even - Par - - - Odd - Impar - - - Space - Espacio - - - Mark - Marca - - - Critical serial port error - Error crítico del puerto serie - - - Plain text (as it comes) - Texto sin formato (como viene) - - - Plain text (remove control characters) - Texto sin formato (eliminar caracteres de control) - - - Hex display - Hexadecimal - - - As it comes - Como viene - - - Remove control characters - Eliminar caracteres de control - - - Hexadecimal - Hexadecimal - - - Baud rate registered successfully - Nueva tasa de baudios registrada correctamente - - - Rate "%1" has been added to baud rate list - Se ha añadido la velocidad "%1" a la lista de tasa de baudios - - - - Settings - - - Language - Idioma - - - Start sequence - Secuencia de inicio - - - End sequence - Secuencia de terminación - - - - Plugin system - Sistema de plugins - - - - Software rendering - - - - - Applications/plugins can interact with %1 by establishing a TCP connection on port 7777. - Las aplicaciones/plugins pueden interactuar con %1 estableciendo una conexión TCP en el puerto 7777. - - - - Theme - Tema - - - Data separator - Separador de datos - - - UI refresh rate - Frec. de actualización - - - Rendering engine - Motor de renderizado - - - Threaded frame parsing - Análisis multihilo de tramas - - - Multithreaded frame parsing - Análisis multihilo de tramas - - - - Custom window decorations - Decorador de ventanas - - - - Setup - - - Communication Mode - Modo de comunicación - - - Auto (JSON from serial device) - Automático (JSON desde puerto serial) - - - Manual (use JSON map file) - Manual (usar archivo de mapa JSON) - - - Change map file (%1) - Cambiar archivo (%1) - - - Select map file - Seleccionar archivo de mapa - - - COM Port - Puerto COM - - - Baud Rate - Baudios - - - Data Bits - Bits de datos - - - Parity - Paridad - - - Stop Bits - Bits de parada - - - Flow Control - Control de flujo - - - Language - Idioma - - - Open mode - Modo de apertura - - - Read-only - Solo lectura - - - Read/write - Lectura/escritura - - - Display mode - Visualización - - - Custom baud rate - Otra tasa de baudios - - - CSV Export - Exportación CSV - - - CSV Player - Reproductor CSV - - - - Create CSV file - Crear archivo CSV - - - Start sequence - Secuencia de inicio - - - End sequence - Secuencia de terminación - - - Serial - Puerto serial - - - Network - Red - - - - Settings - Opciones - - - - MQTT - MQTT - - - - Setup - Configuración - - - - No parsing (device sends JSON data) - El dispositivo envía los datos JSON - - - - Parse via JSON project file - Utilizar archivo de proyecto JSON - - - - Change project file (%1) - Cambiar el archivo del proyecto (%1) - - - - Select project file - Seleccionar proyecto - - - - Device - - - - - Sidebar - - CSV Player - Reproductor CSV - - - Open CSV - Abrir CSV - - - Log - Registro - - - - Terminal - - - Copy - Copiar - - - - Select all - Seleccionar todo - - - - Clear - Limpiar - - - - Print - Imprimir - - - - Save as - Guardar como - - - Hide menubar - Ocular la barra de menú - - - Show menubar - Mostrar la barra de menú - - - - No data received so far - No se han recibido datos hasta ahora - - - - Send data to device - Enviar datos al dispositivo - - - - Echo - Eco - - - - Autoscroll - Desplazamiento automático - - - - Show timestamp - Marca de tiempo - - - - Toolbar - - Devices - Dispositivos - - - - Console - Consola - - - Data Display - Visualización de Datos - - - Widgets - Widgets - - - About - Acerca de - - - CSV Export - Exportación CSV - - - Open past CSV - Abrir CSV pasado - - - Open current CSV - Abrir CSV actual - - - - Dashboard - Tablero - - - CSV Player - Reproductor CSV - - - Log - Registro - - - - Open CSV - Abrir CSV - - - - Setup - Configuración - - - - Project Editor - - - - - Disconnect - Desconectar - - - - Connect - Conectar - - - JSON Editor - Editor JSON - - - - TreeView - - - JSON Project Tree - Árbol de proyecto JSON - - - - UI::Dashboard - - - Status Panel - Panel de estado - - - - UI::DashboardWidget - - - Invalid - Inválido - - - - UI::WidgetLoader - - Invalid - Inválido - - - - Updater - - - Would you like to download the update now? - ¿Le gustaría descargar la actualización ahora? - - - - Would you like to download the update now? This is a mandatory update, exiting now will close the application - ¿Le gustaría descargar la actualización ahora? Esta es una actualización obligatoria, salir ahora cerrará la aplicación - - - - Version %1 of %2 has been released! - ¡Se ha lanzado la versión %1 de %2! - - - - No updates are available for the moment - No hay actualizaciones disponibles por el momento - - - - Congratulations! You are running the latest version of %1 - ¡Felicidades! Estás ejecutando la última versión de %1 - - - - ViewOptions - - - View - Vista - - - Plot divisions (%1) - Divisiones de gráficos (%1) - - - - Datasets - Conjunto de datos - - - - Multiple data plots - Gráfico de datos múltiples - - - - FFT plots - Gráficos FFT - - - - Data plots - Gráficos de datos - - - - Bars - Barras - - - - Gauges - Calibres - - - - Compasses - Brújulas - - - - Gyroscopes - Giroscopios - - - - Accelerometers - Acelerómetros - - - - GPS - GPS - - - - LED Panels - Panel de LEDs - - - View options - Opciones de visualización - - - - Points: - Puntos: - - - Widgets: - Widgets: - - - - Visualization options - Opciones de visualización - - - - Decimal places: - Lugares decimales: - - - - Widget size: - Tamaño de widgets: - - - - WidgetGrid - - - Data - Datos - - - - Widgets - - View - Vista - - - Widgets - Widgets - - - - Widgets::FFTPlot - - - Samples - Muestras - - - - FFT of %1 - FFT de %1 - - - - Widgets::GPS - - Latitude - Latitud - - - Longitude - Longitud - - - Altitude - Altitud - - - Loading... - Cargando... - - - Double-click to open map - Doble clic para mostrar mapa - - - - Widgets::MultiPlot - - - Unknown - Desconocido - - - - Samples - Muestras - - - - Widgets::Plot - - - Samples - Muestras - - - - Widgets::WidgetLoader - - Invalid - Inválido - - - - main - - Check for updates automatically? - ¿Buscar actualizaciones automaticamente? - - - Should %1 automatically check for updates? You can always check for updates manually from the "About" dialog - ¿Debería %1 buscar actualizaciones automáticamente? También puedes buscar actualizaciones manualmente desde el cuadro de diálogo "Acerca de" - - - Drop *.json and *.csv files here - Arrastre archivos *.json y *.csv aquí - - - Drop JSON and CSV files here - Arrastre archivos JSON y CSV aquí - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - ¿Debería %1 buscar actualizaciones automáticamente? También puedes buscar actualizaciones manualmente desde el menu de "Ayuda" - - - diff --git a/app/translations/qm/de_DE.qm b/app/translations/qm/de_DE.qm new file mode 100644 index 0000000000000000000000000000000000000000..434ee23db8456a6fd97acd508e972c08f1a534b7 GIT binary patch literal 33 ocmcE7ks@*G{hX<16=n7(EZlo{IRgU&Yf5Uoi)#mv#l*-60Q%Ppr~m)} literal 0 HcmV?d00001 diff --git a/app/translations/qm/en_US.qm b/app/translations/qm/en_US.qm new file mode 100644 index 0000000000000000000000000000000000000000..a50c66cdcd1a4ec20661e30c68c9a611765163f8 GIT binary patch literal 26717 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 - - - - About - - - About - О - - - - Version %1 - Версия %1 - - - - The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - Программа предоставляется КАК ЕСТЬ без каких-либо гарантий, включая гарантии дизайна, товарного качества и пригодности для конкретной цели. - - - - Report bug - Сообщить об ошибке - - - - Documentation - Документация - - - - Close - Закрыть - - - - Copyright © 2020-%1 %2, released under the MIT License. - Авторское право © 2020-%1 %2, выпущено под лицензией MIT. - - - - Website - Сайт - - - - Acknowledgements - Благодарности - - - - Make a donation - Сделать пожертвование - - - - AccelerometerDelegate - - G Units - G Units - - - %1 G MAX - %1 G MAX - - - %1 G MIN - %1 G MIN - - - %1 G ACT - %1 G ACT - - - Reset - Сбросить - - - - Acknowledgements - - - Acknowledgements - Благодарности - - - - Close - Закрыть - - - - Application - - Check for updates automatically? - Проверять обновления автоматически? - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - Должен ли %1 автоматически проверять наличие обновлений? Вы всегда можете проверить наличие обновлений вручную из меню "Помощь" - - - Drop JSON and CSV files here - Скиньте сюда файлы JSON и CSV - - - - BluetoothLE - - - Device - - - - - Service - - - - - Scanning.... - - - - - Sorry, this version of %1 is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. - - - - - CSV::Export - - - CSV file not open - CSV-файл не открывается - - - - Cannot find CSV export file! - Не удается найти файл экспорта CSV! - - - - CSV File Error - Ошибка файла CSV - - - - Cannot open CSV file for writing! - Невозможно открыть CSV-файл для записи! - - - - CSV::Player - - - Select CSV file - Выберите CSV-файл - - - - CSV files - Файлы CSV - - - Invalid configuration for CSV player - Неверная конфигурация для CSV-плеера - - - You need to select a JSON map file in order to use this feature - Вам необходимо выбрать файл карты JSON, чтобы использовать эту функцию - - - - Serial port open, do you want to continue? - Последовательный порт открыт, вы хотите продолжить? - - - - In order to use this feature, its necessary to disconnect from the serial port - Чтобы использовать эту функцию, необходимо отключиться от последовательного порта - - - There is an error with the data in the CSV file - Возникла ошибка с данными в CSV-файле - - - Please verify that the CSV file was created with Serial Studio - Убедитесь, что CSV-файл был создан с помощью Serial Studio - - - - Cannot read CSV file - Невозможно прочитать CSV-файл - - - - Please check file permissions & location - Проверьте разрешения и расположение файла - - - Replay of %1 - Воспроизведение %1 - - - - Console - - Send data to device - Отправьте данные на устройство - - - Echo - Эхо - - - Autoscroll - Автопрокрутка - - - Show timestamp - Показать метку времени - - - Copy - Копировать - - - Clear - Очистить - - - Save as - Сохранить как - - - Select all - Выбрать все - - - No data received so far - Данные пока не получены - - - Print - Печать - - - Hide menubar - Скрыть меню - - - Show menubar - Показать меню - - - - Console - Консоль - - - - CsvPlayer - - - CSV Player - Проигрыватель CSV - - - CSV files - Файлы CSV - - - - Dashboard - - - Console - Консоль - - - - DashboardTitle - - - Console - Консоль - - - - DataGrid - - View - Просмотр - - - Horizontal Range - Горизонтальный диапазон - - - Data Groups - Группы данных - - - Data Plots - Графики данных - - - Data - Данные - - - Points - Точки - - - Scale - Масштаб - - - - DeviceManager - - Communication Mode - Режим связи - - - COM Port - COM-порт - - - Baud Rate - Скорость передачи данных - - - Data Bits - Биты данных - - - Stop Bits - Стоп-биты - - - Flow Control - Управление потоком - - - - Donate - - - - Donate - Донат - - - - Later - Позже - - - - Close - Закрыть - - - - Support the development of %1! - Поддержите разработку %1! - - - - Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) - Serial Studio - это бесплатное программное обеспечение с открытым исходным кодом, поддерживаемое добровольцами. Рассмотрите возможность пожертвования для поддержки усилий по разработке :) - - - - You can also support this project by sharing it, reporting bugs and proposing new features! - Вы также можете поддержать этот проект, поделившись им, сообщив об ошибках и предложив новые возможности! - - - - Don't annoy me again! - Не раздражайте меня больше! - - - - Downloader - - - - Updater - Updater - - - - - - Downloading updates - Загрузка обновлений - - - - Time remaining: 0 minutes - Оставшееся время: 0 минут - - - - Open - Открыть - - - - - Stop - Остановить - - - - - Time remaining - Оставшееся время - - - - unknown - неизвестно - - - - Error - Ошибка - - - - Cannot find downloaded update! - Не удается найти загруженное обновление! - - - - Close - Закрыть - - - - Download complete! - Загрузка завершена! - - - - The installer will open separately - Программа установки откроется отдельно - - - - Click "OK" to begin installing the update - Нажмите "OK", чтобы начать установку обновления - - - - In order to install the update, you may need to quit the application. - Для установки обновления может потребоваться выйти из приложения. - - - - In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application - Для установки обновления может потребоваться выйти из приложения. Это обязательное обновление, выход сейчас приведет к закрытию приложения - - - - Click the "Open" button to apply the update - Нажмите кнопку "Открыть", чтобы применить обновление - - - - Are you sure you want to cancel the download? - Вы уверены, что хотите отменить загрузку? - - - - Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application - Вы уверены, что хотите отменить загрузку? Это обязательное обновление, выход сейчас приведет к закрытию приложения - - - - - %1 bytes - %1 байт - - - - - %1 KB - %1 КБ - - - - - %1 MB - %1 МБ - - - - of - - - - - Downloading Updates - Загрузка обновлений - - - - Time Remaining - Оставшееся время - - - - Unknown - Неизвестно - - - - about %1 hours - около %1 часа - - - - about one hour - около одного часа - - - - %1 minutes - %1 минут - - - - 1 minute - 1 минута - - - - %1 seconds - %1 секунды - - - - 1 second - 1 секунда - - - - Export - - CSV File Error - Ошибка файла CSV - - - - Footer - - - Close - Закрыть - - - - Add group - Добавить группу - - - - Customize frame parser - - - - - Open existing project... - Открыть существующий проект... - - - - Create new project - Создать новый проект - - - - Apply - Применить - - - - Save - Сохранить - - - - GpsMap - - - Center on coordinate - Центр на координате - - - - GroupEditor - - - Group %1 - - - - - GyroDelegate - - %1° YAW - %1° ЯВ - - - %1° ROLL - %1° КРУГ - - - %1° PITCH - %1° PITCH - - - - Hardware - - - Data source - - - - - Header - - - Project title (required) - Название проекта (обязательно) - - - - Data separator (default is ',') - Разделитель данных (по умолчанию ',') - - - - Frame start sequence (default is '/*') - - - - - Frame end sequence (default is '*/') - - - - Frame start sequence (default is '%1') - Последовательность начала кадра (по умолчанию '%1') - - - Frame end sequence (default is '%1') - Последовательность окончания кадра (по умолчанию '%1') - - - - IO::Console - - - ASCII - ASCII - - - - HEX - HEX - - - - No line ending - Нет окончания строки - - - - New line - Новая строка - - - - Carriage return - Возврат каретки - - - - NL + CR - NL + CR - - - - Plain text - Обычный текст - - - - Hexadecimal - Шестнадцатеричный - - - - Export console data - Экспорт данных консоли - - - - Text files - Текстовые файлы - - - - File save error - Ошибка сохранения файла - - - - IO::DataSources::Network - - Network socket error - Ошибка сетевого сокета - - - - IO::DataSources::Serial - - None - Нет - - - No Device - Нет Устройство - - - Even - Четный - - - Odd - Нечетные - - - Space - Пробел - - - Mark - Отметка - - - Baud rate registered successfully - Скорость передачи данных зарегистрирована успешно - - - Rate "%1" has been added to baud rate list - Скорость "%1" была добавлена в список скоростей передачи данных - - - Select Port - Выберите порт - - - Serial port error - Ошибка последовательного порта - - - - IO::Drivers::BluetoothLE - - - The BLE device has been disconnected - - - - - Select device - - - - - Select service - - - - - Error while configuring BLE service - - - - - Operation error - Ошибка операции - - - - Characteristic write error - - - - - Descriptor write error - - - - - Unknown error - Неизвестная ошибка - - - - Characteristic read error - - - - - Descriptor read error - - - - - Bluetooth adapter is off! - - - - - Invalid Bluetooth adapter! - - - - - Unsuported platform or operating system - - - - - Unsupported discovery method - - - - - General I/O error - - - - - IO::Drivers::Network - - - Network socket error - Ошибка сетевого сокета - - - - IO::Drivers::Serial - - - - - - None - Нет - - - - No Device - Нет Устройство - - - - Even - Четный - - - - Odd - Нечетные - - - - Space - Пробел - - - - Mark - Отметка - - - - Baud rate registered successfully - Скорость передачи данных зарегистрирована успешно - - - - Rate "%1" has been added to baud rate list - Скорость "%1" была добавлена в список скоростей передачи данных - - - - Select port - - - - - IO::Manager - - - Serial port - Последовательный порт - - - - Network port - Сетевой порт - - - - Bluetooth LE device - - - - - JSON::Editor - - Dataset widgets - Виджеты набора данных - - - Accelerometer - Акселерометр - - - Gyroscope - Гироскоп - - - Map - Карта - - - None - Нет - - - Gauge - Измеритель - - - Bar/level - Бар/уровень - - - Compass - Компас - - - New Project - Новый проект - - - Do you want to save your changes? - Вы хотите сохранить изменения? - - - You have unsaved modifications in this project! - У вас есть несохраненные изменения в этом проекте! - - - Project error - Ошибка проекта - - - Project title cannot be empty! - Название проекта не может быть пустым! - - - Project error - Group %1 - Ошибка проекта - Группа %1 - - - Group title cannot be empty! - Название группы не может быть пустым! - - - Project error - Group %1, Dataset %2 - Ошибка проекта - Группа %1, набор данных %2 - - - Dataset title cannot be empty! - Название набора данных не может быть пустым! - - - Warning - Group %1, Dataset %2 - Предупреждение - Группа %1, набор данных %2 - - - Dataset contains duplicate frame index position! Continue? - Набор данных содержит дублирующуюся позицию индекса кадра! Продолжить? - - - Save JSON project - Сохранить проект JSON - - - File open error - Ошибка открытия файла - - - Select JSON file - Выберите файл JSON - - - New Group - Новая группа - - - Delete group "%1" - Удалить группу "%1" - - - Are you sure you want to delete this group? - Вы уверены, что хотите удалить эту группу? - - - Are you sure you want to change the group-level widget? - Вы уверены, что хотите изменить виджет на уровне группы? - - - Existing datasets for this group will be deleted - Существующие наборы данных для этой группы будут удалены - - - Accelerometer %1 - Акселерометр %1 - - - Gyro %1 - Гироскоп %1 - - - Latitude - Широта - - - Longitude - Долгота - - - New dataset - Новый набор данных - - - Delete dataset "%1" - Удалить набор данных "%1" - - - Are you sure you want to delete this dataset? - Вы уверены, что хотите удалить этот набор данных? - - - GPS - GPS - - - Multiple data plot - График множественных данных - - - Altitude - Высота - - - - JSON::Generator - - - Select JSON map file - Выберите файл карты JSON - - - - JSON files - Файлы JSON - - - - JSON parse error - Ошибка разбора JSON - - - - Cannot read JSON file - Невозможно прочитать файл JSON - - - - Please check file permissions & location - Проверьте разрешения и расположение файла - - - - JSONDropArea - - - Drop JSON and CSV files here - Скиньте сюда файлы JSON и CSV - - - - JsonDatasetDelegate - - - - Dataset %1 - %2 - Набор данных %1 - %2 - - - - Title: - Название: - - - - Sensor reading, uptime, etc... - Показания датчиков, время работы и т.д.... - - - - Units: - Единицы измерения: - - - - Volts, meters, seconds, etc... - Вольты, метры, секунды и т.д... - - - - Frame index: - Индекс кадра: - - - Generate graph: - Генерировать график: - - - - Widget: - Виджет: - - - - Min value: - Минимальное значение: - - - - Max value: - Максимальное значение: - - - - Generate plot: - Создайте график: - - - - Logarithmic plot: - Логарифмический график: - - - - FFT plot: - График FFT: - - - - FFT Samples: - Образцы FFT: - - - - Alarm level: - Уровень тревоги: - - - - Note: - Примечание: - - - - The compass widget expects values from 0° to 360°. - Виджет компаса принимает значения от 0° до 360°. - - - - Display LED: - Показать LED: - - - - JsonEditor - - JSON Editor - %1 - Редактор JSON - %1 - - - Project title (required) - Название проекта (обязательно) - - - Data separator (default is ',') - Разделитель данных (по умолчанию ',') - - - Frame start sequence (default is '%1') - Последовательность начала кадра (по умолчанию '%1') - - - Frame end sequence (default is '%1') - Последовательность окончания кадра (по умолчанию '%1') - - - Start something awesome - Начните что-то потрясающее - - - Click on the "%1" button to begin - Нажмите на кнопку "%1", чтобы начать работу - - - Close - Закрыть - - - Add group - Добавить группу - - - Open existing project... - Открыть существующий проект... - - - Create new project - Создать новый проект - - - Apply - Применить - - - Save - Сохранить - - - Click on the "Add group" button to begin - Нажмите на кнопку "Добавить группу", чтобы начать - - - - JsonGroupDelegate - - - Group %1 - %2 - Группа %1 - %2 - - - - - Title - Название - - - - Group widget - - - - - Empty group - - - - - Set group title and click on the "Add dataset" button to begin - - - - - Add dataset - Добавить набор данных - - - - - Note: - Примечание: - - - - The accelerometer widget expects values in m/s². - Виджет акселерометра ожидает значений в м/с². - - - - The gyroscope widget expects values in degrees (0° to 360°). - Виджет гироскопа принимает значения в градусах (от 0° до 360°). - - - - KLed - - - LED on - Accessible name of a Led whose state is on - Светодиод включен - - - - LED off - Accessible name of a Led whose state is off - Светодиод выключен - - - - MQTT - - - Version - Версия - - - - Mode - Режим - - - - Host - Хост - - - - Port - Порт - - - - Topic - Тема - - - - MQTT topic - Тема MQTT - - - - User - Пользователь - - - - MQTT username - Имя пользователя MQTT - - - - Password - Пароль - - - - MQTT password - Пароль MQTT - - - - Disconnect - Отключить - - - Connect - Подключиться - - - - Advanced setup - Настройка - - - - Connect to broker - Подключиться - - - - MQTT::Client - - - Publisher - Издатель - - - - Subscriber - Подписчик - - - - IP address lookup error - Ошибка поиска IP-адреса - - - - Unknown error - Неизвестная ошибка - - - - Connection refused - Отказ в подключении - - - - Remote host closed the connection - Удаленный хост закрыл соединение - - - - Host not found - Хост не найден - - - - Socket access error - Ошибка доступа к сокету - - - - Socket resource error - Ошибка ресурса сокета - - - - Socket timeout - Таймаут сокета - - - - Socket datagram too large - Слишком большая датаграмма сокета - - - - Network error - Ошибка сети - - - - Address in use - Используемый адрес - - - - Address not available - Адрес недоступен - - - - Unsupported socket operation - Неподдерживаемая операция с сокетом - - - - Unfinished socket operation - Незавершенная операция с сокетом - - - - Proxy authentication required - Требуется аутентификация прокси-сервера - - - - SSL handshake failed - SSL квитирование не удалось - - - - Proxy connection refused - Прокси-соединение отклонено - - - - Proxy connection closed - Прокси-соединение закрыто - - - - Proxy connection timeout - Таймаут прокси-соединения - - - - Proxy not found - Прокси не найден - - - - Proxy protocol error - Ошибка протокола прокси - - - - Operation error - Ошибка операции - - - - SSL internal error - Внутренняя ошибка SSL - - - - Invalid SSL user data - Неверные данные пользователя SSL - - - - Socket temprary error - Ошибка шаблона сокета - - - - Unacceptable MQTT protocol - Неприемлемый протокол MQTT - - - - MQTT identifier rejected - Идентификатор MQTT отклонен - - - - MQTT server unavailable - Сервер MQTT недоступен - - - - Bad MQTT username or password - Плохое имя пользователя или пароль MQTT - - - - MQTT authorization error - Ошибка авторизации MQTT - - - - MQTT no ping response - MQTT не отвечает на запрос ping - - - - MQTT client error - Ошибка клиента MQTT - - - - 0: At most once - 0: Не более одного раза - - - - 1: At least once - 1: Хотя бы раз - - - - 2: Exactly once - 2: Ровно раз - - - - - System default - Система по умолчанию - - - - Select CA file - Выберите файл CA - - - - Cannot open CA file! - Невозможно открыть файл CA! - - - - MQTT client SSL/TLS error, ignore? - Ошибка SSL/TLS клиента MQTT, игнорировать? - - - - MQTTConfiguration - - - MQTT Configuration - Конфигурация MQTT - - - - Version - Версия - - - - Mode - Режим - - - - QOS level - Уровень QOS - - - - Keep alive (s) - Время жизни (сек) - - - - Host - Хост - - - - Port - Порт - - - - Topic - Тема - - - - Retain - Сохранить - - - - MQTT topic - Тема MQTT - - - - Add retain flag - Добавить флаг удержания - - - - User - Пользователь - - - - Password - Пароль - - - - MQTT username - Имя пользователя MQTT - - - - MQTT password - Пароль MQTT - - - - Enable SSL/TLS: - Включить SSL/TLS: - - - - Certificate: - Сертификат: - - - - Use system database - Системная база данных - - - - Custom CA file - Выберите файл CA - - - - Protocol: - Протокол: - - - - CA file: - Файл CA: - - - - Disconnect - Отключить - - - - Connect - Подключиться - - - - Apply - Применить - - - - MapDelegate - - Center on coordinate - Центр на координате - - - - Menubar - - - File - Файл - - - - Select JSON file - Выберите файл JSON - - - - CSV export - Экспорт CSV - - - - Enable CSV export - Включить экспорт CSV - - - - Show CSV in explorer - Показать CSV в проводнике - - - - Replay CSV - Воспроизвести CSV - - - - Export console output - Экспортировать вывод консоли - - - - Quit - Выйти из - - - - Edit - Редактировать - - - - Copy - Копировать - - - - Select all - Выбрать все - - - - Clear console output - Очистить вывод консоли - - - - Communication mode - Режим связи - - - - Device sends JSON - Устройство отправляет JSON - - - - Load JSON from computer - Загрузить JSON с компьютера - - - - View - Просмотр - - - - - Console - Консоль - - - - Dashboard - Приборная панель - - - Widgets - Виджеты - - - - Show setup pane - Показать панель настроек - - - Hide menubar - Скрыть меню - - - Show menubar - Показать меню - - - - Exit full screen - Выход из полноэкранного режима - - - - Enter full screen - Вход в полный экран - - - - Autoscroll - Автопрокрутка - - - - Show timestamp - Показать метку времени - - - - VT-100 emulation - Эмуляция VT-100 - - - - Echo user commands - Эхо-команды пользователя - - - - Display mode - Режим отображения - - - - Normal (plain text) - Обычный (простой текст) - - - - Binary (hexadecimal) - Двоичный (шестнадцатеричный) - - - - Line ending character - Символ окончания строки - - - - Help - Справка - - - - - About %1 - О %1 - - - - Auto-updater - Автообновление - - - - Check for updates - Проверка наличия обновлений - - - - Project website - Веб-сайт проекта - - - - Documentation/wiki - Документация/вики - - - Show log file - Показать файл журнала - - - - Report bug - Сообщить об ошибке - - - - Print - Печать - - - - MenubarMacOS - - - File - Файл - - - - Select JSON file - Выберите файл JSON - - - - CSV export - Экспорт CSV - - - - Enable CSV export - Включить экспорт CSV - - - - Show CSV in explorer - Показать CSV в проводнике - - - - Replay CSV - Воспроизвести CSV - - - - Export console output - Экспортировать вывод консоли - - - - Quit - Выйти из - - - - Edit - Редактировать - - - - Copy - Копировать - - - - Select all - Выбрать все - - - - Clear console output - Очистить вывод консоли - - - - Communication mode - Режим связи - - - - Device sends JSON - Устройство отправляет JSON - - - - Load JSON from computer - Загрузить JSON с компьютера - - - - View - Просмотр - - - - - Console - Консоль - - - - Dashboard - Приборная панель - - - Widgets - Виджеты - - - - Show setup pane - Показать панель настроек - - - - Exit full screen - Выход из полноэкранного режима - - - - Enter full screen - Вход в полный экран - - - - Autoscroll - Автопрокрутка - - - - Show timestamp - Показать метку времени - - - - VT-100 emulation - Эмуляция VT-100 - - - - Echo user commands - Эхо-команды пользователя - - - - Display mode - Режим отображения - - - - Normal (plain text) - Обычный (простой текст) - - - - Binary (hexadecimal) - Двоичный (шестнадцатеричный) - - - - Line ending character - Символ окончания строки - - - - Help - Справка - - - - - About %1 - О %1 - - - - Auto-updater - Автообновление - - - - Check for updates - Проверка наличия обновлений - - - - Project website - Веб-сайт проекта - - - - Documentation/wiki - Документация/вики - - - Show log file - Показать файл журнала - - - - Report bug - Сообщить об ошибке - - - - Print - Печать - - - - Misc::MacExtras - - - Setup - Установка - - - - Console - Консоль - - - Widgets - Виджеты - - - - Dashboard - Приборная панель - - - - Misc::ModuleManager - - Initializing... - Инициализация... - - - Configuring updater... - Настройка программы обновления... - - - Initializing modules... - Инициализация модулей... - - - Loading user interface... - Загрузка пользовательского интерфейса... - - - The rendering engine change will take effect after restart - Изменение механизма рендеринга вступит в силу после перезапуска - - - - Unknown OS - - - - - The change will take effect after restart - - - - - Do you want to restart %1 now? - Хотите ли вы перезапустить %1 сейчас? - - - - Misc::ThemeManager - - - The theme change will take effect after restart - Изменение темы вступит в силу после перезапуска - - - - Do you want to restart %1 now? - Хотите ли вы перезапустить %1 сейчас? - - - - Misc::Utilities - - - Check for updates automatically? - Проверять обновления автоматически? - - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - Должен ли %1 автоматически проверять наличие обновлений? Вы всегда можете проверить наличие обновлений вручную из меню "Помощь" - - - - Ok - Ок - - - - Save - Сохранить - - - - Save all - Сохранить все - - - - Open - Открыть - - - - Yes - Да - - - - Yes to all - Да всем - - - - No - Нет - - - - No to all - Нет всем - - - - Abort - Прервать - - - - Retry - Повторная попытка - - - - Ignore - Игнорировать - - - - Close - Закрыть - - - - Cancel - Отмена - - - - Discard - Отбросить - - - - Help - Справка - - - - Apply - Применить - - - - Reset - Сбросить - - - - Restore defaults - Восстановление по умолчанию - - - - ModuleManager - - Initializing... - Инициализация... - - - Configuring updater... - Настройка программы обновления... - - - Initializing modules... - Инициализация модулей... - - - Starting timers... - Стартовые таймеры... - - - Loading user interface... - Загрузка пользовательского интерфейса... - - - The rendering engine change will take effect after restart - Изменение механизма рендеринга вступит в силу после перезапуска - - - Do you want to restart %1 now? - Хотите ли вы перезапустить %1 сейчас? - - - - Network - - - Socket type - Тип сокета - - - - Port - Порт - - - Host - Хост - - - - Multicast - Мультикаст - - - - Remote address - Удаленный адрес - - - - Local port - Локальный порт - - - - Type 0 for automatic port - Запишите 0 для автоматического номера порта - - - - Remote port - Удаленный порт - - - - Ignore data delimiters - Игнорировать разделители - - - - Plugins::Bridge - - Unable to start plugin TCP server - Невозможно запустить TCP-сервер плагина - - - Plugin server - Сервер плагина - - - Invalid pending connection - Недействительное ожидающее соединение - - - - Plugins::Server - - - Unable to start plugin TCP server - Невозможно запустить TCP-сервер плагина - - - - Plugin server - Сервер плагина - - - - Invalid pending connection - Недействительное ожидающее соединение - - - - Project::CodeEditor - - - New - - - - - Open - Открыть - - - - Save - Сохранить - - - - Undo - - - - - Redo - - - - - Cut - - - - - Copy - Копировать - - - - Paste - - - - - Help - Справка - - - - Customize frame parser - - - - - - - The document has been modified! - - - - - - Are you sure you want to continue? - - - - - Select Javascript file to import - - - - - Frame parser code updated successfully! - - - - - No errors have been detected in the code. - - - - - Frame parser error! - - - - - No parse() function has been declared! - - - - - Frame parser syntax error! - - - - - Error on line %1. - - - - - Generic error - - - - - Evaluation error - - - - - Range error - - - - - Reference error - - - - - Syntax error - - - - - Type error - - - - - URI error - - - - - Unknown error - Неизвестная ошибка - - - - Frame parser error detected! - - - - - Do you want to save the changes? - - - - - Project::Model - - - Dataset widgets - Виджеты набора данных - - - - - Accelerometer - Акселерометр - - - - - Gyroscope - Гироскоп - - - - - GPS - GPS - - - - Multiple data plot - График множественных данных - - - - None - Нет - - - - Gauge - Измеритель - - - - Bar/level - Бар/уровень - - - - Compass - Компас - - - - New Project - Новый проект - - - - Do you want to save your changes? - Вы хотите сохранить изменения? - - - - You have unsaved modifications in this project! - У вас есть несохраненные изменения в этом проекте! - - - - Project error - Ошибка проекта - - - - Project title cannot be empty! - Название проекта не может быть пустым! - - - - Project error - Group %1 - Ошибка проекта - Группа %1 - - - - Group title cannot be empty! - Название группы не может быть пустым! - - - - Project error - Group %1, Dataset %2 - Ошибка проекта - Группа %1, набор данных %2 - - - - Dataset title cannot be empty! - Название набора данных не может быть пустым! - - - - Warning - Group %1, Dataset %2 - Предупреждение - Группа %1, набор данных %2 - - - - Dataset contains duplicate frame index position! Continue? - Набор данных содержит дублирующуюся позицию индекса кадра! Продолжить? - - - - Save JSON project - Сохранить проект JSON - - - - File open error - Ошибка открытия файла - - - - Select JSON file - Выберите файл JSON - - - - New Group - Новая группа - - - - Delete group "%1" - Удалить группу "%1" - - - - Are you sure you want to delete this group? - Вы уверены, что хотите удалить эту группу? - - - - Are you sure you want to change the group-level widget? - Вы уверены, что хотите изменить виджет на уровне группы? - - - - Existing datasets for this group will be deleted - Существующие наборы данных для этой группы будут удалены - - - - - - Accelerometer %1 - Акселерометр %1 - - - - - - Gyro %1 - Гироскоп %1 - - - - Latitude - Широта - - - - Longitude - Долгота - - - - Altitude - Высота - - - - New dataset - Новый набор данных - - - - Delete dataset "%1" - Удалить набор данных "%1" - - - - Are you sure you want to delete this dataset? - Вы уверены, что хотите удалить этот набор данных? - - - - ProjectEditor - - - Project Editor - %1 - - - - - Start something awesome - Начните что-то потрясающее - - - - Click on the "Add group" button to begin - Нажмите на кнопку "Добавить группу", чтобы начать - - - - QObject - - - Failed to load welcome text :( - Не удалось загрузить приветственный текст :( - - - - QwtPlotRenderer - - - - - Documents - Документы - - - - Images - Изображения - - - - Export File Name - Имя файла экспорта - - - - QwtPolarRenderer - - - - - Documents - Документы - - - - Images - Изображения - - - - Export File Name - Имя файла экспорта - - - - Serial - - - COM Port - COM-порт - - - - Baud Rate - Скорость передачи - - - - Data Bits - Биты данных - - - - Parity - Четность - - - - Stop Bits - Стоп-биты - - - - Flow Control - Управление потоком - - - - Auto-reconnect - Автоподключение - - - - SerialManager - - No Device - Нет Устройство - - - Select Port - Выберите порт - - - - Settings - - - Language - Язык - - - Start sequence - Код начала кадра - - - End sequence - Код конца кадра - - - - Plugin system - Система плагинов - - - - Software rendering - - - - - Applications/plugins can interact with %1 by establishing a TCP connection on port 7777. - Приложения/плагины могут взаимодействовать с %1, устанавливая TCP-соединение на порту 7777. - - - - Theme - Тема - - - Data separator - Разделитель данных - - - UI refresh rate - Частота обновления - - - Rendering engine - Механизм рендеринга - - - Threaded frame parsing - Многопоточный анализ кадров - - - Multithreaded frame parsing - Многопоточный анализ кадров - - - - Custom window decorations - Украшения для окон - - - - Setup - - - Communication Mode - Режим связи - - - Auto (JSON from serial device) - Авто (JSON с последовательного устройства) - - - Manual (use JSON map file) - Вручную (использование файла карты JSON) - - - Change map file (%1) - Изменить файл карты (%1) - - - Select map file - Выберите файл карты - - - COM Port - COM-порт - - - Baud Rate - Скорость передачи данных - - - Data Bits - Биты данных - - - Stop Bits - Стоп-биты - - - Flow Control - Управление потоком - - - - Create CSV file - Создать CSV-файл - - - Serial - Серийный - - - Network - Сеть - - - - Settings - Настройки - - - - MQTT - MQTT - - - - Setup - Установка - - - - No parsing (device sends JSON data) - Устройство отправляет данные в формате JSON - - - - Parse via JSON project file - Используйте JSON файл проекта - - - - Change project file (%1) - Изменить файл проекта (%1) - - - - Select project file - Выберите файл проекта - - - - Device - - - - - Terminal - - - Copy - Копировать - - - - Select all - Выбрать все - - - - Clear - Очистить - - - - Print - Печать - - - - Save as - Сохранить как - - - Hide menubar - Скрыть меню - - - Show menubar - Показать меню - - - - No data received so far - Данные пока не получены - - - - Send data to device - Отправьте данные на устройство - - - - Echo - Эхо - - - - Autoscroll - Автопрокрутка - - - - Show timestamp - Показать метку времени - - - - Toolbar - - - Console - Консоль - - - Widgets - Виджеты - - - - Dashboard - Приборная панель - - - - Open CSV - Открыть CSV - - - - Setup - Установка - - - - Project Editor - - - - - Disconnect - Отключить - - - - Connect - Подключиться - - - JSON Editor - Редактор JSON - - - - TreeView - - - JSON Project Tree - JSON Дерево проекта - - - - UI::Dashboard - - - Status Panel - Панель состояния - - - - UI::DashboardWidget - - - Invalid - Неверный - - - - UI::WidgetLoader - - Invalid - Неверный - - - - Updater - - - Would you like to download the update now? - Хотите загрузить обновление сейчас? - - - - Would you like to download the update now? This is a mandatory update, exiting now will close the application - Вы хотите загрузить обновление сейчас? Это обязательное обновление, выход сейчас приведет к закрытию приложения - - - - Version %1 of %2 has been released! - Выпущена версия %1 от %2! - - - - No updates are available for the moment - На данный момент обновления недоступны - - - - Congratulations! You are running the latest version of %1 - Поздравляем! Вы используете последнюю версию %1 - - - - ViewOptions - - - View - Просмотр - - - Plot divisions (%1) - Подразделения (%1) - - - - Datasets - Датасеты - - - - Multiple data plots - Несколько графиков данных - - - - FFT plots - Графики FFT - - - - Data plots - Графики данных - - - - Bars - Бары - - - - Gauges - Манометры - - - - Compasses - Компасы - - - - Gyroscopes - Гироскопы - - - - Accelerometers - Акселерометры - - - - GPS - GPS - - - - LED Panels - LED-панели - - - View options - Опт визуализации - - - - Points: - Баллы: - - - Widgets: - Виджеты: - - - - Visualization options - Варианты визуализации - - - - Decimal places: - Десятичные разряды: - - - - Widget size: - Размер виджетов: - - - - WidgetGrid - - - Data - Данные - - - - Widgets - - View - Просмотр - - - Widgets - Виджеты - - - - Widgets::FFTPlot - - - Samples - Образцы - - - - FFT of %1 - FFT для %1 - - - - Widgets::GPS - - Latitude - Широта - - - Longitude - Долгота - - - Altitude - Высота - - - Loading... - Загрузка... - - - Double-click to open map - Дважды щелкните, чтобы открыть карту - - - - Widgets::MultiPlot - - - Unknown - Неизвестно - - - - Samples - Образцы - - - - Widgets::Plot - - - Samples - Образцы - - - - Widgets::WidgetLoader - - Invalid - Неверный - - - diff --git a/app/translations/translation_manager.py b/app/translations/translation_manager.py new file mode 100644 index 00000000..b29b21a5 --- /dev/null +++ b/app/translations/translation_manager.py @@ -0,0 +1,158 @@ +# +# Copyright (c) 2024 Alex Spataru +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +import os +import subprocess +import argparse + +def run_lupdate(ts_dir, app_sources, lib_sources): + """ + Run lupdate to update the .ts files. + """ + ts_files = [os.path.join(ts_dir, file) for file in os.listdir(ts_dir) if file.endswith('.ts')] + + if not ts_files: + print(f"No .ts files found in {ts_dir}.") + return + + all_sources = app_sources + lib_sources + command = ['lupdate'] + all_sources + ['-ts'] + ts_files + + print("Running lupdate command:", ' '.join(command)) + + try: + subprocess.run(command, check=True) + print("lupdate completed successfully, obsolete entries removed.") + except subprocess.CalledProcessError as e: + print(f"lupdate failed with error code: {e.returncode}") + print(e.output) + + +def run_lrelease(ts_dir, qm_dir): + """ + Run lrelease to compile the .ts files into .qm files. + """ + ts_files = [os.path.join(ts_dir, file) for file in os.listdir(ts_dir) if file.endswith('.ts')] + if not ts_files: + print(f"No .ts files found in {ts_dir}.") + return + + if not os.path.exists(qm_dir): + os.makedirs(qm_dir) + + for ts_file in ts_files: + qm_file = os.path.join(qm_dir, os.path.splitext(os.path.basename(ts_file))[0] + '.qm') + command = ['lrelease', ts_file, '-qm', qm_file] + + print("Running lrelease command:", ' '.join(command)) + + try: + subprocess.run(command, check=True) + print(f"lrelease completed successfully, created {qm_file}") + except subprocess.CalledProcessError as e: + print(f"lrelease failed with error code: {e.returncode}") + print(e.output) + + +def create_ts(language, ts_dir, app_sources, lib_sources): + """ + Create a new .ts file for the given language code. + """ + new_ts_file = os.path.join(ts_dir, f"{language}.ts") + + if os.path.exists(new_ts_file): + print(f"The .ts file for language '{language}' already exists.") + return + + print(f"Creating new .ts file: {new_ts_file}") + all_sources = app_sources + lib_sources + command = ['lupdate', '-source-language', 'en_US', '-target-language', language] + all_sources + ['-ts', new_ts_file] + + try: + subprocess.run(command, check=True) + print(f"New .ts file {new_ts_file} created successfully.") + except subprocess.CalledProcessError as e: + print(f"lupdate failed with error code: {e.returncode}") + print(e.output) + + +def collect_sources(app_dir, lib_dir): + """ + Collect all relevant .cpp, .h, and .qml files from app and lib directories. + """ + app_sources = [] + for root, _, files in os.walk(app_dir): + for file in files: + if file.endswith(('.cpp', '.h', '.qml')): + app_sources.append(os.path.join(root, file)) + + lib_sources = [] + if os.path.exists(lib_dir): + for root, _, files in os.walk(lib_dir): + for file in files: + if file.endswith(('.cpp', '.h')): + lib_sources.append(os.path.join(root, file)) + + return app_sources, lib_sources + + +if __name__ == "__main__": + # Set up argument parser + parser = argparse.ArgumentParser(description="Manage translations with lupdate and lrelease.") + + parser.add_argument('--new-ts', metavar='LANGUAGE', help='Create a new .ts file for the given language code (e.g., "es" for Spanish).') + parser.add_argument('--lupdate', action='store_true', help='Run lupdate to update all existing .ts files.') + parser.add_argument('--lrelease', action='store_true', help='Run lrelease to compile .ts files into .qm files.') + + args = parser.parse_args() + + if not any(vars(args).values()): + # If no arguments are passed, print the help message + parser.print_help() + exit(0) + + # Define paths + translations_dir = os.path.dirname(os.path.abspath(__file__)) + app_dir = os.path.dirname(os.path.dirname(translations_dir)) + lib_dir = os.path.join(os.path.dirname(app_dir), 'lib') + ts_dir = os.path.join(translations_dir, 'ts') + qm_dir = os.path.join(translations_dir, 'qm') + + # Ensure the translations/ts directory exists + if not os.path.exists(ts_dir): + print(f"Error: {ts_dir} directory does not exist.") + exit(1) + + # Collect source files from app and lib directories + app_sources, lib_sources = collect_sources(app_dir, lib_dir) + + # Handle --new-ts option + if args.new_ts: + create_ts(args.new_ts, ts_dir, app_sources, lib_sources) + + # Handle --lupdate option + if args.lupdate: + run_lupdate(ts_dir, app_sources, lib_sources) + + # Handle --lrelease option + if args.lrelease: + run_lrelease(ts_dir, qm_dir) diff --git a/app/translations/translations.qrc b/app/translations/translations.qrc new file mode 100644 index 00000000..79fa68e1 --- /dev/null +++ b/app/translations/translations.qrc @@ -0,0 +1,9 @@ + + + qm/de_DE.qm + qm/en_US.qm + qm/es_MX.qm + qm/ru_RU.qm + qm/zh_CN.qm + + diff --git a/app/translations/ts/de_DE.ts b/app/translations/ts/de_DE.ts new file mode 100644 index 00000000..58fde760 --- /dev/null +++ b/app/translations/ts/de_DE.ts @@ -0,0 +1,2448 @@ + + + + + About + + + About + + + + + Version %1 + + + + + Copyright © 2020-%1 %2, released under the MIT License. + + + + + The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + + + + Website + + + + + Check for Updates + + + + + Make a Donation + + + + + Report Bug + + + + + Documentation + + + + + Acknowledgements + + + + + Close + + + + + Acknowledgements + + + Acknowledgements + + + + + Close + + + + + BluetoothLE + + + Device + + + + + Service + + + + + Scanning.... + + + + + Sorry, this system is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. + + + + + CSV::Export + + + CSV file not open + + + + + Cannot find CSV export file! + + + + + CSV File Error + + + + + Cannot open CSV file for writing! + + + + + CSV::Player + + + Select CSV file + + + + + CSV files + + + + + Serial port open, do you want to continue? + + + + + In order to use this feature, its necessary to disconnect from the serial port + + + + + Cannot read CSV file + + + + + Please check file permissions & location + + + + + Console + + + Console + + + + + CsvPlayer + + + CSV Player + + + + + DatasetView + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Donate + + + + Donate + + + + + Later + + + + + Close + + + + + Support the development of %1! + + + + + Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) + + + + + You can also support this project by sharing it, reporting bugs and proposing new features! + + + + + Don't annoy me again! + + + + + Downloader + + + Stop + + + + + + Downloading updates + + + + + + Time remaining + + + + + unknown + + + + + Error + + + + + Cannot find downloaded update! + + + + + Close + + + + + Download complete! + + + + + The installer will open separately + + + + + Click "OK" to begin installing the update + + + + + In order to install the update, you may need to quit the application. + + + + + In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application + + + + + Click the "Open" button to apply the update + + + + + Updater + + + + + Are you sure you want to cancel the download? + + + + + Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application + + + + + + %1 bytes + + + + + + %1 KB + + + + + + %1 MB + + + + + of + + + + + Downloading Updates + + + + + Time Remaining + + + + + Unknown + + + + + about %1 hours + + + + + about one hour + + + + + %1 minutes + + + + + 1 minute + + + + + %1 seconds + + + + + 1 second + + + + + ExternalConsole + + + Console + + + + + FrameParserView + + + + Undo + + + + + + Redo + + + + + + Cut + + + + + + Copy + + + + + + Paste + + + + + Select All + + + + + Reset + + + + + Import + + + + + Apply + + + + + Help + + + + + GpsMap + + + Map Type: + + + + + Center on coordinate + + + + + GroupView + + + Dataset + + + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Let's Add Some Datasets + + + + + Datasets describe individual readings (e.g. X, Y, Z in an accelerometer). +Use the toolbar buttons above to add a dataset to this group. + + + + + IO::Console + + + ASCII + + + + + HEX + + + + + No Line Ending + + + + + New Line + + + + + Carriage Return + + + + + CR + NL + + + + + Plain Text + + + + + Hexadecimal + + + + + Export Console Data + + + + + Text Files + + + + + Error while exporting console data + + + + + IO::Drivers::BluetoothLE + + + The BLE device has been disconnected + + + + + Select Device + + + + + Select Service + + + + + Error while configuring BLE service + + + + + Operation error + + + + + Characteristic write error + + + + + Descriptor write error + + + + + Unknown error + + + + + Characteristic read error + + + + + Descriptor read error + + + + + Bluetooth adapter is off! + + + + + Invalid Bluetooth adapter! + + + + + Unsuported platform or operating system + + + + + Unsupported discovery method + + + + + General I/O error + + + + + IO::Drivers::Network + + + Network socket error + + + + + IO::Drivers::Serial + + + + + + None + + + + + No Device + + + + + + Select Port + + + + + Even + + + + + Odd + + + + + Space + + + + + Mark + + + + + RTS/CTS + + + + + XON/XOFF + + + + + Baud rate registered successfully + + + + + Rate "%1" has been added to baud rate list + + + + + IO::Manager + + + Serial Port + + + + + Network Socket + + + + + Bluetooth LE + + + + + JSON::Generator + + + Select JSON map file + + + + + JSON files + + + + + JSON parse error + + + + + Cannot read JSON file + + + + + Please check file permissions & location + + + + + JSONDropArea + + + Drop JSON and CSV files here + + + + + KLed + + + LED on + Accessible name of a Led whose state is on + + + + + LED off + Accessible name of a Led whose state is off + + + + + MQTT::Client + + + 0: At most once + + + + + 1: At least once + + + + + 2: Exactly once + + + + + Publisher + + + + + Subscriber + + + + + + System default + + + + + Select CA file + + + + + Cannot open CA file! + + + + + IP address lookup error + + + + + Unknown error + + + + + Connection refused + + + + + Remote host closed the connection + + + + + Host not found + + + + + Socket access error + + + + + Socket resource error + + + + + Socket timeout + + + + + Socket datagram too large + + + + + Network error + + + + + Address in use + + + + + Address not available + + + + + Unsupported socket operation + + + + + Unfinished socket operation + + + + + Proxy authentication required + + + + + SSL handshake failed + + + + + Proxy connection refused + + + + + Proxy connection closed + + + + + Proxy connection timeout + + + + + Proxy not found + + + + + Proxy protocol error + + + + + Operation error + + + + + SSL internal error + + + + + Invalid SSL user data + + + + + Socket temprary error + + + + + Unacceptable MQTT protocol + + + + + MQTT identifier rejected + + + + + MQTT server unavailable + + + + + Bad MQTT username or password + + + + + MQTT authorization error + + + + + MQTT no ping response + + + + + MQTT client error + + + + + MQTT client SSL/TLS error, ignore? + + + + + MQTTConfiguration + + + MQTT Setup + + + + + Version + + + + + Mode + + + + + QOS Level + + + + + Keep Alive (s) + + + + + Host + + + + + Port + + + + + Topic + + + + + Retain + + + + + MQTT Topic + + + + + Add Retain Flag + + + + + User + + + + + Password + + + + + MQTT Username + + + + + MQTT Password + + + + + Enable SSL/TLS: + + + + + Certificate: + + + + + Use System Database + + + + + Custom CA File + + + + + Protocol: + + + + + Close + + + + + Disconnect + + + + + Connect + + + + + Misc::Utilities + + + Check for updates automatically? + + + + + Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu + + + + + Ok + + + + + Save + + + + + Save all + + + + + Open + + + + + Yes + + + + + Yes to all + + + + + No + + + + + No to all + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Close + + + + + Cancel + + + + + Discard + + + + + Help + + + + + Apply + + + + + Reset + + + + + Restore defaults + + + + + Network + + + Socket type + + + + + Remote address + + + + + Port + + + + + Local port + + + + + Type 0 for automatic port + + + + + Remote port + + + + + Multicast + + + + + Ignore data delimiters + + + + + Plugins::Server + + + Unable to start plugin TCP server + + + + + Plugin server + + + + + Invalid pending connection + + + + + Project::FrameParser + + + + The document has been modified! + + + + + + Are you sure you want to continue? + + + + + Select Javascript file to import + + + + + Frame parser code updated successfully! + + + + + No errors have been detected in the code. + + + + + Frame parser error! + + + + + No parse() function has been declared! + + + + + Frame parser syntax error! + + + + + Error on line %1. + + + + + Generic error + + + + + Evaluation error + + + + + Range error + + + + + Reference error + + + + + Syntax error + + + + + Type error + + + + + URI error + + + + + Unknown error + + + + + Frame parser error detected! + + + + + Project::Model + + + New Project + + + + + Do you want to save your changes? + + + + + You have unsaved modifications in this project! + + + + + Project error + + + + + Project title cannot be empty! + + + + + Save JSON project + + + + + File open error + + + + + + Untitled Project + + + + + Select JSON file + + + + + Do you want to delete group "%1"? + + + + + + This action cannot be undone. Do you wish to proceed? + + + + + Do you want to delete dataset "%1"? + + + + + + %1 (Copy) + + + + + New Dataset + + + + + New Plot + + + + + New FFT Plot + + + + + New Bar Widget + + + + + New Gauge + + + + + New Compass + + + + + New LED Indicator + + + + + Are you sure you want to change the group-level widget? + + + + + Existing datasets for this group will be deleted + + + + + + + Accelerometer %1 + + + + + + + Gyro %1 + + + + + Latitude + + + + + Longitude + + + + + Altitude + + + + + Frame Parser Function + + + + + + + Title + + + + + Project name/description + + + + + Separator Sequence + + + + + String used to split items in a frame + + + + + Frame Start Delimeter + + + + + String marking the start of a frame + + + + + Frame End Delimeter + + + + + String marking the end of a frame + + + + + Data Conversion Method + + + + + Input data format for frame parser + + + + + Thunderforest API Key + + + + + + + None + + + + + Required for GPS map widget + + + + + Untitled Group + + + + + Name or description of the group + + + + + + Widget + + + + + Group display widget (optional) + + + + + Untitled Dataset + + + + + Name or description of the dataset + + + + + Frame Index + + + + + Position in the frame + + + + + Measurement Unit + + + + + Volts, Amps, etc. + + + + + Unit of measurement (optional) + + + + + Display widget (optional) + + + + + Minimum Value + + + + + + Required for bar/gauge widgets + + + + + Maximum Value + + + + + Alarm Value + + + + + Triggers alarm in bar widgets and LED panels + + + + + Oscilloscope Plot + + + + + Plot data in real-time + + + + + FFT Plot + + + + + Plot frequency-domain data + + + + + FFT Window Size + + + + + Samples for FFT calculation + + + + + Show in LED Panel + + + + + Quick status monitoring + + + + + LED High (On) Value + + + + + Threshold for LED on + + + + + Normal (UTF8) + + + + + Hexadecimal + + + + + Base64 + + + + + Data Grid + + + + + GPS Map + + + + + Gyroscope + + + + + Multiple Plot + + + + + Accelerometer + + + + + Bar + + + + + Gauge + + + + + Compass + + + + + No + + + + + Linear Plot + + + + + Logarithmic Plot + + + + + ProjectStructure + + + Project Structure + + + + + IDX → %1 + + + + + ProjectView + + + Start Building Now! + + + + + Get started by adding a group with the toolbar buttons above. + + + + + QObject + + + Failed to load welcome text :( + + + + + QwtPlotRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + QwtPolarRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + Root + + + %1 - %2 + + + + + Device Defined Project + + + + + Empty Project + + + + + %1 - Project Editor + + + + + modified + + + + + Serial + + + COM Port + + + + + Baud Rate + + + + + Data Bits + + + + + Parity + + + + + Stop Bits + + + + + Flow Control + + + + + Auto Reconnect + + + + + Send DTR Signal + + + + + Settings + + + Language + + + + + Theme + + + + + Plugin System + + + + + Using the plugin system, other applications & scripts can interact with %1 by establishing a TCP connection on port 7777. + + + + + Setup + + + Setup + + + + + Device Setup + + + + + I/O Interface: %1 + + + + + Create CSV File + + + + + Frame Parsing + + + + + No Parsing (Device Sends JSON Data) + + + + + Parse via JSON Project File + + + + + Change Project File (%1) + + + + + Select Project File + + + + + Device + + + + + Settings + + + + + TableDelegate + + + Parameter + + + + + Value + + + + + Parameter Description + + + + + No + + + + + Yes + + + + + Terminal + + + Copy + + + + + Select all + + + + + Clear + + + + + Print + + + + + Save as + + + + + No data received so far + + + + + Send Data to Device + + + + + Echo + + + + + Autoscroll + + + + + Show Timestamp + + + + + Emulate VT-100 + + + + + Display: %1 + + + + + Toolbar + + + Project Editor + + + + + CSV Player + + + + + Setup + + + + + Console + + + + + Widgets + + + + + Dashboard + + + + + MQTT + + + + + Help + + + + + About + + + + + + Disconnect + + + + + Connect + + + + + New Project + + + + + Load Project + + + + + Save Project + + + + + + Data Grid + + + + + Multiple Plots + + + + + Multiple Plot + + + + + + Accelerometer + + + + + + Gyroscope + + + + + Map + + + + + GPS Map + + + + + Container + + + + + Dataset Container + + + + + UI::Dashboard + + + Status Panel + + + + + UI::DashboardWidget + + + Invalid + + + + + Updater + + + Would you like to download the update now? + + + + + Would you like to download the update now? This is a mandatory update, exiting now will close the application + + + + + Version %1 of %2 has been released! + + + + + No updates are available for the moment + + + + + Congratulations! You are running the latest version of %1 + + + + + ViewOptions + + + Widget Setup + + + + + Visualization Options + + + + + Points: + + + + + Decimal places: + + + + + Columns: + + + + + Data Grids + + + + + Multiple Data Plots + + + + + LED Panels + + + + + FFT Plots + + + + + Data Plots + + + + + Bars + + + + + Gauges + + + + + Compasses + + + + + Gyroscopes + + + + + Accelerometers + + + + + GPS + + + + + Clear Dashboard Data + + + + + Display Console Window + + + + + WidgetGrid + + + Dashboard + + + + + Widgets::FFTPlot + + + Frequency (Hz) + + + + + Magnitude (dB) + + + + + Widgets::MultiPlot + + + Unknown + + + + + Samples + + + + + Widgets::Plot + + + Samples + + + + diff --git a/app/translations/ts/en_US.ts b/app/translations/ts/en_US.ts new file mode 100644 index 00000000..b93e8672 --- /dev/null +++ b/app/translations/ts/en_US.ts @@ -0,0 +1,2448 @@ + + + + + About + + + About + + + + + Version %1 + + + + + Copyright © 2020-%1 %2, released under the MIT License. + + + + + The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + + + + Website + + + + + Check for Updates + + + + + Make a Donation + + + + + Report Bug + + + + + Documentation + + + + + Acknowledgements + + + + + Close + + + + + Acknowledgements + + + Acknowledgements + + + + + Close + + + + + BluetoothLE + + + Device + + + + + Service + + + + + Scanning.... + + + + + Sorry, this system is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. + + + + + CSV::Export + + + CSV file not open + + + + + Cannot find CSV export file! + + + + + CSV File Error + + + + + Cannot open CSV file for writing! + + + + + CSV::Player + + + Select CSV file + + + + + CSV files + + + + + Serial port open, do you want to continue? + + + + + In order to use this feature, its necessary to disconnect from the serial port + + + + + Cannot read CSV file + + + + + Please check file permissions & location + + + + + Console + + + Console + + + + + CsvPlayer + + + CSV Player + + + + + DatasetView + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Donate + + + + Donate + + + + + Later + + + + + Close + + + + + Support the development of %1! + + + + + Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) + + + + + You can also support this project by sharing it, reporting bugs and proposing new features! + + + + + Don't annoy me again! + + + + + Downloader + + + Stop + + + + + + Downloading updates + + + + + + Time remaining + + + + + unknown + + + + + Error + + + + + Cannot find downloaded update! + + + + + Close + + + + + Download complete! + + + + + The installer will open separately + + + + + Click "OK" to begin installing the update + + + + + In order to install the update, you may need to quit the application. + + + + + In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application + + + + + Click the "Open" button to apply the update + + + + + Updater + + + + + Are you sure you want to cancel the download? + + + + + Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application + + + + + + %1 bytes + + + + + + %1 KB + + + + + + %1 MB + + + + + of + + + + + Downloading Updates + + + + + Time Remaining + + + + + Unknown + + + + + about %1 hours + + + + + about one hour + + + + + %1 minutes + + + + + 1 minute + + + + + %1 seconds + + + + + 1 second + + + + + ExternalConsole + + + Console + + + + + FrameParserView + + + + Undo + + + + + + Redo + + + + + + Cut + + + + + + Copy + + + + + + Paste + + + + + Select All + + + + + Reset + + + + + Import + + + + + Apply + + + + + Help + + + + + GpsMap + + + Map Type: + + + + + Center on coordinate + + + + + GroupView + + + Dataset + + + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Let's Add Some Datasets + + + + + Datasets describe individual readings (e.g. X, Y, Z in an accelerometer). +Use the toolbar buttons above to add a dataset to this group. + + + + + IO::Console + + + ASCII + + + + + HEX + + + + + No Line Ending + + + + + New Line + + + + + Carriage Return + + + + + CR + NL + + + + + Plain Text + + + + + Hexadecimal + + + + + Export Console Data + + + + + Text Files + + + + + Error while exporting console data + + + + + IO::Drivers::BluetoothLE + + + The BLE device has been disconnected + + + + + Select Device + + + + + Select Service + + + + + Error while configuring BLE service + + + + + Operation error + + + + + Characteristic write error + + + + + Descriptor write error + + + + + Unknown error + + + + + Characteristic read error + + + + + Descriptor read error + + + + + Bluetooth adapter is off! + + + + + Invalid Bluetooth adapter! + + + + + Unsuported platform or operating system + + + + + Unsupported discovery method + + + + + General I/O error + + + + + IO::Drivers::Network + + + Network socket error + + + + + IO::Drivers::Serial + + + + + + None + + + + + No Device + + + + + + Select Port + + + + + Even + + + + + Odd + + + + + Space + + + + + Mark + + + + + RTS/CTS + + + + + XON/XOFF + + + + + Baud rate registered successfully + + + + + Rate "%1" has been added to baud rate list + + + + + IO::Manager + + + Serial Port + + + + + Network Socket + + + + + Bluetooth LE + + + + + JSON::Generator + + + Select JSON map file + + + + + JSON files + + + + + JSON parse error + + + + + Cannot read JSON file + + + + + Please check file permissions & location + + + + + JSONDropArea + + + Drop JSON and CSV files here + + + + + KLed + + + LED on + Accessible name of a Led whose state is on + + + + + LED off + Accessible name of a Led whose state is off + + + + + MQTT::Client + + + 0: At most once + + + + + 1: At least once + + + + + 2: Exactly once + + + + + Publisher + + + + + Subscriber + + + + + + System default + + + + + Select CA file + + + + + Cannot open CA file! + + + + + IP address lookup error + + + + + Unknown error + + + + + Connection refused + + + + + Remote host closed the connection + + + + + Host not found + + + + + Socket access error + + + + + Socket resource error + + + + + Socket timeout + + + + + Socket datagram too large + + + + + Network error + + + + + Address in use + + + + + Address not available + + + + + Unsupported socket operation + + + + + Unfinished socket operation + + + + + Proxy authentication required + + + + + SSL handshake failed + + + + + Proxy connection refused + + + + + Proxy connection closed + + + + + Proxy connection timeout + + + + + Proxy not found + + + + + Proxy protocol error + + + + + Operation error + + + + + SSL internal error + + + + + Invalid SSL user data + + + + + Socket temprary error + + + + + Unacceptable MQTT protocol + + + + + MQTT identifier rejected + + + + + MQTT server unavailable + + + + + Bad MQTT username or password + + + + + MQTT authorization error + + + + + MQTT no ping response + + + + + MQTT client error + + + + + MQTT client SSL/TLS error, ignore? + + + + + MQTTConfiguration + + + MQTT Setup + + + + + Version + + + + + Mode + + + + + QOS Level + + + + + Keep Alive (s) + + + + + Host + + + + + Port + + + + + Topic + + + + + Retain + + + + + MQTT Topic + + + + + Add Retain Flag + + + + + User + + + + + Password + + + + + MQTT Username + + + + + MQTT Password + + + + + Enable SSL/TLS: + + + + + Certificate: + + + + + Use System Database + + + + + Custom CA File + + + + + Protocol: + + + + + Close + + + + + Disconnect + + + + + Connect + + + + + Misc::Utilities + + + Check for updates automatically? + + + + + Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu + + + + + Ok + + + + + Save + + + + + Save all + + + + + Open + + + + + Yes + + + + + Yes to all + + + + + No + + + + + No to all + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Close + + + + + Cancel + + + + + Discard + + + + + Help + + + + + Apply + + + + + Reset + + + + + Restore defaults + + + + + Network + + + Socket type + + + + + Remote address + + + + + Port + + + + + Local port + + + + + Type 0 for automatic port + + + + + Remote port + + + + + Multicast + + + + + Ignore data delimiters + + + + + Plugins::Server + + + Unable to start plugin TCP server + + + + + Plugin server + + + + + Invalid pending connection + + + + + Project::FrameParser + + + + The document has been modified! + + + + + + Are you sure you want to continue? + + + + + Select Javascript file to import + + + + + Frame parser code updated successfully! + + + + + No errors have been detected in the code. + + + + + Frame parser error! + + + + + No parse() function has been declared! + + + + + Frame parser syntax error! + + + + + Error on line %1. + + + + + Generic error + + + + + Evaluation error + + + + + Range error + + + + + Reference error + + + + + Syntax error + + + + + Type error + + + + + URI error + + + + + Unknown error + + + + + Frame parser error detected! + + + + + Project::Model + + + New Project + + + + + Do you want to save your changes? + + + + + You have unsaved modifications in this project! + + + + + Project error + + + + + Project title cannot be empty! + + + + + Save JSON project + + + + + File open error + + + + + + Untitled Project + + + + + Select JSON file + + + + + Do you want to delete group "%1"? + + + + + + This action cannot be undone. Do you wish to proceed? + + + + + Do you want to delete dataset "%1"? + + + + + + %1 (Copy) + + + + + New Dataset + + + + + New Plot + + + + + New FFT Plot + + + + + New Bar Widget + + + + + New Gauge + + + + + New Compass + + + + + New LED Indicator + + + + + Are you sure you want to change the group-level widget? + + + + + Existing datasets for this group will be deleted + + + + + + + Accelerometer %1 + + + + + + + Gyro %1 + + + + + Latitude + + + + + Longitude + + + + + Altitude + + + + + Frame Parser Function + + + + + + + Title + + + + + Project name/description + + + + + Separator Sequence + + + + + String used to split items in a frame + + + + + Frame Start Delimeter + + + + + String marking the start of a frame + + + + + Frame End Delimeter + + + + + String marking the end of a frame + + + + + Data Conversion Method + + + + + Input data format for frame parser + + + + + Thunderforest API Key + + + + + + + None + + + + + Required for GPS map widget + + + + + Untitled Group + + + + + Name or description of the group + + + + + + Widget + + + + + Group display widget (optional) + + + + + Untitled Dataset + + + + + Name or description of the dataset + + + + + Frame Index + + + + + Position in the frame + + + + + Measurement Unit + + + + + Volts, Amps, etc. + + + + + Unit of measurement (optional) + + + + + Display widget (optional) + + + + + Minimum Value + + + + + + Required for bar/gauge widgets + + + + + Maximum Value + + + + + Alarm Value + + + + + Triggers alarm in bar widgets and LED panels + + + + + Oscilloscope Plot + + + + + Plot data in real-time + + + + + FFT Plot + + + + + Plot frequency-domain data + + + + + FFT Window Size + + + + + Samples for FFT calculation + + + + + Show in LED Panel + + + + + Quick status monitoring + + + + + LED High (On) Value + + + + + Threshold for LED on + + + + + Normal (UTF8) + + + + + Hexadecimal + + + + + Base64 + + + + + Data Grid + + + + + GPS Map + + + + + Gyroscope + + + + + Multiple Plot + + + + + Accelerometer + + + + + Bar + + + + + Gauge + + + + + Compass + + + + + No + + + + + Linear Plot + + + + + Logarithmic Plot + + + + + ProjectStructure + + + Project Structure + + + + + IDX → %1 + + + + + ProjectView + + + Start Building Now! + + + + + Get started by adding a group with the toolbar buttons above. + + + + + QObject + + + Failed to load welcome text :( + + + + + QwtPlotRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + QwtPolarRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + Root + + + %1 - %2 + + + + + Device Defined Project + + + + + Empty Project + + + + + %1 - Project Editor + + + + + modified + + + + + Serial + + + COM Port + + + + + Baud Rate + + + + + Data Bits + + + + + Parity + + + + + Stop Bits + + + + + Flow Control + + + + + Auto Reconnect + + + + + Send DTR Signal + + + + + Settings + + + Language + + + + + Theme + + + + + Plugin System + + + + + Using the plugin system, other applications & scripts can interact with %1 by establishing a TCP connection on port 7777. + + + + + Setup + + + Setup + + + + + Device Setup + + + + + I/O Interface: %1 + + + + + Create CSV File + + + + + Frame Parsing + + + + + No Parsing (Device Sends JSON Data) + + + + + Parse via JSON Project File + + + + + Change Project File (%1) + + + + + Select Project File + + + + + Device + + + + + Settings + + + + + TableDelegate + + + Parameter + + + + + Value + + + + + Parameter Description + + + + + No + + + + + Yes + + + + + Terminal + + + Copy + + + + + Select all + + + + + Clear + + + + + Print + + + + + Save as + + + + + No data received so far + + + + + Send Data to Device + + + + + Echo + + + + + Autoscroll + + + + + Show Timestamp + + + + + Emulate VT-100 + + + + + Display: %1 + + + + + Toolbar + + + Project Editor + + + + + CSV Player + + + + + Setup + + + + + Console + + + + + Widgets + + + + + Dashboard + + + + + MQTT + + + + + Help + + + + + About + + + + + + Disconnect + + + + + Connect + + + + + New Project + + + + + Load Project + + + + + Save Project + + + + + + Data Grid + + + + + Multiple Plots + + + + + Multiple Plot + + + + + + Accelerometer + + + + + + Gyroscope + + + + + Map + + + + + GPS Map + + + + + Container + + + + + Dataset Container + + + + + UI::Dashboard + + + Status Panel + + + + + UI::DashboardWidget + + + Invalid + + + + + Updater + + + Would you like to download the update now? + + + + + Would you like to download the update now? This is a mandatory update, exiting now will close the application + + + + + Version %1 of %2 has been released! + + + + + No updates are available for the moment + + + + + Congratulations! You are running the latest version of %1 + + + + + ViewOptions + + + Widget Setup + + + + + Visualization Options + + + + + Points: + + + + + Decimal places: + + + + + Columns: + + + + + Data Grids + + + + + Multiple Data Plots + + + + + LED Panels + + + + + FFT Plots + + + + + Data Plots + + + + + Bars + + + + + Gauges + + + + + Compasses + + + + + Gyroscopes + + + + + Accelerometers + + + + + GPS + + + + + Clear Dashboard Data + + + + + Display Console Window + + + + + WidgetGrid + + + Dashboard + + + + + Widgets::FFTPlot + + + Frequency (Hz) + + + + + Magnitude (dB) + + + + + Widgets::MultiPlot + + + Unknown + + + + + Samples + + + + + Widgets::Plot + + + Samples + + + + diff --git a/app/translations/ts/es_MX.ts b/app/translations/ts/es_MX.ts new file mode 100644 index 00000000..99e018ee --- /dev/null +++ b/app/translations/ts/es_MX.ts @@ -0,0 +1,2449 @@ + + + + + About + + + About + Acerca de + + + + Version %1 + Versión %1 + + + + Copyright © 2020-%1 %2, released under the MIT License. + Copyright © 2020-%1 %2, liberado bajo la Licencia MIT. + + + + The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + El programa se proporciona TAL CUAL, SIN GARANTÍA DE NINGÚN TIPO, INCLUYENDO LA GARANTÍA DE DISEÑO, COMERCIABILIDAD O ADECUACIÓN PARA UN PROPÓSITO PARTICULAR. + + + + Website + Sitio Web + + + + Check for Updates + Buscar Actualizaciones + + + + Make a Donation + Hacer una Donación + + + + Report Bug + Reportar un Error + + + + Documentation + Documentación + + + + Acknowledgements + Agradecimientos + + + + Close + Cerrar + + + + Acknowledgements + + + Acknowledgements + Agradecimientos + + + + Close + Cerrar + + + + BluetoothLE + + + Device + Dispositivo + + + + Service + Servicio + + + + Scanning.... + Escaneando.... + + + + Sorry, this system is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. + Lo sentimos, este sistema aún no es compatible. Actualizaremos Serial Studio para que funcione con este sistema operativo tan pronto como Qt lo soporte oficialmente. + + + + CSV::Export + + + CSV file not open + Archivo CSV no abierto + + + + Cannot find CSV export file! + ¡No se puede encontrar el archivo de exportación CSV! + + + + CSV File Error + Error de archivo CSV + + + + Cannot open CSV file for writing! + ¡No se puede abrir el archivo CSV para escribir! + + + + CSV::Player + + + Select CSV file + Seleccionar archivo CSV + + + + CSV files + Archivos CSV + + + + Serial port open, do you want to continue? + El puerto serial está abierto, ¿quieres continuar? + + + + In order to use this feature, its necessary to disconnect from the serial port + Para usar esta función, es necesario desconectar del puerto serial + + + + Cannot read CSV file + No se puede leer el archivo CSV + + + + Please check file permissions & location + Por favor, verifica los permisos y la ubicación del archivo + + + + Console + + + Console + Consola + + + + CsvPlayer + + + CSV Player + Reproductor CSV + + + + DatasetView + + + Plot + Gráfico + + + + FFT Plot + Gráfico FFT + + + + Bar/Level + Barra/Nivel + + + + Gauge + Indicador + + + + Compass + Brújula + + + + LED + LED + + + + Duplicate + Duplicar + + + + Delete + Eliminar + + + + Donate + + + + Donate + Donar + + + + Later + Más tarde + + + + Close + Cerrar + + + + Support the development of %1! + ¡Apoya el desarrollo de %1! + + + + Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) + Serial Studio es un software libre y de código abierto apoyado por voluntarios. Considera hacer una donación para apoyar los esfuerzos de desarrollo :) + + + + You can also support this project by sharing it, reporting bugs and proposing new features! + ¡También puedes apoyar este proyecto compartiéndolo, reportando errores y proponiendo nuevas funciones! + + + + Don't annoy me again! + ¡No me molestes de nuevo! + + + + Downloader + + + Stop + Detener + + + + + Downloading updates + Descargando actualizaciones + + + + + Time remaining + Tiempo restante + + + + unknown + desconocido + + + + Error + Error + + + + Cannot find downloaded update! + ¡No se puede encontrar la actualización descargada! + + + + Close + Cerrar + + + + Download complete! + ¡Descarga completa! + + + + The installer will open separately + El instalador se abrirá por separado + + + + Click "OK" to begin installing the update + Haz clic en "OK" para comenzar a instalar la actualización + + + + In order to install the update, you may need to quit the application. + Para instalar la actualización, es posible que debas cerrar la aplicación. + + + + In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application + Para instalar la actualización, es posible que debas cerrar la aplicación. Esta es una actualización obligatoria, salir ahora cerrará la aplicación + + + + Click the "Open" button to apply the update + Haz clic en el botón "Abrir" para aplicar la actualización + + + + Updater + Actualizador + + + + Are you sure you want to cancel the download? + ¿Estás seguro de que quieres cancelar la descarga? + + + + Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application + ¿Estás seguro de que quieres cancelar la descarga? Esta es una actualización obligatoria, salir ahora cerrará la aplicación + + + + + %1 bytes + %1 bytes + + + + + %1 KB + %1 KB + + + + + %1 MB + %1 MB + + + + of + de + + + + Downloading Updates + Descargando Actualizaciones + + + + Time Remaining + Tiempo Restante + + + + Unknown + Desconocido + + + + about %1 hours + aprox. %1 horas + + + + about one hour + aprox. una hora + + + + %1 minutes + %1 minutos + + + + 1 minute + 1 minuto + + + + %1 seconds + %1 segundos + + + + 1 second + 1 segundo + + + + ExternalConsole + + + Console + Consola + + + + FrameParserView + + + + Undo + Deshacer + + + + + Redo + Rehacer + + + + + Cut + Cortar + + + + + Copy + Copiar + + + + + Paste + Pegar + + + + Select All + Seleccionar Todo + + + + Reset + Restablecer + + + + Import + Importar + + + + Apply + Aplicar + + + + Help + Ayuda + + + + GpsMap + + + Map Type: + Tipo de mapa: + + + + Center on coordinate + Centrar en la coordenada + + + + GroupView + + + Dataset + Conjunto de datos + + + + Plot + Gráfico + + + + FFT Plot + Gráfico FFT + + + + Bar/Level + Barra/Nivel + + + + Gauge + Indicador + + + + Compass + Brújula + + + + LED + LED + + + + Duplicate + Duplicar + + + + Delete + Eliminar + + + + Let's Add Some Datasets + Vamos a agregar algunos conjuntos de datos + + + + Datasets describe individual readings (e.g. X, Y, Z in an accelerometer). +Use the toolbar buttons above to add a dataset to this group. + Los conjuntos de datos describen lecturas individuales (por ejemplo, X, Y, Z en un acelerómetro). +Usa los botones de la barra de herramientas de arriba para agregar un conjunto de datos a este grupo. + + + + IO::Console + + + ASCII + ASCII + + + + HEX + HEX + + + + No Line Ending + Sin terminación de línea + + + + New Line + Nueva línea + + + + Carriage Return + Retorno de carro + + + + CR + NL + RC + NL + + + + Plain Text + Texto plano + + + + Hexadecimal + Hexadecimal + + + + Export Console Data + Exportar datos de la consola + + + + Text Files + Archivos de texto + + + + Error while exporting console data + Error al exportar datos de la consola + + + + IO::Drivers::BluetoothLE + + + The BLE device has been disconnected + El dispositivo BLE se ha desconectado + + + + Select Device + Seleccionar dispositivo + + + + Select Service + Seleccionar servicio + + + + Error while configuring BLE service + Error al configurar el servicio BLE + + + + Operation error + Error de operación + + + + Characteristic write error + Error al escribir la característica + + + + Descriptor write error + Error al escribir el descriptor + + + + Unknown error + Error desconocido + + + + Characteristic read error + Error al leer la característica + + + + Descriptor read error + Error al leer el descriptor + + + + Bluetooth adapter is off! + ¡El adaptador Bluetooth está apagado! + + + + Invalid Bluetooth adapter! + ¡Adaptador Bluetooth inválido! + + + + Unsuported platform or operating system + Plataforma o sistema operativo no compatible + + + + Unsupported discovery method + Método de descubrimiento no compatible + + + + General I/O error + Error general de I/O + + + + IO::Drivers::Network + + + Network socket error + Error de socket de red + + + + IO::Drivers::Serial + + + + + + None + Ninguno + + + + No Device + Sin dispositivo + + + + + Select Port + Seleccionar puerto + + + + Even + Par + + + + Odd + Impar + + + + Space + Espacio + + + + Mark + Marca + + + + RTS/CTS + RTS/CTS + + + + XON/XOFF + XON/XOFF + + + + Baud rate registered successfully + Velocidad de transmisión registrada correctamente + + + + Rate "%1" has been added to baud rate list + La velocidad "%1" ha sido agregada a la lista de velocidades de transmisión + + + + IO::Manager + + + Serial Port + Puerto serial + + + + Network Socket + Socket de red + + + + Bluetooth LE + Bluetooth LE + + + + JSON::Generator + + + Select JSON map file + Seleccionar archivo de mapa JSON + + + + JSON files + Archivos JSON + + + + JSON parse error + Error al analizar JSON + + + + Cannot read JSON file + No se puede leer el archivo JSON + + + + Please check file permissions & location + Por favor, verifica los permisos y la ubicación del archivo + + + + JSONDropArea + + + Drop JSON and CSV files here + Suelta archivos JSON y CSV aquí + + + + KLed + + + LED on + Accessible name of a Led whose state is on + LED encendido + + + + LED off + Accessible name of a Led whose state is off + LED apagado + + + + MQTT::Client + + + 0: At most once + 0: Como máximo una vez + + + + 1: At least once + 1: Al menos una vez + + + + 2: Exactly once + 2: Exactamente una vez + + + + Publisher + Publicador + + + + Subscriber + Suscriptor + + + + + System default + Predeterminado del sistema + + + + Select CA file + Seleccionar archivo CA + + + + Cannot open CA file! + ¡No se puede abrir el archivo CA! + + + + IP address lookup error + Error de búsqueda de dirección IP + + + + Unknown error + Error desconocido + + + + Connection refused + Conexión rechazada + + + + Remote host closed the connection + El host remoto cerró la conexión + + + + Host not found + Host no encontrado + + + + Socket access error + Error de acceso al socket + + + + Socket resource error + Error de recursos del socket + + + + Socket timeout + Tiempo de espera del socket + + + + Socket datagram too large + Datagrama del socket demasiado grande + + + + Network error + Error de red + + + + Address in use + Dirección en uso + + + + Address not available + Dirección no disponible + + + + Unsupported socket operation + Operación de socket no soportada + + + + Unfinished socket operation + Operación de socket no finalizada + + + + Proxy authentication required + Autenticación de proxy requerida + + + + SSL handshake failed + Fallo en el apretón de manos SSL + + + + Proxy connection refused + Conexión de proxy rechazada + + + + Proxy connection closed + Conexión de proxy cerrada + + + + Proxy connection timeout + Tiempo de espera de la conexión de proxy + + + + Proxy not found + Proxy no encontrado + + + + Proxy protocol error + Error de protocolo de proxy + + + + Operation error + Error de operación + + + + SSL internal error + Error interno de SSL + + + + Invalid SSL user data + Datos de usuario SSL inválidos + + + + Socket temprary error + Error temporal de socket + + + + Unacceptable MQTT protocol + Protocolo MQTT inaceptable + + + + MQTT identifier rejected + Identificador MQTT rechazado + + + + MQTT server unavailable + Servidor MQTT no disponible + + + + Bad MQTT username or password + Nombre de usuario o contraseña de MQTT incorrectos + + + + MQTT authorization error + Error de autorización MQTT + + + + MQTT no ping response + Sin respuesta de ping MQTT + + + + MQTT client error + Error del cliente MQTT + + + + MQTT client SSL/TLS error, ignore? + Error SSL/TLS del cliente MQTT, ¿ignorar? + + + + MQTTConfiguration + + + MQTT Setup + Configuración MQTT + + + + Version + Versión + + + + Mode + Modo + + + + QOS Level + Nivel de QOS + + + + Keep Alive (s) + Mantener activo (s) + + + + Host + Host + + + + Port + Puerto + + + + Topic + Tema + + + + Retain + Retener + + + + MQTT Topic + Tema MQTT + + + + Add Retain Flag + Agregar bandera de retención + + + + User + Usuario + + + + Password + Contraseña + + + + MQTT Username + Usuario MQTT + + + + MQTT Password + Contraseña MQTT + + + + Enable SSL/TLS: + Habilitar SSL/TLS: + + + + Certificate: + Certificado: + + + + Use System Database + Usar base de datos del sistema + + + + Custom CA File + Archivo CA personalizado + + + + Protocol: + Protocolo: + + + + Close + Cerrar + + + + Disconnect + Desconectar + + + + Connect + Conectar + + + + Misc::Utilities + + + Check for updates automatically? + ¿Buscar actualizaciones automáticamente? + + + + Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu + ¿Debería %1 buscar actualizaciones automáticamente? Siempre puedes buscar actualizaciones manualmente desde el menú "Ayuda" + + + + Ok + Ok + + + + Save + Guardar + + + + Save all + Guardar todo + + + + Open + Abrir + + + + Yes + + + + + Yes to all + Sí a todo + + + + No + No + + + + No to all + No a todo + + + + Abort + Abortar + + + + Retry + Reintentar + + + + Ignore + Ignorar + + + + Close + Cerrar + + + + Cancel + Cancelar + + + + Discard + Descartar + + + + Help + Ayuda + + + + Apply + Aplicar + + + + Reset + Restablecer + + + + Restore defaults + Restaurar valores predeterminados + + + + Network + + + Socket type + Tipo de socket + + + + Remote address + Dirección remota + + + + Port + Puerto + + + + Local port + Puerto local + + + + Type 0 for automatic port + Escribe 0 para puerto automático + + + + Remote port + Puerto remoto + + + + Multicast + Multidifusión + + + + Ignore data delimiters + Ignorar delimitadores de datos + + + + Plugins::Server + + + Unable to start plugin TCP server + No se puede iniciar el servidor TCP del plugin + + + + Plugin server + Servidor del plugin + + + + Invalid pending connection + Conexión pendiente inválida + + + + Project::FrameParser + + + + The document has been modified! + ¡El documento ha sido modificado! + + + + + Are you sure you want to continue? + ¿Estás seguro de que quieres continuar? + + + + Select Javascript file to import + Seleccionar archivo Javascript para importar + + + + Frame parser code updated successfully! + ¡Código del parser de tramas actualizado con éxito! + + + + No errors have been detected in the code. + No se han detectado errores en el código. + + + + Frame parser error! + ¡Error en el parser de tramas! + + + + No parse() function has been declared! + ¡No se ha declarado la función parse()! + + + + Frame parser syntax error! + ¡Error de sintaxis en el parser de tramas! + + + + Error on line %1. + Error en la línea %1. + + + + Generic error + Error genérico + + + + Evaluation error + Error de evaluación + + + + Range error + Error de rango + + + + Reference error + Error de referencia + + + + Syntax error + Error de sintaxis + + + + Type error + Error de tipo + + + + URI error + Error de URI + + + + Unknown error + Error desconocido + + + + Frame parser error detected! + ¡Error detectado en el parser de tramas! + + + + Project::Model + + + New Project + Nuevo Proyecto + + + + Do you want to save your changes? + ¿Quieres guardar los cambios? + + + + You have unsaved modifications in this project! + ¡Tienes modificaciones sin guardar en este proyecto! + + + + Project error + Error del proyecto + + + + Project title cannot be empty! + ¡El título del proyecto no puede estar vacío! + + + + Save JSON project + Guardar proyecto JSON + + + + File open error + Error al abrir el archivo + + + + + Untitled Project + Proyecto sin título + + + + Select JSON file + Seleccionar archivo JSON + + + + Do you want to delete group "%1"? + ¿Deseas eliminar el grupo "%1"? + + + + + This action cannot be undone. Do you wish to proceed? + Esta acción no se puede deshacer. ¿Deseas continuar? + + + + Do you want to delete dataset "%1"? + ¿Deseas eliminar el conjunto de datos "%1"? + + + + + %1 (Copy) + %1 (Copia) + + + + New Dataset + Nuevo Conjunto de Datos + + + + New Plot + Nueva Gráfica + + + + New FFT Plot + Nueva Gráfica FFT + + + + New Bar Widget + Nuevo Widget de Barras + + + + New Gauge + Nuevo Medidor + + + + New Compass + Nueva Brújula + + + + New LED Indicator + Nuevo Indicador LED + + + + Are you sure you want to change the group-level widget? + ¿Estás seguro de que quieres cambiar el widget a nivel de grupo? + + + + Existing datasets for this group will be deleted + Los conjuntos de datos existentes para este grupo serán eliminados + + + + + + Accelerometer %1 + Acelerómetro %1 + + + + + + Gyro %1 + Giro %1 + + + + Latitude + Latitud + + + + Longitude + Longitud + + + + Altitude + Altitud + + + + Frame Parser Function + Analizador de Tramas + + + + + + Title + Título + + + + Project name/description + Nombre/Descripción del proyecto + + + + Separator Sequence + Secuencia Separadora + + + + String used to split items in a frame + Cadena utilizada para dividir elementos en una trama + + + + Frame Start Delimeter + Delimitador de Inicio de Trama + + + + String marking the start of a frame + Cadena que marca el inicio de una trama + + + + Frame End Delimeter + Delimitador de Fin de Trama + + + + String marking the end of a frame + Cadena que marca el fin de una trama + + + + Data Conversion Method + Método de Conversión de Datos + + + + Input data format for frame parser + Formato de datos de entrada para el analizador de tramas + + + + Thunderforest API Key + Clave API de Thunderforest + + + + + + None + Ninguno + + + + Required for GPS map widget + Requerido para el widget de mapa GPS + + + + Untitled Group + Grupo Sin Título + + + + Name or description of the group + Nombre o descripción del grupo + + + + + Widget + Widget + + + + Group display widget (optional) + Widget de visualización de grupo (opcional) + + + + Untitled Dataset + Conjunto de Datos Sin Título + + + + Name or description of the dataset + Nombre o descripción del conjunto de datos + + + + Frame Index + Índice de Trama + + + + Position in the frame + Posición en la trama + + + + Measurement Unit + Unidad de Medida + + + + Volts, Amps, etc. + Voltios, Amperios, etc. + + + + Unit of measurement (optional) + Unidad de medida (opcional) + + + + Display widget (optional) + Widget de visualización (opcional) + + + + Minimum Value + Valor Mínimo + + + + + Required for bar/gauge widgets + Requerido para widgets de barras/medidores + + + + Maximum Value + Valor Máximo + + + + Alarm Value + Valor de Alarma + + + + Triggers alarm in bar widgets and LED panels + Activa la alarma en widgets de barras y paneles LED + + + + Oscilloscope Plot + Gráfico de Osciloscopio + + + + Plot data in real-time + Graficar datos en tiempo real + + + + FFT Plot + Gráfico FFT + + + + Plot frequency-domain data + Graficar datos en el dominio de la frecuencia + + + + FFT Window Size + Tamaño de Ventana FFT + + + + Samples for FFT calculation + Muestras para el cálculo de FFT + + + + Show in LED Panel + Mostrar en el Panel LED + + + + Quick status monitoring + Monitoreo rápido de estado + + + + LED High (On) Value + Valor Alto (Encendido) del LED + + + + Threshold for LED on + Umbral para encender el LED + + + + Normal (UTF8) + Normal (UTF8) + + + + Hexadecimal + Hexadecimal + + + + Base64 + Base64 + + + + Data Grid + Cuadrícula de Datos + + + + GPS Map + Mapa GPS + + + + Gyroscope + Giroscopio + + + + Multiple Plot + Gráfico Múltiple + + + + Accelerometer + Acelerómetro + + + + Bar + Barra + + + + Gauge + Medidor + + + + Compass + Brújula + + + + No + No + + + + Linear Plot + Gráfico Lineal + + + + Logarithmic Plot + Gráfico Logarítmico + + + + ProjectStructure + + + Project Structure + Estructura del proyecto + + + + IDX → %1 + IND → %1 + + + + ProjectView + + + Start Building Now! + ¡Empieza a construir ahora! + + + + Get started by adding a group with the toolbar buttons above. + Empieza añadiendo un grupo con los botones de la barra de herramientas de arriba. + + + + QObject + + + Failed to load welcome text :( + Error al cargar el texto de bienvenida :( + + + + QwtPlotRenderer + + + + + Documents + Documentos + + + + Images + Imágenes + + + + Export File Name + Nombre del archivo de exportación + + + + QwtPolarRenderer + + + + + Documents + Documentos + + + + Images + Imágenes + + + + Export File Name + Nombre del archivo de exportación + + + + Root + + + %1 - %2 + %1 - %2 + + + + Device Defined Project + Proyecto definido por el dispositivo + + + + Empty Project + Proyecto vacío + + + + %1 - Project Editor + %1 - Editor de Proyectos + + + + modified + modificado + + + + Serial + + + COM Port + Puerto COM + + + + Baud Rate + Velocidad de transmisión + + + + Data Bits + Bits de datos + + + + Parity + Paridad + + + + Stop Bits + Bits de parada + + + + Flow Control + Control de flujo + + + + Auto Reconnect + Reconectar automáticamente + + + + Send DTR Signal + Enviar señal DTR + + + + Settings + + + Language + Idioma + + + + Theme + Tema + + + + Plugin System + Sistema de plugins + + + + Using the plugin system, other applications & scripts can interact with %1 by establishing a TCP connection on port 7777. + Usando el sistema de plugins, otras aplicaciones y scripts pueden interactuar con %1 estableciendo una conexión TCP en el puerto 7777. + + + + Setup + + + Setup + Configuración + + + + Device Setup + Configuración del dispositivo + + + + I/O Interface: %1 + Interfaz de E/S: %1 + + + + Create CSV File + Crear archivo CSV + + + + Frame Parsing + Análisis de tramas + + + + No Parsing (Device Sends JSON Data) + El dispositivo envía datos JSON + + + + Parse via JSON Project File + Analizar con proyecto JSON + + + + Change Project File (%1) + Cambiar proyecto (%1) + + + + Select Project File + Seleccionar proyecto + + + + Device + Dispositivo + + + + Settings + Ajustes + + + + TableDelegate + + + Parameter + Parámetro + + + + Value + Valor + + + + Parameter Description + Descripción + + + + No + No + + + + Yes + + + + + Terminal + + + Copy + Copiar + + + + Select all + Seleccionar todo + + + + Clear + Limpiar + + + + Print + Imprimir + + + + Save as + Guardar como + + + + No data received so far + No se han recibido datos hasta ahora + + + + Send Data to Device + Enviar datos al dispositivo + + + + Echo + Eco + + + + Autoscroll + Desplazamiento automático + + + + Show Timestamp + Mostrar marca de tiempo + + + + Emulate VT-100 + Emular VT-100 + + + + Display: %1 + Mostrar: %1 + + + + Toolbar + + + Project Editor + Editor de Proyecto + + + + CSV Player + Reproductor CSV + + + + Setup + Configuración + + + + Console + Consola + + + + Widgets + Widgets + + + + Dashboard + Tablero + + + + MQTT + MQTT + + + + Help + Ayuda + + + + About + Acerca de + + + + + Disconnect + Desconectar + + + + Connect + Conectar + + + + New Project + Nuevo Proyecto + + + + Load Project + Cargar Proyecto + + + + Save Project + Guardar Proyecto + + + + + Data Grid + Cuadrícula de Datos + + + + Multiple Plots + Gráficas Múltiples + + + + Multiple Plot + Gráfica Múltiple + + + + + Accelerometer + Acelerómetro + + + + + Gyroscope + Giroscopio + + + + Map + Mapa + + + + GPS Map + Mapa GPS + + + + Container + Contenedor + + + + Dataset Container + Contenedor de Datos + + + + UI::Dashboard + + + Status Panel + Panel de estado + + + + UI::DashboardWidget + + + Invalid + Inválido + + + + Updater + + + Would you like to download the update now? + ¿Te gustaría descargar la actualización ahora? + + + + Would you like to download the update now? This is a mandatory update, exiting now will close the application + ¿Te gustaría descargar la actualización ahora? Esta es una actualización obligatoria, salir ahora cerrará la aplicación + + + + Version %1 of %2 has been released! + ¡La versión %1 de %2 ha sido lanzada! + + + + No updates are available for the moment + No hay actualizaciones disponibles por el momento + + + + Congratulations! You are running the latest version of %1 + ¡Felicidades! Estás usando la última versión de %1 + + + + ViewOptions + + + Widget Setup + Configuración de Widgets + + + + Visualization Options + Opciones de visualización + + + + Points: + Puntos: + + + + Decimal places: + Lugares decimales: + + + + Columns: + Columnas: + + + + Data Grids + Cuadrículas de Datos + + + + Multiple Data Plots + Gráficas de Datos Múltiples + + + + LED Panels + Paneles LED + + + + FFT Plots + Gráficas FFT + + + + Data Plots + Gráficas de Datos + + + + Bars + Barras + + + + Gauges + Medidores + + + + Compasses + Brújulas + + + + Gyroscopes + Giroscopios + + + + Accelerometers + Acelerómetros + + + + GPS + GPS + + + + Clear Dashboard Data + Limpiar Tablero + + + + Display Console Window + Mostrar Consola + + + + WidgetGrid + + + Dashboard + Tablero + + + + Widgets::FFTPlot + + + Frequency (Hz) + Frecuencia (Hz) + + + + Magnitude (dB) + Magnitud (dB) + + + + Widgets::MultiPlot + + + Unknown + Desconocido + + + + Samples + Muestras + + + + Widgets::Plot + + + Samples + Muestras + + + diff --git a/app/translations/ts/ru_RU.ts b/app/translations/ts/ru_RU.ts new file mode 100644 index 00000000..433a4d97 --- /dev/null +++ b/app/translations/ts/ru_RU.ts @@ -0,0 +1,2448 @@ + + + + + About + + + About + + + + + Version %1 + + + + + Copyright © 2020-%1 %2, released under the MIT License. + + + + + The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + + + + Website + + + + + Check for Updates + + + + + Make a Donation + + + + + Report Bug + + + + + Documentation + + + + + Acknowledgements + + + + + Close + + + + + Acknowledgements + + + Acknowledgements + + + + + Close + + + + + BluetoothLE + + + Device + + + + + Service + + + + + Scanning.... + + + + + Sorry, this system is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. + + + + + CSV::Export + + + CSV file not open + + + + + Cannot find CSV export file! + + + + + CSV File Error + + + + + Cannot open CSV file for writing! + + + + + CSV::Player + + + Select CSV file + + + + + CSV files + + + + + Serial port open, do you want to continue? + + + + + In order to use this feature, its necessary to disconnect from the serial port + + + + + Cannot read CSV file + + + + + Please check file permissions & location + + + + + Console + + + Console + + + + + CsvPlayer + + + CSV Player + + + + + DatasetView + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Donate + + + + Donate + + + + + Later + + + + + Close + + + + + Support the development of %1! + + + + + Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) + + + + + You can also support this project by sharing it, reporting bugs and proposing new features! + + + + + Don't annoy me again! + + + + + Downloader + + + Stop + + + + + + Downloading updates + + + + + + Time remaining + + + + + unknown + + + + + Error + + + + + Cannot find downloaded update! + + + + + Close + + + + + Download complete! + + + + + The installer will open separately + + + + + Click "OK" to begin installing the update + + + + + In order to install the update, you may need to quit the application. + + + + + In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application + + + + + Click the "Open" button to apply the update + + + + + Updater + + + + + Are you sure you want to cancel the download? + + + + + Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application + + + + + + %1 bytes + + + + + + %1 KB + + + + + + %1 MB + + + + + of + + + + + Downloading Updates + + + + + Time Remaining + + + + + Unknown + + + + + about %1 hours + + + + + about one hour + + + + + %1 minutes + + + + + 1 minute + + + + + %1 seconds + + + + + 1 second + + + + + ExternalConsole + + + Console + + + + + FrameParserView + + + + Undo + + + + + + Redo + + + + + + Cut + + + + + + Copy + + + + + + Paste + + + + + Select All + + + + + Reset + + + + + Import + + + + + Apply + + + + + Help + + + + + GpsMap + + + Map Type: + + + + + Center on coordinate + + + + + GroupView + + + Dataset + + + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Let's Add Some Datasets + + + + + Datasets describe individual readings (e.g. X, Y, Z in an accelerometer). +Use the toolbar buttons above to add a dataset to this group. + + + + + IO::Console + + + ASCII + + + + + HEX + + + + + No Line Ending + + + + + New Line + + + + + Carriage Return + + + + + CR + NL + + + + + Plain Text + + + + + Hexadecimal + + + + + Export Console Data + + + + + Text Files + + + + + Error while exporting console data + + + + + IO::Drivers::BluetoothLE + + + The BLE device has been disconnected + + + + + Select Device + + + + + Select Service + + + + + Error while configuring BLE service + + + + + Operation error + + + + + Characteristic write error + + + + + Descriptor write error + + + + + Unknown error + + + + + Characteristic read error + + + + + Descriptor read error + + + + + Bluetooth adapter is off! + + + + + Invalid Bluetooth adapter! + + + + + Unsuported platform or operating system + + + + + Unsupported discovery method + + + + + General I/O error + + + + + IO::Drivers::Network + + + Network socket error + + + + + IO::Drivers::Serial + + + + + + None + + + + + No Device + + + + + + Select Port + + + + + Even + + + + + Odd + + + + + Space + + + + + Mark + + + + + RTS/CTS + + + + + XON/XOFF + + + + + Baud rate registered successfully + + + + + Rate "%1" has been added to baud rate list + + + + + IO::Manager + + + Serial Port + + + + + Network Socket + + + + + Bluetooth LE + + + + + JSON::Generator + + + Select JSON map file + + + + + JSON files + + + + + JSON parse error + + + + + Cannot read JSON file + + + + + Please check file permissions & location + + + + + JSONDropArea + + + Drop JSON and CSV files here + + + + + KLed + + + LED on + Accessible name of a Led whose state is on + + + + + LED off + Accessible name of a Led whose state is off + + + + + MQTT::Client + + + 0: At most once + + + + + 1: At least once + + + + + 2: Exactly once + + + + + Publisher + + + + + Subscriber + + + + + + System default + + + + + Select CA file + + + + + Cannot open CA file! + + + + + IP address lookup error + + + + + Unknown error + + + + + Connection refused + + + + + Remote host closed the connection + + + + + Host not found + + + + + Socket access error + + + + + Socket resource error + + + + + Socket timeout + + + + + Socket datagram too large + + + + + Network error + + + + + Address in use + + + + + Address not available + + + + + Unsupported socket operation + + + + + Unfinished socket operation + + + + + Proxy authentication required + + + + + SSL handshake failed + + + + + Proxy connection refused + + + + + Proxy connection closed + + + + + Proxy connection timeout + + + + + Proxy not found + + + + + Proxy protocol error + + + + + Operation error + + + + + SSL internal error + + + + + Invalid SSL user data + + + + + Socket temprary error + + + + + Unacceptable MQTT protocol + + + + + MQTT identifier rejected + + + + + MQTT server unavailable + + + + + Bad MQTT username or password + + + + + MQTT authorization error + + + + + MQTT no ping response + + + + + MQTT client error + + + + + MQTT client SSL/TLS error, ignore? + + + + + MQTTConfiguration + + + MQTT Setup + + + + + Version + + + + + Mode + + + + + QOS Level + + + + + Keep Alive (s) + + + + + Host + + + + + Port + + + + + Topic + + + + + Retain + + + + + MQTT Topic + + + + + Add Retain Flag + + + + + User + + + + + Password + + + + + MQTT Username + + + + + MQTT Password + + + + + Enable SSL/TLS: + + + + + Certificate: + + + + + Use System Database + + + + + Custom CA File + + + + + Protocol: + + + + + Close + + + + + Disconnect + + + + + Connect + + + + + Misc::Utilities + + + Check for updates automatically? + + + + + Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu + + + + + Ok + + + + + Save + + + + + Save all + + + + + Open + + + + + Yes + + + + + Yes to all + + + + + No + + + + + No to all + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Close + + + + + Cancel + + + + + Discard + + + + + Help + + + + + Apply + + + + + Reset + + + + + Restore defaults + + + + + Network + + + Socket type + + + + + Remote address + + + + + Port + + + + + Local port + + + + + Type 0 for automatic port + + + + + Remote port + + + + + Multicast + + + + + Ignore data delimiters + + + + + Plugins::Server + + + Unable to start plugin TCP server + + + + + Plugin server + + + + + Invalid pending connection + + + + + Project::FrameParser + + + + The document has been modified! + + + + + + Are you sure you want to continue? + + + + + Select Javascript file to import + + + + + Frame parser code updated successfully! + + + + + No errors have been detected in the code. + + + + + Frame parser error! + + + + + No parse() function has been declared! + + + + + Frame parser syntax error! + + + + + Error on line %1. + + + + + Generic error + + + + + Evaluation error + + + + + Range error + + + + + Reference error + + + + + Syntax error + + + + + Type error + + + + + URI error + + + + + Unknown error + + + + + Frame parser error detected! + + + + + Project::Model + + + New Project + + + + + Do you want to save your changes? + + + + + You have unsaved modifications in this project! + + + + + Project error + + + + + Project title cannot be empty! + + + + + Save JSON project + + + + + File open error + + + + + + Untitled Project + + + + + Select JSON file + + + + + Do you want to delete group "%1"? + + + + + + This action cannot be undone. Do you wish to proceed? + + + + + Do you want to delete dataset "%1"? + + + + + + %1 (Copy) + + + + + New Dataset + + + + + New Plot + + + + + New FFT Plot + + + + + New Bar Widget + + + + + New Gauge + + + + + New Compass + + + + + New LED Indicator + + + + + Are you sure you want to change the group-level widget? + + + + + Existing datasets for this group will be deleted + + + + + + + Accelerometer %1 + + + + + + + Gyro %1 + + + + + Latitude + + + + + Longitude + + + + + Altitude + + + + + Frame Parser Function + + + + + + + Title + + + + + Project name/description + + + + + Separator Sequence + + + + + String used to split items in a frame + + + + + Frame Start Delimeter + + + + + String marking the start of a frame + + + + + Frame End Delimeter + + + + + String marking the end of a frame + + + + + Data Conversion Method + + + + + Input data format for frame parser + + + + + Thunderforest API Key + + + + + + + None + + + + + Required for GPS map widget + + + + + Untitled Group + + + + + Name or description of the group + + + + + + Widget + + + + + Group display widget (optional) + + + + + Untitled Dataset + + + + + Name or description of the dataset + + + + + Frame Index + + + + + Position in the frame + + + + + Measurement Unit + + + + + Volts, Amps, etc. + + + + + Unit of measurement (optional) + + + + + Display widget (optional) + + + + + Minimum Value + + + + + + Required for bar/gauge widgets + + + + + Maximum Value + + + + + Alarm Value + + + + + Triggers alarm in bar widgets and LED panels + + + + + Oscilloscope Plot + + + + + Plot data in real-time + + + + + FFT Plot + + + + + Plot frequency-domain data + + + + + FFT Window Size + + + + + Samples for FFT calculation + + + + + Show in LED Panel + + + + + Quick status monitoring + + + + + LED High (On) Value + + + + + Threshold for LED on + + + + + Normal (UTF8) + + + + + Hexadecimal + + + + + Base64 + + + + + Data Grid + + + + + GPS Map + + + + + Gyroscope + + + + + Multiple Plot + + + + + Accelerometer + + + + + Bar + + + + + Gauge + + + + + Compass + + + + + No + + + + + Linear Plot + + + + + Logarithmic Plot + + + + + ProjectStructure + + + Project Structure + + + + + IDX → %1 + + + + + ProjectView + + + Start Building Now! + + + + + Get started by adding a group with the toolbar buttons above. + + + + + QObject + + + Failed to load welcome text :( + + + + + QwtPlotRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + QwtPolarRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + Root + + + %1 - %2 + + + + + Device Defined Project + + + + + Empty Project + + + + + %1 - Project Editor + + + + + modified + + + + + Serial + + + COM Port + + + + + Baud Rate + + + + + Data Bits + + + + + Parity + + + + + Stop Bits + + + + + Flow Control + + + + + Auto Reconnect + + + + + Send DTR Signal + + + + + Settings + + + Language + + + + + Theme + + + + + Plugin System + + + + + Using the plugin system, other applications & scripts can interact with %1 by establishing a TCP connection on port 7777. + + + + + Setup + + + Setup + + + + + Device Setup + + + + + I/O Interface: %1 + + + + + Create CSV File + + + + + Frame Parsing + + + + + No Parsing (Device Sends JSON Data) + + + + + Parse via JSON Project File + + + + + Change Project File (%1) + + + + + Select Project File + + + + + Device + + + + + Settings + + + + + TableDelegate + + + Parameter + + + + + Value + + + + + Parameter Description + + + + + No + + + + + Yes + + + + + Terminal + + + Copy + + + + + Select all + + + + + Clear + + + + + Print + + + + + Save as + + + + + No data received so far + + + + + Send Data to Device + + + + + Echo + + + + + Autoscroll + + + + + Show Timestamp + + + + + Emulate VT-100 + + + + + Display: %1 + + + + + Toolbar + + + Project Editor + + + + + CSV Player + + + + + Setup + + + + + Console + + + + + Widgets + + + + + Dashboard + + + + + MQTT + + + + + Help + + + + + About + + + + + + Disconnect + + + + + Connect + + + + + New Project + + + + + Load Project + + + + + Save Project + + + + + + Data Grid + + + + + Multiple Plots + + + + + Multiple Plot + + + + + + Accelerometer + + + + + + Gyroscope + + + + + Map + + + + + GPS Map + + + + + Container + + + + + Dataset Container + + + + + UI::Dashboard + + + Status Panel + + + + + UI::DashboardWidget + + + Invalid + + + + + Updater + + + Would you like to download the update now? + + + + + Would you like to download the update now? This is a mandatory update, exiting now will close the application + + + + + Version %1 of %2 has been released! + + + + + No updates are available for the moment + + + + + Congratulations! You are running the latest version of %1 + + + + + ViewOptions + + + Widget Setup + + + + + Visualization Options + + + + + Points: + + + + + Decimal places: + + + + + Columns: + + + + + Data Grids + + + + + Multiple Data Plots + + + + + LED Panels + + + + + FFT Plots + + + + + Data Plots + + + + + Bars + + + + + Gauges + + + + + Compasses + + + + + Gyroscopes + + + + + Accelerometers + + + + + GPS + + + + + Clear Dashboard Data + + + + + Display Console Window + + + + + WidgetGrid + + + Dashboard + + + + + Widgets::FFTPlot + + + Frequency (Hz) + + + + + Magnitude (dB) + + + + + Widgets::MultiPlot + + + Unknown + + + + + Samples + + + + + Widgets::Plot + + + Samples + + + + diff --git a/app/translations/ts/zh_CN.ts b/app/translations/ts/zh_CN.ts new file mode 100644 index 00000000..0025979d --- /dev/null +++ b/app/translations/ts/zh_CN.ts @@ -0,0 +1,2448 @@ + + + + + About + + + About + + + + + Version %1 + + + + + Copyright © 2020-%1 %2, released under the MIT License. + + + + + The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + + + + Website + + + + + Check for Updates + + + + + Make a Donation + + + + + Report Bug + + + + + Documentation + + + + + Acknowledgements + + + + + Close + + + + + Acknowledgements + + + Acknowledgements + + + + + Close + + + + + BluetoothLE + + + Device + + + + + Service + + + + + Scanning.... + + + + + Sorry, this system is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. + + + + + CSV::Export + + + CSV file not open + + + + + Cannot find CSV export file! + + + + + CSV File Error + + + + + Cannot open CSV file for writing! + + + + + CSV::Player + + + Select CSV file + + + + + CSV files + + + + + Serial port open, do you want to continue? + + + + + In order to use this feature, its necessary to disconnect from the serial port + + + + + Cannot read CSV file + + + + + Please check file permissions & location + + + + + Console + + + Console + + + + + CsvPlayer + + + CSV Player + + + + + DatasetView + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Donate + + + + Donate + + + + + Later + + + + + Close + + + + + Support the development of %1! + + + + + Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) + + + + + You can also support this project by sharing it, reporting bugs and proposing new features! + + + + + Don't annoy me again! + + + + + Downloader + + + Stop + + + + + + Downloading updates + + + + + + Time remaining + + + + + unknown + + + + + Error + + + + + Cannot find downloaded update! + + + + + Close + + + + + Download complete! + + + + + The installer will open separately + + + + + Click "OK" to begin installing the update + + + + + In order to install the update, you may need to quit the application. + + + + + In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application + + + + + Click the "Open" button to apply the update + + + + + Updater + + + + + Are you sure you want to cancel the download? + + + + + Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application + + + + + + %1 bytes + + + + + + %1 KB + + + + + + %1 MB + + + + + of + + + + + Downloading Updates + + + + + Time Remaining + + + + + Unknown + + + + + about %1 hours + + + + + about one hour + + + + + %1 minutes + + + + + 1 minute + + + + + %1 seconds + + + + + 1 second + + + + + ExternalConsole + + + Console + + + + + FrameParserView + + + + Undo + + + + + + Redo + + + + + + Cut + + + + + + Copy + + + + + + Paste + + + + + Select All + + + + + Reset + + + + + Import + + + + + Apply + + + + + Help + + + + + GpsMap + + + Map Type: + + + + + Center on coordinate + + + + + GroupView + + + Dataset + + + + + Plot + + + + + FFT Plot + + + + + Bar/Level + + + + + Gauge + + + + + Compass + + + + + LED + + + + + Duplicate + + + + + Delete + + + + + Let's Add Some Datasets + + + + + Datasets describe individual readings (e.g. X, Y, Z in an accelerometer). +Use the toolbar buttons above to add a dataset to this group. + + + + + IO::Console + + + ASCII + + + + + HEX + + + + + No Line Ending + + + + + New Line + + + + + Carriage Return + + + + + CR + NL + + + + + Plain Text + + + + + Hexadecimal + + + + + Export Console Data + + + + + Text Files + + + + + Error while exporting console data + + + + + IO::Drivers::BluetoothLE + + + The BLE device has been disconnected + + + + + Select Device + + + + + Select Service + + + + + Error while configuring BLE service + + + + + Operation error + + + + + Characteristic write error + + + + + Descriptor write error + + + + + Unknown error + + + + + Characteristic read error + + + + + Descriptor read error + + + + + Bluetooth adapter is off! + + + + + Invalid Bluetooth adapter! + + + + + Unsuported platform or operating system + + + + + Unsupported discovery method + + + + + General I/O error + + + + + IO::Drivers::Network + + + Network socket error + + + + + IO::Drivers::Serial + + + + + + None + + + + + No Device + + + + + + Select Port + + + + + Even + + + + + Odd + + + + + Space + + + + + Mark + + + + + RTS/CTS + + + + + XON/XOFF + + + + + Baud rate registered successfully + + + + + Rate "%1" has been added to baud rate list + + + + + IO::Manager + + + Serial Port + + + + + Network Socket + + + + + Bluetooth LE + + + + + JSON::Generator + + + Select JSON map file + + + + + JSON files + + + + + JSON parse error + + + + + Cannot read JSON file + + + + + Please check file permissions & location + + + + + JSONDropArea + + + Drop JSON and CSV files here + + + + + KLed + + + LED on + Accessible name of a Led whose state is on + + + + + LED off + Accessible name of a Led whose state is off + + + + + MQTT::Client + + + 0: At most once + + + + + 1: At least once + + + + + 2: Exactly once + + + + + Publisher + + + + + Subscriber + + + + + + System default + + + + + Select CA file + + + + + Cannot open CA file! + + + + + IP address lookup error + + + + + Unknown error + + + + + Connection refused + + + + + Remote host closed the connection + + + + + Host not found + + + + + Socket access error + + + + + Socket resource error + + + + + Socket timeout + + + + + Socket datagram too large + + + + + Network error + + + + + Address in use + + + + + Address not available + + + + + Unsupported socket operation + + + + + Unfinished socket operation + + + + + Proxy authentication required + + + + + SSL handshake failed + + + + + Proxy connection refused + + + + + Proxy connection closed + + + + + Proxy connection timeout + + + + + Proxy not found + + + + + Proxy protocol error + + + + + Operation error + + + + + SSL internal error + + + + + Invalid SSL user data + + + + + Socket temprary error + + + + + Unacceptable MQTT protocol + + + + + MQTT identifier rejected + + + + + MQTT server unavailable + + + + + Bad MQTT username or password + + + + + MQTT authorization error + + + + + MQTT no ping response + + + + + MQTT client error + + + + + MQTT client SSL/TLS error, ignore? + + + + + MQTTConfiguration + + + MQTT Setup + + + + + Version + + + + + Mode + + + + + QOS Level + + + + + Keep Alive (s) + + + + + Host + + + + + Port + + + + + Topic + + + + + Retain + + + + + MQTT Topic + + + + + Add Retain Flag + + + + + User + + + + + Password + + + + + MQTT Username + + + + + MQTT Password + + + + + Enable SSL/TLS: + + + + + Certificate: + + + + + Use System Database + + + + + Custom CA File + + + + + Protocol: + + + + + Close + + + + + Disconnect + + + + + Connect + + + + + Misc::Utilities + + + Check for updates automatically? + + + + + Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu + + + + + Ok + + + + + Save + + + + + Save all + + + + + Open + + + + + Yes + + + + + Yes to all + + + + + No + + + + + No to all + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Close + + + + + Cancel + + + + + Discard + + + + + Help + + + + + Apply + + + + + Reset + + + + + Restore defaults + + + + + Network + + + Socket type + + + + + Remote address + + + + + Port + + + + + Local port + + + + + Type 0 for automatic port + + + + + Remote port + + + + + Multicast + + + + + Ignore data delimiters + + + + + Plugins::Server + + + Unable to start plugin TCP server + + + + + Plugin server + + + + + Invalid pending connection + + + + + Project::FrameParser + + + + The document has been modified! + + + + + + Are you sure you want to continue? + + + + + Select Javascript file to import + + + + + Frame parser code updated successfully! + + + + + No errors have been detected in the code. + + + + + Frame parser error! + + + + + No parse() function has been declared! + + + + + Frame parser syntax error! + + + + + Error on line %1. + + + + + Generic error + + + + + Evaluation error + + + + + Range error + + + + + Reference error + + + + + Syntax error + + + + + Type error + + + + + URI error + + + + + Unknown error + + + + + Frame parser error detected! + + + + + Project::Model + + + New Project + + + + + Do you want to save your changes? + + + + + You have unsaved modifications in this project! + + + + + Project error + + + + + Project title cannot be empty! + + + + + Save JSON project + + + + + File open error + + + + + + Untitled Project + + + + + Select JSON file + + + + + Do you want to delete group "%1"? + + + + + + This action cannot be undone. Do you wish to proceed? + + + + + Do you want to delete dataset "%1"? + + + + + + %1 (Copy) + + + + + New Dataset + + + + + New Plot + + + + + New FFT Plot + + + + + New Bar Widget + + + + + New Gauge + + + + + New Compass + + + + + New LED Indicator + + + + + Are you sure you want to change the group-level widget? + + + + + Existing datasets for this group will be deleted + + + + + + + Accelerometer %1 + + + + + + + Gyro %1 + + + + + Latitude + + + + + Longitude + + + + + Altitude + + + + + Frame Parser Function + + + + + + + Title + + + + + Project name/description + + + + + Separator Sequence + + + + + String used to split items in a frame + + + + + Frame Start Delimeter + + + + + String marking the start of a frame + + + + + Frame End Delimeter + + + + + String marking the end of a frame + + + + + Data Conversion Method + + + + + Input data format for frame parser + + + + + Thunderforest API Key + + + + + + + None + + + + + Required for GPS map widget + + + + + Untitled Group + + + + + Name or description of the group + + + + + + Widget + + + + + Group display widget (optional) + + + + + Untitled Dataset + + + + + Name or description of the dataset + + + + + Frame Index + + + + + Position in the frame + + + + + Measurement Unit + + + + + Volts, Amps, etc. + + + + + Unit of measurement (optional) + + + + + Display widget (optional) + + + + + Minimum Value + + + + + + Required for bar/gauge widgets + + + + + Maximum Value + + + + + Alarm Value + + + + + Triggers alarm in bar widgets and LED panels + + + + + Oscilloscope Plot + + + + + Plot data in real-time + + + + + FFT Plot + + + + + Plot frequency-domain data + + + + + FFT Window Size + + + + + Samples for FFT calculation + + + + + Show in LED Panel + + + + + Quick status monitoring + + + + + LED High (On) Value + + + + + Threshold for LED on + + + + + Normal (UTF8) + + + + + Hexadecimal + + + + + Base64 + + + + + Data Grid + + + + + GPS Map + + + + + Gyroscope + + + + + Multiple Plot + + + + + Accelerometer + + + + + Bar + + + + + Gauge + + + + + Compass + + + + + No + + + + + Linear Plot + + + + + Logarithmic Plot + + + + + ProjectStructure + + + Project Structure + + + + + IDX → %1 + + + + + ProjectView + + + Start Building Now! + + + + + Get started by adding a group with the toolbar buttons above. + + + + + QObject + + + Failed to load welcome text :( + + + + + QwtPlotRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + QwtPolarRenderer + + + + + Documents + + + + + Images + + + + + Export File Name + + + + + Root + + + %1 - %2 + + + + + Device Defined Project + + + + + Empty Project + + + + + %1 - Project Editor + + + + + modified + + + + + Serial + + + COM Port + + + + + Baud Rate + + + + + Data Bits + + + + + Parity + + + + + Stop Bits + + + + + Flow Control + + + + + Auto Reconnect + + + + + Send DTR Signal + + + + + Settings + + + Language + + + + + Theme + + + + + Plugin System + + + + + Using the plugin system, other applications & scripts can interact with %1 by establishing a TCP connection on port 7777. + + + + + Setup + + + Setup + + + + + Device Setup + + + + + I/O Interface: %1 + + + + + Create CSV File + + + + + Frame Parsing + + + + + No Parsing (Device Sends JSON Data) + + + + + Parse via JSON Project File + + + + + Change Project File (%1) + + + + + Select Project File + + + + + Device + + + + + Settings + + + + + TableDelegate + + + Parameter + + + + + Value + + + + + Parameter Description + + + + + No + + + + + Yes + + + + + Terminal + + + Copy + + + + + Select all + + + + + Clear + + + + + Print + + + + + Save as + + + + + No data received so far + + + + + Send Data to Device + + + + + Echo + + + + + Autoscroll + + + + + Show Timestamp + + + + + Emulate VT-100 + + + + + Display: %1 + + + + + Toolbar + + + Project Editor + + + + + CSV Player + + + + + Setup + + + + + Console + + + + + Widgets + + + + + Dashboard + + + + + MQTT + + + + + Help + + + + + About + + + + + + Disconnect + + + + + Connect + + + + + New Project + + + + + Load Project + + + + + Save Project + + + + + + Data Grid + + + + + Multiple Plots + + + + + Multiple Plot + + + + + + Accelerometer + + + + + + Gyroscope + + + + + Map + + + + + GPS Map + + + + + Container + + + + + Dataset Container + + + + + UI::Dashboard + + + Status Panel + + + + + UI::DashboardWidget + + + Invalid + + + + + Updater + + + Would you like to download the update now? + + + + + Would you like to download the update now? This is a mandatory update, exiting now will close the application + + + + + Version %1 of %2 has been released! + + + + + No updates are available for the moment + + + + + Congratulations! You are running the latest version of %1 + + + + + ViewOptions + + + Widget Setup + + + + + Visualization Options + + + + + Points: + + + + + Decimal places: + + + + + Columns: + + + + + Data Grids + + + + + Multiple Data Plots + + + + + LED Panels + + + + + FFT Plots + + + + + Data Plots + + + + + Bars + + + + + Gauges + + + + + Compasses + + + + + Gyroscopes + + + + + Accelerometers + + + + + GPS + + + + + Clear Dashboard Data + + + + + Display Console Window + + + + + WidgetGrid + + + Dashboard + + + + + Widgets::FFTPlot + + + Frequency (Hz) + + + + + Magnitude (dB) + + + + + Widgets::MultiPlot + + + Unknown + + + + + Samples + + + + + Widgets::Plot + + + Samples + + + + diff --git a/app/translations/zh.qm b/app/translations/zh.qm deleted file mode 100644 index 04eb882139278dc867b0ece5a4c669556cdd1599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30382 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 diff --git a/app/translations/zh.ts b/app/translations/zh.ts deleted file mode 100644 index c2988cff..00000000 --- a/app/translations/zh.ts +++ /dev/null @@ -1,3741 +0,0 @@ - - - - - About - - - About - 关于 - - - - Version %1 - 版本%1 - - - - Copyright © 2020-%1 %2, released under the MIT License. - 版权所有©2020-%1 %2,根据MIT许可证发行。 - - - - The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - 该程序按原样提供,没有任何形式的保证,包括针对特定目的的设计,适销性和适用性的保证。 - - - Contact author - 联系作者 - - - - Report bug - 反馈问题 - - - Check for updates - 检查更新 - - - - Documentation - 文献资料 - - - - Close - 关闭 - - - Open log file - 打开日志文件 - - - - Website - 网站 - - - - Acknowledgements - 致谢 - - - - Make a donation - 进行捐赠 - - - - AccelerometerDelegate - - G Units - G 单位 - - - %1 G MAX - %1 G 最大 - - - %1 G MIN - %1 G 最小 - - - %1 G ACT - %1 G 实际 - - - Reset - 重置 - - - - Acknowledgements - - - Acknowledgements - 致谢 - - - - Close - 关闭 - - - - Application - - Check for updates automatically? - 自动检查更新? - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - %1是否自动检查更新? 您始终可以从“关于”对话框中手动检查更新 - - - Drop JSON and CSV files here - 在此处拖放JSON和CSV文件 - - - - BluetoothLE - - - Device - - - - - Service - - - - - Scanning.... - - - - - Sorry, this version of %1 is not supported yet. We'll update Serial Studio to work with this operating system as soon as Qt officially supports it. - - - - - CSV::Export - - - CSV file not open - CSV文件未打开 - - - - Cannot find CSV export file! - 找不到CSV导出的文件! - - - - CSV File Error - CSV文件错误 - - - - Cannot open CSV file for writing! - 无法打开CSV文件进行写入! - - - - CSV::Player - - - Select CSV file - 选择CSV文件 - - - - CSV files - CSV文件 - - - Invalid configuration for CSV player - CSV播放器的配置无效 - - - You need to select a JSON map file in order to use this feature - 您需要选择一个JSON映射文件才能使用此功能 - - - - Serial port open, do you want to continue? - 串行端口已打开,您要继续吗? - - - - In order to use this feature, its necessary to disconnect from the serial port - 为了使用此功能,必须断开与串行端口的连接 - - - There is an error with the data in the CSV file - CSV文件中的数据有误 - - - Please verify that the CSV file was created with Serial Studio - 请确认CSV文件是使用Serial Studio创建的 - - - - Cannot read CSV file - 无法读取CSV文件 - - - - Please check file permissions & location - 请检查文件的权限和位置 - - - Replay of %1 - 重播%1 - - - - Console - - No data received so far... - 目前未收到任何数据... - - - Send data to device - 发送数据到设备 - - - Echo - 回声 - - - Autoscroll - 自动滚屏 - - - Show timestamp - 显示时间戳 - - - Copy - 复制 - - - Clear - 删除 - - - Save as - 另存为 - - - Select all - 全选 - - - No data received so far - 目前未收到任何数据 - - - Print - 打印 - - - Hide menubar - 隐藏菜单栏 - - - Show menubar - 显示菜单栏 - - - - Console - 控制台 - - - - CsvPlayer - - - CSV Player - CSV 播放器 - - - Invalid configuration for CSV player - CSV播放器的配置无效 - - - You need to select a JSON map file in order to use this feature - 您需要选择一个JSON映射文件才能使用此功能 - - - Select CSV file - 选择CSV文件 - - - CSV files (*.csv) - CSV文件 (*.csv) - - - Serial port open, do you want to continue? - 串行端口已打开,您要继续吗? - - - In order to use this feature, its necessary to disconnect from the serial port - 为了使用此功能,必须断开与串行端口的连接 - - - There is an error with the data in the CSV file - CSV文件中的数据有误 - - - Please verify that the CSV file was created with Serial Studio - 请确认CSV文件是使用Serial Studio创建的 - - - Cannot read CSV file - 无法读取CSV文件 - - - Please check file permissions & location - 请检查文件的权限和位置 - - - Replay of %1 - 重播%1 - - - CSV files - CSV文件 - - - - Dashboard - - - Console - 控制台 - - - - DashboardTitle - - - Console - 控制台 - - - - DataGrid - - View - 视图 - - - Horizontal Range - 水平范围 - - - Data Groups - 数据组别 - - - Data Plots - 数据图 - - - Data - 数据 - - - Points - 点数 - - - Scale - 缩放倍数 - - - - DeviceManager - - Communication Mode - 通信模式 - - - Auto (JSON from serial device) - 自动(来自串行设备的JSON) - - - Manual (use JSON map file) - 手动(使用JSON映射文件) - - - Change map file (%1) - 更改地图文件(%1) - - - Select map file - 选择地图文件 - - - COM Port - COM端口 - - - Baud Rate - 波特率 - - - Data Bits - 数据位 - - - Parity - 校验位 - - - Stop Bits - 停止位 - - - Flow Control - 流控位 - - - Language - 语言 - - - - Donate - - - - Donate - 捐赠 - - - - Later - 稍后再说 - - - - Close - 关闭 - - - - Support the development of %1! - 支持开发者%1! - - - - Serial Studio is free & open-source software supported by volunteers. Consider donating to support development efforts :) - Serial Studio是由志愿者支持的免费和开源软件。请考虑捐赠以支持开发工作 :) - - - - You can also support this project by sharing it, reporting bugs and proposing new features! - 你也可以通过分享、报告错误和提出新的功能来支持这个项目! - - - - Don't annoy me again! - 不再提醒! - - - - Downloader - - - - Updater - 更新器 - - - - - - Downloading updates - 下载更新 - - - - Time remaining: 0 minutes - 剩余时间:0分钟 - - - - Open - 打开 - - - - - Stop - 停止 - - - - - Time remaining - 剩余时间 - - - - unknown - 未知 - - - - Error - 错误 - - - - Cannot find downloaded update! - 找不到下载的更新! - - - - Close - 关闭 - - - - Download complete! - 下载完成! - - - - The installer will open separately - 安装程序将单独打开 - - - - Click "OK" to begin installing the update - 点击“确定”开始安装更新 - - - - In order to install the update, you may need to quit the application. - 为了安装更新,您可能需要退出该应用程序。 - - - - In order to install the update, you may need to quit the application. This is a mandatory update, exiting now will close the application - 为了安装更新,您可能需要退出该应用程序。 这是强制性更新,现在退出将关闭应用程序 - - - - Click the "Open" button to apply the update - 点击“打开”按钮开始更新 - - - - Are you sure you want to cancel the download? - 您确定要取消下载吗? - - - - Are you sure you want to cancel the download? This is a mandatory update, exiting now will close the application - 您确定要取消下载吗? 这是强制性更新,现在退出将关闭应用程序 - - - - - %1 bytes - %1个字节 - - - - - %1 KB - - - - - - %1 MB - - - - - of - - - - - Downloading Updates - 下载更新 - - - - Time Remaining - 剩余时间 - - - - Unknown - 未知 - - - - about %1 hours - 大约%1小时 - - - - about one hour - 大约一小时 - - - - %1 minutes - %1分钟 - - - - 1 minute - 1分钟 - - - - %1 seconds - %1秒 - - - - 1 second - 一秒 - - - - Export - - CSV file not open - CSV文件未打开 - - - Cannot find CSV export file! - 找不到CSV导出的文件! - - - CSV File Error - CSV文件错误 - - - Cannot open CSV file for writing! - 无法打开CSV文件进行写入! - - - - Footer - - - Close - 关闭 - - - - Add group - 添加组别 - - - - Customize frame parser - - - - - Open existing project... - 打开现有的项目... - - - - Create new project - 创建新项目 - - - - Apply - 应用 - - - - Save - 保存 - - - - GpsMap - - - Center on coordinate - 以坐标为中心 - - - - Group - - Invalid - 无效 - - - - GroupEditor - - - Group %1 - - - - - GyroDelegate - - %1° YAW - %1°偏航角 - - - %1° ROLL - %1°翻滚角 - - - %1° PITCH - %1°俯仰角 - - - - Hardware - - - Data source - - - - - Header - - - Project title (required) - 项目名称(必填) - - - - Data separator (default is ',') - 数据分隔符(默认为',') - - - - Frame start sequence (default is '/*') - - - - - Frame end sequence (default is '*/') - - - - Frame start sequence (default is '%1') - 帧开始顺序(默认为'%1') - - - Frame end sequence (default is '%1') - 帧结束序列(默认为'%1') - - - - IO::Console - - - ASCII - ASCII - - - - HEX - HEX - - - - No line ending - 无行结尾 - - - - New line - 换行 - - - - Carriage return - 回车 - - - - NL + CR - 换行和回车 - - - - Plain text - 纯文本 - - - - Hexadecimal - 十六进制 - - - - Export console data - 导出控制台数据 - - - - Text files - 文本文件 - - - - File save error - 文件保存错误 - - - - IO::DataSources::Network - - Socket error - 套接字错误 - - - IP address lookup error - IP地址查询错误 - - - Network socket error - 网络套接字错误 - - - - IO::DataSources::Serial - - None - 无(None) - - - No Device - 没有设备 - - - Even - 偶校验(Even) - - - Odd - 奇校验(Odd) - - - Space - 校验位总为0(Space) - - - Mark - 校验位总为1(Mark) - - - Baud rate registered successfully - 波特率注册成功 - - - Rate "%1" has been added to baud rate list - 速率"%1"已添加到波特率列表中 - - - Select Port - 选择端口 - - - Critical serial port error - 严重的串行端口错误 - - - Serial port error - 串口错误 - - - - IO::Drivers::BluetoothLE - - - The BLE device has been disconnected - - - - - Select device - - - - - Select service - - - - - Error while configuring BLE service - - - - - Operation error - 操作错误 - - - - Characteristic write error - - - - - Descriptor write error - - - - - Unknown error - 未知错误 - - - - Characteristic read error - - - - - Descriptor read error - - - - - Bluetooth adapter is off! - - - - - Invalid Bluetooth adapter! - - - - - Unsuported platform or operating system - - - - - Unsupported discovery method - - - - - General I/O error - - - - - IO::Drivers::Network - - - Network socket error - 网络套接字错误 - - - - IO::Drivers::Serial - - - - - - None - - - - - No Device - 没有设备 - - - - Even - 偶校验(Even) - - - - Odd - 奇校验(Odd) - - - - Space - 校验位总为0(Space) - - - - Mark - 校验位总为1(Mark) - - - - Baud rate registered successfully - 波特率注册成功 - - - - Rate "%1" has been added to baud rate list - 速率"%1"已添加到波特率列表中 - - - - Select port - - - - - IO::Manager - - - Serial port - 选择端口 - - - - Network port - 网络端口 - - - - Bluetooth LE device - - - - - JSON::Editor - - Dataset widgets - 数据项小部件 - - - Accelerometer - 加速度计 - - - Gyroscope - 陀螺仪 - - - Map - 地图 - - - None - - - - Gauge - 仪表盘 - - - Bar/level - 柱形图/级别 - - - Compass - 指南针 - - - New Project - 新项目 - - - Do you want to save your changes? - 你想保存你的改动吗? - - - You have unsaved modifications in this project! - 你在这个项目中有未保存的修改! - - - Project error - 项目错误 - - - Project title cannot be empty! - 项目标题不能是空的! - - - Project error - Group %1 - Project error - Group %1 - - - Group title cannot be empty! - 组的标题不能是空的! - - - Project error - Group %1, Dataset %2 - 项目错误 - 组%1,数据项%2 - - - Dataset title cannot be empty! - 数据项的标题不能是空的! - - - Warning - Group %1, Dataset %2 - 警告 - 组 %1, 数据项 %2 - - - Dataset contains duplicate frame index position! Continue? - 数据项包含重复的位置序号! 继续吗? - - - Save JSON project - 保存JSON项目 - - - File open error - 文件打开错误 - - - Select JSON file - 选择JSON映射文件 - - - New Group - 新组别 - - - Delete group "%1" - 删除组"%1" - - - Are you sure you want to delete this group? - 你确定要删除这个组吗? - - - Are you sure you want to change the group-level widget? - 你确定你要改变组级小部件吗? - - - Existing datasets for this group will be deleted - 该组的现有数据项将被删除 - - - Accelerometer %1 - 加速度计%1 - - - Gyro %1 - 陀螺仪 %1 - - - Latitude - 纬度 - - - Longitude - 经度 - - - New dataset - 创建数据项 - - - Delete dataset "%1" - 删除数据项"%1" - - - Are you sure you want to delete this dataset? - 你确定要删除这个数据项吗? - - - GPS - 全球定位系统 - - - Multiple data plot - 多个数据图表 - - - Altitude - 海拔 - - - - JSON::Generator - - - Select JSON map file - 选择JSON映射文件 - - - - JSON files - JSON文件 - - - - JSON parse error - JSON解析错误 - - - JSON map file loaded successfully! - JSON映射文件已成功加载! - - - File "%1" loaded into memory - 文件“%1”已加载到内存中 - - - - Cannot read JSON file - 无法读取JSON文件 - - - - Please check file permissions & location - 请检查文件的权限和位置 - - - JSON/serial data format mismatch - JSON /串行数据格式不匹配 - - - The format of the received data does not correspond to the selected JSON map file. - 接收到的数据格式与所选的JSON映射文件不对应。 - - - - JSONDropArea - - - Drop JSON and CSV files here - 拖放JSON和CSV文件 - - - - JsonDatasetDelegate - - - - Dataset %1 - %2 - 数据项 %1 - %2 - - - - Title: - 标题: - - - - Sensor reading, uptime, etc... - 传感器读数、正常运行时间等... - - - - Units: - 单位: - - - - Volts, meters, seconds, etc... - 伏特,米,秒,等等... - - - - Frame index: - 部件序号: - - - Generate graph: - 生成图形: - - - - Widget: - 小工具: - - - - Min value: - 最小值: - - - - Max value: - 最大值: - - - - Generate plot: - 生成图形: - - - - Logarithmic plot: - 对数图: - - - - FFT plot: - FFT图: - - - - FFT Samples: - FFT采样点数: - - - - Alarm level: - 报警水平: - - - - Note: - 注: - - - - The compass widget expects values from 0° to 360°. - 指南针组件输入的数值需为0°到360°。 - - - - Display LED: - 显示LED: - - - - JsonGenerator - - Select JSON map file - 选择JSON映射文件 - - - JSON files (*.json) - JSON文件 (*.json) - - - JSON parse error - JSON解析错误 - - - JSON map file loaded successfully! - JSON映射文件已成功加载! - - - File "%1" loaded into memory - 文件“%1”已加载到内存中 - - - Cannot read JSON file - 无法读取JSON文件 - - - Please check file permissions & location - 请检查文件权限和位置 - - - JSON/serial data format mismatch - JSON /串行数据格式不匹配 - - - The format of the received data does not correspond to the selected JSON map file. - 接收到的数据格式与所选的JSON映射文件不对应。 - - - JSON files - JSON文件 - - - - JsonGroupDelegate - - - Group %1 - %2 - 组别 %1 - %2 - - - - - Title - 标题 - - - - Group widget - - - - - Empty group - - - - - Set group title and click on the "Add dataset" button to begin - - - - - Add dataset - 添加数据项 - - - - - Note: - 注: - - - - The accelerometer widget expects values in m/s². - 加速度计部件需得到以m/s²为单位的值。 - - - - The gyroscope widget expects values in degrees (0° to 360°). - 陀螺仪组件输入的数值需为0°到360°(以度为单位)。 - - - - KLed - - - LED on - Accessible name of a Led whose state is on - LED灯亮起 - - - - LED off - Accessible name of a Led whose state is off - LED关闭 - - - - MQTT - - - Version - 版本 - - - - Mode - 模式 - - - - Host - 服务器 - - - - Port - 端口 - - - - Topic - 主题 - - - - MQTT topic - MQTT主题 - - - - User - 用户 - - - - MQTT username - MQTT用户名 - - - - Password - 密码 - - - - MQTT password - MQTT密码 - - - DNS lookup - DNS查询 - - - Enter address (e.g. google.com) - 输入地址(例如baidu.com) - - - - Disconnect - 断开 - - - Connect - 连接 - - - - Advanced setup - 高级设置 - - - - Connect to broker - 连接 - - - - MQTT::Client - - - Publisher - 发布者 - - - - Subscriber - 订阅者 - - - - IP address lookup error - IP地址查询错误 - - - - Unknown error - 未知错误 - - - - Connection refused - 拒绝连接 - - - - Remote host closed the connection - 远程主机关闭连接 - - - - Host not found - 未找到主机 - - - - Socket access error - 套接字访问错误 - - - - Socket resource error - 套接字资源错误 - - - - Socket timeout - 套接字超时 - - - - Socket datagram too large - 套接字数据包太大 - - - - Network error - 网络错误 - - - - Address in use - 地址已被使用 - - - - Address not available - 找不到地址 - - - - Unsupported socket operation - 不支持的套接字操作 - - - - Unfinished socket operation - 未完成的套接字操作 - - - - Proxy authentication required - 需要代理认证 - - - - SSL handshake failed - SSL握手失败 - - - - Proxy connection refused - 拒绝代理连接 - - - - Proxy connection closed - 代理连接关闭 - - - - Proxy connection timeout - 代理连接超时 - - - - Proxy not found - 未找到代理 - - - - Proxy protocol error - 代理协议错误 - - - - Operation error - 操作错误 - - - - SSL internal error - SSL内部错误 - - - - Invalid SSL user data - 无效的SSL用户数据 - - - - Socket temprary error - 套接字临时错误 - - - - Unacceptable MQTT protocol - 不可接受的MQTT协议 - - - - MQTT identifier rejected - MQTT标识符被拒绝 - - - - MQTT server unavailable - MQTT服务器不可用 - - - - Bad MQTT username or password - 错误的MQTT用户名或密码 - - - - MQTT authorization error - MQTT鉴权错误 - - - - MQTT no ping response - MQTT没有PING响应 - - - - MQTT client error - MQTT客户端错误 - - - - 0: At most once - 0: 最多一次 - - - - 1: At least once - 1: 至少一次 - - - - 2: Exactly once - 2:正好一次 - - - - - System default - 系统默认 - - - - Select CA file - 选择CA文件 - - - - Cannot open CA file! - 无法打开CA文件! - - - - MQTT client SSL/TLS error, ignore? - MQTT客户端SSL/TLS错误,忽略? - - - - MQTTConfiguration - - - MQTT Configuration - MQTT配置 - - - - Version - 版本 - - - - Mode - 模式 - - - - QOS level - QOS水平 - - - - Keep alive (s) - keep-alive超时(s) - - - - Host - 服务器 - - - - Port - 端口 - - - - Topic - 主题 - - - - Retain - 保留 - - - - MQTT topic - MQTT主题 - - - - Add retain flag - 添加保留标志 - - - - User - 用户 - - - - Password - 密码 - - - - MQTT username - MQTT用户名 - - - - MQTT password - MQTT密码 - - - - Enable SSL/TLS: - 启用SSL/TLS: - - - - Certificate: - 证书: - - - - Use system database - 使用系统数据库 - - - - Custom CA file - 选择自定义CA文件 - - - - Protocol: - 协议: - - - - CA file: - CA文件: - - - - Disconnect - 断开 - - - - Connect - 连接 - - - - Apply - 应用 - - - - MapDelegate - - Center on coordinate - 以坐标为中心 - - - - Menubar - - - File - 文件 - - - - Select JSON file - 选择JSON映射文件 - - - - CSV export - 导出CSV - - - - Enable CSV export - 启用CSV导出 - - - - Show CSV in explorer - 在资源管理器中显示CSV - - - - Replay CSV - 重播CSV - - - - Export console output - 导出控制台数据 - - - - Quit - 退出 - - - - Edit - 编辑 - - - - Copy - 复制 - - - - Select all - 全选 - - - - Clear console output - 清除控制台输出 - - - - Communication mode - 通讯方式 - - - - Device sends JSON - 设备发送JSON - - - - Load JSON from computer - 从计算机加载JSON - - - - View - 视图 - - - - - Console - 控制台 - - - - Dashboard - 仪表盘 - - - Widgets - 小部件 - - - - Show setup pane - 显示设置窗格 - - - Hide menubar - 隐藏菜单栏 - - - Show menubar - 显示菜单栏 - - - - Exit full screen - 退出全屏 - - - - Enter full screen - 进入全屏 - - - - Autoscroll - 自动滚屏 - - - - Show timestamp - 显示时间戳 - - - - VT-100 emulation - VT-100仿真 - - - - Echo user commands - 回显用户命令 - - - - Display mode - 可视化模式 - - - - Normal (plain text) - 普通(纯文本) - - - - Binary (hexadecimal) - 二进制(十六进制) - - - - Line ending character - 行尾字符 - - - - Help - 帮助 - - - - - About %1 - 关于%1 - - - - Auto-updater - 自动更新 - - - - Check for updates - 检查更新 - - - - Project website - 项目网站 - - - - Documentation/wiki - 文档/维基 - - - Show log file - 打开日志文件 - - - - Report bug - 反馈问题 - - - - Print - 打印 - - - - MenubarMacOS - - - File - 文件 - - - - Select JSON file - 选择JSON映射文件 - - - - CSV export - 导出CSV - - - - Enable CSV export - 启用CSV导出 - - - - Show CSV in explorer - 在资源管理器中显示CSV - - - - Replay CSV - 重播CSV - - - - Export console output - 导出控制台数据 - - - - Quit - 退出 - - - - Edit - 编辑 - - - - Copy - 复制 - - - - Select all - 全选 - - - - Clear console output - 清除控制台输出 - - - - Communication mode - VT-100仿真 - - - - Device sends JSON - 设备发送JSON - - - - Load JSON from computer - 从计算机加载JSON - - - - View - 视图 - - - - - Console - 控制台 - - - - Dashboard - 仪表盘 - - - Widgets - 小部件 - - - - Show setup pane - 显示设置窗格 - - - - Exit full screen - 退出全屏 - - - - Enter full screen - 进入全屏 - - - - Autoscroll - 自动滚屏 - - - - Show timestamp - 显示时间戳 - - - - VT-100 emulation - VT-100仿真 - - - - Echo user commands - 回显用户命令 - - - - Display mode - 可视化模式 - - - - Normal (plain text) - 普通(纯文本) - - - - Binary (hexadecimal) - 二进制(十六进制) - - - - Line ending character - 行尾字符 - - - - Help - 帮助 - - - - - About %1 - 关于%1 - - - - Auto-updater - 自动更新 - - - - Check for updates - 检查更新 - - - - Project website - 项目网站 - - - - Documentation/wiki - 文档/维基 - - - Show log file - 打开日志文件 - - - - Report bug - 反馈问题 - - - - Print - 打印 - - - - Misc::MacExtras - - - Setup - 设置 - - - - Console - 控制台 - - - Widgets - 小部件 - - - - Dashboard - 仪表盘 - - - - Misc::ModuleManager - - Initializing... - 初始化... - - - Configuring updater... - 配置更新器... - - - Initializing modules... - 初始化模块... - - - Loading user interface... - 正在加载用户界面... - - - The rendering engine change will take effect after restart - 渲染引擎的改变将在重新启动后生效 - - - - Unknown OS - - - - - The change will take effect after restart - - - - - Do you want to restart %1 now? - 你现在想重新启动%1吗? - - - - Misc::ThemeManager - - - The theme change will take effect after restart - 主题变更将在重启后生效 - - - - Do you want to restart %1 now? - 你现在想重新启动%1吗? - - - - Misc::Utilities - - - Check for updates automatically? - 自动检查更新? - - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - %1是否应该自动检查更新? 您始终可以从“关于”对话框中手动检查更新 - - - - Ok - 好的 - - - - Save - 保存 - - - - Save all - 保存所有 - - - - Open - 打开 - - - - Yes - - - - - Yes to all - 全部选是 - - - - No - 没有 - - - - No to all - 全部选否 - - - - Abort - 中止 - - - - Retry - 重试 - - - - Ignore - 忽略 - - - - Close - 关闭 - - - - Cancel - 取消 - - - - Discard - 丢弃 - - - - Help - 帮助 - - - - Apply - 应用 - - - - Reset - 重置 - - - - Restore defaults - 恢复默认值 - - - - ModuleManager - - Initializing... - 初始化... - - - Configuring updater... - 配置更新器... - - - Initializing modules... - 初始化模块... - - - Starting timers... - 开始计时... - - - Loading user interface... - 正在加载用户界面... - - - The rendering engine change will take effect after restart - 渲染引擎的改变将在重新启动后生效 - - - Do you want to restart %1 now? - 你现在想重新启动%1吗? - - - - Network - - - Socket type - 套接字类型 - - - IP Address - IP地址 - - - - Port - 端口 - - - DNS lookup - DNS查询 - - - Enter address (e.g. google.com) - 输入地址(例如baidu.com) - - - Host - 服务器 - - - - Multicast - 组播 - - - - Remote address - 远程地址 - - - - Local port - 本地端口 - - - - Type 0 for automatic port - 写0,用于自动分配端口 - - - - Remote port - 远程端口 - - - - Ignore data delimiters - 忽略数据定界符 - - - - Plugins::Bridge - - Unable to start plugin TCP server - 无法启动插件TCP服务器 - - - Plugin server - 插件服务器 - - - Invalid pending connection - 无效的挂起连接 - - - - Plugins::Server - - - Unable to start plugin TCP server - 无法启动插件TCP服务器 - - - - Plugin server - 插件服务器 - - - - Invalid pending connection - 无效的挂起连接 - - - - Project::CodeEditor - - - New - - - - - Open - 打开 - - - - Save - 保存 - - - - Undo - - - - - Redo - - - - - Cut - - - - - Copy - 复制 - - - - Paste - - - - - Help - 帮助 - - - - Customize frame parser - - - - - - - The document has been modified! - - - - - - Are you sure you want to continue? - - - - - Select Javascript file to import - - - - - Frame parser code updated successfully! - - - - - No errors have been detected in the code. - - - - - Frame parser error! - - - - - No parse() function has been declared! - - - - - Frame parser syntax error! - - - - - Error on line %1. - - - - - Generic error - - - - - Evaluation error - - - - - Range error - - - - - Reference error - - - - - Syntax error - - - - - Type error - - - - - URI error - - - - - Unknown error - 未知错误 - - - - Frame parser error detected! - - - - - Do you want to save the changes? - - - - - Project::Model - - - Dataset widgets - 数据项小部件 - - - - - Accelerometer - 加速度计 - - - - - Gyroscope - 陀螺仪 - - - - - GPS - 全球定位系统 - - - - Multiple data plot - 多个数据图表 - - - - None - - - - - Gauge - 仪表盘 - - - - Bar/level - 柱形图/级别 - - - - Compass - 指南针 - - - - New Project - 新项目 - - - - Do you want to save your changes? - 你想保存你的改动吗? - - - - You have unsaved modifications in this project! - 你在这个项目中有未保存的修改! - - - - Project error - 项目错误 - - - - Project title cannot be empty! - 项目标题不能是空的! - - - - Project error - Group %1 - Project error - Group %1 - - - - Group title cannot be empty! - 组的标题不能是空的! - - - - Project error - Group %1, Dataset %2 - 项目错误 - 组%1,数据项%2 - - - - Dataset title cannot be empty! - 数据项的标题不能是空的! - - - - Warning - Group %1, Dataset %2 - 警告 - 组 %1, 数据项 %2 - - - - Dataset contains duplicate frame index position! Continue? - 数据项包含重复的位置序号! 继续吗? - - - - Save JSON project - 保存JSON项目 - - - - File open error - 文件打开错误 - - - - Select JSON file - 选择JSON映射文件 - - - - New Group - 新组别 - - - - Delete group "%1" - 删除组"%1" - - - - Are you sure you want to delete this group? - 你确定要删除这个组吗? - - - - Are you sure you want to change the group-level widget? - 你确定你要改变组级小部件吗? - - - - Existing datasets for this group will be deleted - 该组的现有数据项将被删除 - - - - - - Accelerometer %1 - 加速度计%1 - - - - - - Gyro %1 - 陀螺仪 %1 - - - - Latitude - 纬度 - - - - Longitude - 经度 - - - - Altitude - 海拔 - - - - New dataset - 创建数据项 - - - - Delete dataset "%1" - 删除数据项"%1" - - - - Are you sure you want to delete this dataset? - 你确定要删除这个数据项吗? - - - - ProjectEditor - - JSON Editor - %1 - JSON编辑器 - %1 - - - Project title (required) - 项目名称(必填) - - - Data separator (default is ',') - 数据分隔符(默认为',') - - - Frame start sequence (default is '%1') - 帧开始顺序(默认为'%1') - - - Frame end sequence (default is '%1') - 帧结束序列(默认为'%1') - - - - Project Editor - %1 - - - - - Start something awesome - 开始做一些了不起的事情 - - - Click on the "%1" button to begin - 点击"%1 "按钮,开始 - - - Close - 关闭 - - - Add group - 添加组别 - - - Open existing project... - 打开现有的项目... - - - Create new project - 创建新项目 - - - Apply - 应用 - - - Save - 保存 - - - - Click on the "Add group" button to begin - 点击 "添加组 "按钮,开始 - - - - QObject - - - Failed to load welcome text :( - 无法加载欢迎文本 - - - - QwtPlotRenderer - - - - - Documents - 文档 - - - - Images - 图片 - - - - Export File Name - 输出文件名 - - - - QwtPolarRenderer - - - - - Documents - 文档 - - - - Images - 图片 - - - - Export File Name - 输出文件名 - - - - Serial - - - COM Port - COM端口 - - - - Baud Rate - 波特率 - - - - Data Bits - 数据位 - - - - Parity - 校验位 - - - - Stop Bits - 停止位 - - - - Flow Control - 流控位 - - - - Auto-reconnect - 自动重新连接 - - - - SerialManager - - None - 无(None) - - - No Device - 没有设备 - - - Received: %1 %2 - 已接收 %1 %2 - - - Even - 偶校验(Even) - - - Odd - 奇校验(Odd) - - - Space - 校验位总为0(Space) - - - Mark - 校验位总为1(Mark) - - - Select Port - 选择端口 - - - Critical serial port error - 严重的串行端口错误 - - - Plain text (as it comes) - 纯文本(随它而来) - - - Plain text (remove control characters) - 纯文本(删除控制字符) - - - Hex display - 十六进制 - - - As it comes - 随它而来 - - - Remove control characters - 删除控制字符 - - - Hexadecimal - 十六进制 - - - Baud rate registered successfully - 波特率注册成功 - - - Rate "%1" has been added to baud rate list - 速率"%1"已添加到波特率列表中 - - - - Settings - - - Language - 语言 - - - Start sequence - 启动顺序 - - - End sequence - 完成顺序 - - - - Plugin system - 插件系统 - - - - Software rendering - - - - - Applications/plugins can interact with %1 by establishing a TCP connection on port 7777. - 通过在端口7777上建立TCP连接,应用程序/插件可以与%1进行交互。 - - - - Theme - 主题 - - - Data separator - 数据分隔符 - - - UI refresh rate - UI刷新率 - - - Rendering engine - 渲染引擎 - - - Threaded frame parsing - 多线程框架分析 - - - Multithreaded frame parsing - 多线程框架分析 - - - - Custom window decorations - 定制窗口装饰 - - - - Setup - - - Communication Mode - 通信模式 - - - Auto (JSON from serial device) - 自动(来自串行设备的JSON) - - - Manual (use JSON map file) - 手动(使用JSON映射文件) - - - Change map file (%1) - 更改地图文件(%1) - - - Select map file - 选择地图文件 - - - COM Port - COM端口 - - - Baud Rate - 波特率 - - - Data Bits - 数据位 - - - Parity - 校验位 - - - Stop Bits - 停止位 - - - Flow Control - 流控位 - - - Language - 语言 - - - Open mode - 开放模式 - - - Read-only - 只读 - - - Read/write - 读/写 - - - Display mode - 可视化模式 - - - Custom baud rate - 自定义波特率 - - - CSV Export - 导出CSV - - - CSV Player - CSV 播放器 - - - - Create CSV file - 创建CSV文件 - - - Start sequence - 启动序列 - - - End sequence - 结束序列 - - - Serial - 串行端口 - - - Network - 网络 - - - - Settings - 设定值 - - - - MQTT - MQTT - - - - Setup - 设置 - - - - No parsing (device sends JSON data) - 不进行解析(设备发送JSON数据) - - - - Parse via JSON project file - 通过JSON项目文件进行解析 - - - - Change project file (%1) - 更改项目文件 (%1) - - - - Select project file - 选择项目文件 - - - - Device - - - - - Sidebar - - CSV Player - CSV 播放器 - - - Open CSV - 打开CSV - - - Log - 日志 - - - - Terminal - - - Copy - 复制 - - - - Select all - 全选 - - - - Clear - 删除 - - - - Print - 打印 - - - - Save as - 另存为 - - - Hide menubar - 隐藏菜单栏 - - - Show menubar - 显示菜单栏 - - - - No data received so far - 目前未收到任何数据 - - - - Send data to device - 发送数据到设备 - - - - Echo - 回声 - - - - Autoscroll - 自动滚屏 - - - - Show timestamp - 显示时间戳 - - - - Toolbar - - Devices - 设备 - - - - Console - 控制台 - - - - Dashboard - 仪表盘 - - - Widgets - 小部件 - - - About - 关于 - - - CSV Export - 导出CSV - - - Log - 日志 - - - CSV Player - CSV 播放器 - - - - Open CSV - 打开CSV - - - - Setup - 设置 - - - - Project Editor - - - - - Disconnect - 断开 - - - - Connect - 连接 - - - JSON Editor - JSON编辑器 - - - - TreeView - - - JSON Project Tree - JSON项目树 - - - - UI::Dashboard - - - Status Panel - 状态面板 - - - - UI::DashboardWidget - - - Invalid - 无效 - - - - UI::WidgetLoader - - Invalid - 无效 - - - - Updater - - - Would you like to download the update now? - 您要立即下载更新吗? - - - - Would you like to download the update now? This is a mandatory update, exiting now will close the application - 您要立即下载更新吗? 这是强制性更新,现在退出将关闭应用程序 - - - - Version %1 of %2 has been released! - %2的版本%1已发布! - - - - No updates are available for the moment - 目前没有可用的更新 - - - - Congratulations! You are running the latest version of %1 - 恭喜你! 您正在运行最新版本的%1 - - - - ViewOptions - - - View - 视图 - - - Plot divisions (%1) - 图形划分 (%1) - - - - Datasets - 数据项 - - - - Multiple data plots - 多种数据图表 - - - - FFT plots - FFT图 - - - - Data plots - 数据图表 - - - - Bars - 柱形图 - - - - Gauges - 角度计 - - - - Compasses - 指南针 - - - - Gyroscopes - 陀螺仪 - - - - Accelerometers - 加速度计 - - - - GPS - 全球定位系统 - - - - LED Panels - LED面板 - - - View options - 可视化选项 - - - - Points: - 点数: - - - Widgets: - 小工具: - - - - Visualization options - 可视化选项 - - - - Decimal places: - 小数位: - - - - Widget size: - 部件大小: - - - - WidgetGrid - - - Data - 数据 - - - - Widgets - - View - 视图 - - - Widgets - 小部件 - - - - Widgets::FFTPlot - - - Samples - 采样点 - - - - FFT of %1 - %1的FFT - - - - Widgets::GPS - - Latitude - 纬度 - - - Longitude - 经度 - - - Altitude - 海拔 - - - Loading... - 正在加载... - - - Double-click to open map - 双击以打开地图 - - - - Widgets::MultiPlot - - - Unknown - 未知 - - - - Samples - 采样点 - - - - Widgets::Plot - - - Samples - 采样点 - - - - Widgets::WidgetLoader - - Invalid - 无效 - - - - main - - Check for updates automatically? - 自动检查更新? - - - Should %1 automatically check for updates? You can always check for updates manually from the "About" dialog - %1是否应该自动检查更新? 您随时可以从“关于”对话框中手动检查更新 - - - Drop *.json and *.csv files here - 拖放*.json和*.csv文件 - - - Drop JSON and CSV files here - 拖放JSON和CSV文件 - - - Should %1 automatically check for updates? You can always check for updates manually from the "Help" menu - %1是否应该自动检查更新? 您随时可以从“关于”对话框中手动检查更新 - - -