From 8392daa9ac3c5da144876295a0b50305ec2c42da Mon Sep 17 00:00:00 2001 From: lexcibien Date: Thu, 5 Mar 2026 23:29:46 -0300 Subject: [PATCH 01/12] implement translation on savvyCAN --- .gitignore | 3 +++ main.cpp | 13 +++++++++++++ scripts/build_translations.sh | 12 ++++++++++++ scripts/edit_translations.sh | 6 ++++++ scripts/update_translations.sh | 11 +++++++++++ 5 files changed, 45 insertions(+) create mode 100755 scripts/build_translations.sh create mode 100755 scripts/edit_translations.sh create mode 100755 scripts/update_translations.sh diff --git a/.gitignore b/.gitignore index 13068cd..d976787 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ build/ *.o *.obj +# Compiled translations +*.qm + # Precompiled Headers *.gch *.pch diff --git a/main.cpp b/main.cpp index df2f4a4..be139e6 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,7 @@ #include "mainwindow.h" #include +#include +#include class SavvyCANApplication : public QApplication { @@ -32,6 +34,17 @@ int main(int argc, char *argv[]) SavvyCANApplication a(argc, argv); + QTranslator translator; + QLocale locale = QLocale::system(); + QString lang = locale.name(); + QString shortLang = locale.name().left(2); // pt + + if (!translator.load("savvycan_" + lang, "translations")) + { + translator.load("savvycan_" + lang, "translations"); + } + a.installTranslator(&translator); + //Add a local path for Qt extensions, to allow for per-application extensions. a.addLibraryPath("plugins"); diff --git a/scripts/build_translations.sh b/scripts/build_translations.sh new file mode 100755 index 0000000..fa05d08 --- /dev/null +++ b/scripts/build_translations.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" +TRANSLATIONS_DIR="$PROJECT_ROOT/translations" + +echo "Gerando arquivos .qm..." + +for file in "$TRANSLATIONS_DIR"/*.ts; do + lrelease "$file" +done + +echo "Arquivos .qm gerados." \ No newline at end of file diff --git a/scripts/edit_translations.sh b/scripts/edit_translations.sh new file mode 100755 index 0000000..8347bf2 --- /dev/null +++ b/scripts/edit_translations.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" +TRANSLATIONS_DIR="$PROJECT_ROOT/translations" + +linguist "$TRANSLATIONS_DIR"/savvycan_*.ts \ No newline at end of file diff --git a/scripts/update_translations.sh b/scripts/update_translations.sh new file mode 100755 index 0000000..ac32455 --- /dev/null +++ b/scripts/update_translations.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" +TRANSLATIONS_DIR="$PROJECT_ROOT/translations" + +echo "Atualizando arquivos de tradução..." + +lupdate "$PROJECT_ROOT" \ +-ts "$TRANSLATIONS_DIR"/savvycan_*.ts + +echo "Traduções atualizadas." \ No newline at end of file From f4468163bae4c6f760fee9b69af481474ec5e4a5 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Thu, 5 Mar 2026 23:30:03 -0300 Subject: [PATCH 02/12] adding portuguese brazilian translation to app --- SavvyCAN.desktop | 4 + translations/pt_BR.qph | 47 + translations/savvycan_en.ts | 4158 +++++++++++++++++++++++++++++++ translations/savvycan_pt_BR.ts | 4161 ++++++++++++++++++++++++++++++++ 4 files changed, 8370 insertions(+) create mode 100644 translations/pt_BR.qph create mode 100644 translations/savvycan_en.ts create mode 100644 translations/savvycan_pt_BR.ts diff --git a/SavvyCAN.desktop b/SavvyCAN.desktop index 076ee6a..76585ed 100644 --- a/SavvyCAN.desktop +++ b/SavvyCAN.desktop @@ -1,11 +1,15 @@ [Desktop Entry] Type=Application Name=SavvyCAN +Name[pt_BR]=SavvyCAN GenericName=CANBus reverse engineering tool +GenericName[pt_BR]=Ferramenta Rede CAN de engenharia reversa Comment=Facilitates reverse engineering of canbus captures +Comment[pt_BR]=Facilitar engenharia reversa de capturas de Rede CAN Exec=SavvyCAN Icon=SavvyCAN Terminal=false Categories=Development;Electronics;IDE; MimeType=text/x-application; Keywords=embedded electronics;electronics;canbus;reverse engineering; +Keywords[pt_BR]=eletronica embarcada;eletronicos;canbus;engenharia reversa; diff --git a/translations/pt_BR.qph b/translations/pt_BR.qph new file mode 100644 index 0000000..cb6f173 --- /dev/null +++ b/translations/pt_BR.qph @@ -0,0 +1,47 @@ + + + + New + Novo + + + Save + Salvar + + + Cancel + Cancelar + + + Connect + Conectar + + + Disconnect + Desconectar + + + Yes + Sim + + + No + Não + + + Bus + Barramento + + + Frame + Frame + + + Frames + Frames + + + Scan + Varredura + + diff --git a/translations/savvycan_en.ts b/translations/savvycan_en.ts new file mode 100644 index 0000000..7129952 --- /dev/null +++ b/translations/savvycan_en.ts @@ -0,0 +1,4158 @@ + + + + + BisectWindow + + + + Bisector Window + + + + + + Splitting Strategy: + + + + + + ID Range + + + + + + TO + + + + + + Frame Number + + + + + + Percentage + + + + + + Bus Number + + + + + + Save Which Side: + + + + + + Lower Section + + + + + + Upper Section + + + + + + Number of Frames in Main List: + + + + + + + + 0 + + + + + + Saved Frames after split: + + + + + + Calculate Split + + + + + + Save split frames to a new file + + + + + + Replace main list with split frames + + + + + Successfully saved file + + + + + Error while attempting to save. + + + + + CANBridgeWindow + + + + CAN Bridger + + + + + + Side 1 + + + + + + + + Enable forwarding + + + + + + IDs to forward to side 2 + + + + + + Side 2 + + + + + + IDs to forward to side 1 + + + + + CANConnectionModel + + + Type + + + + + Subtype + + + + + Port + + + + + Buses + + + + + Status + + + + + CANDataGrid + + + + Form + + + + + CANFrameModel + + + Rx + + + + + Tx + + + + + Time Delta + + + + + Timestamp + + + + + ID + + + + + Ext + + + + + RTR + + + + + Cnt + + + + + Dir + + + + + Bus + + + + + Len + + + + + ASCII + + + + + Data + + + + + ConnectionWindow + + + + Connection Settings + + + + + + Disconnect Selected Device + + + + + + Reset Selected Device + + + + + + Bus Details: + + + + + + Speed: + + + + + + Listen Only: + + + + + + Enable Bus: + + + + + + Save Bus Settings + + + + + + Enable CAN FD: + + + + + + CAN FD Data Rate + + + + + + Connected Devices: + + + + + + Add New Device Connection + + + + + + Enable Console + + + + + + Device Console: + + + + + + Send: + + + + + + Send Hex + + + + + + Send Text + + + + + + Clear + + + + + DBCComparatorWindow + + + + DBC Comparator + + + + + + Side 1 + + + + + + + + TextLabel + + + + + + Load New File + + + + + + Side 2 + + + + + + Load A File + + + + + + Save Details to File + + + + + DBC Files (*.dbc *.DBC) + + + + + Text File (*.txt) + + + + + DBCHandler + + + + DBC File (*.dbc) + + + + + DBCLoadSaveWindow + + + + DBC File Manager + + + + + + Create new DBC + + + + + + Load + + + + + + Remove + + + + + + Move Up + + + + + + Save + + + + + + Edit + + + + + + Move Down + + + + + DBC File (*.dbc) + + + + + Tesla JSON File (*.json) + + + + + Secret CSV Signal Defs (*.csv) + + + + + DBCMainEditor + + + + DBC Editing Window + + + + + + New Node + + + + + + New Message + + + + + + New Signal + + + + + + Delete + + + + + + Find: + + + + + + Search + + + + + + Search Results: 0 of 0 + + + + + + Next + + + + + + Previous + + + + + Delete currently selected message + + + + + Rebase all messages + + + + + Rebase all messages in node + + + + + Duplicate node + + + + + Duplicate node and messages + + + + + DBCMessageEditor + + + + Message Editor + + + + + + Frame ID: + + + + + + Message Name: + + + + + + Frame Length: + + + + + + Text Color: + + + + + + Background Color: + + + + + + Comments: + + + + + + Sending Node: + + + + + + + + Set + + + + + + Sample Colored Output: + + + + + DBCNodeDuplicateEditor + + + + + + Duplicate Node + + + + + + New Node Name: + + + + + + Current Base ID: + + + + + + New Base ID: + + + + + + Cancel + + + + + DBCNodeEditor + + + + Node Editor + + + + + + Node Name: + + + + + + Comments: + + + + + DBCNodeRebaseEditor + + + + Rebase All Node Messages + + + + + + Node Name: + + + + + + Current Base ID: + + + + + + New Base ID: + + + + + + Rebase All Messages in Node + + + + + + Cancel + + + + + DBCSignalEditor + + + + Signal Editor + + + + + + Name: + + + + + + Bit Length: + + + + + + Byte Order + + + + + + LSB First (Little Endian) + + + + + + Type: + + + + + + Scale: + + + + + + Bias: + + + + + + Min Value: + + + + + + Max Value: + + + + + + Units Name: + + + + + + Receiving Node: + + + + + + Multiplexing + + + + + + None + + + + + + Multiplexed + + + + + + Multiplexor + + + + + + Extended + + + + + + Multiplex value + + + + + + Multiplex Parent + + + + + + Comment: + + + + + + Single values has to be separated by semicolons +and the value ranges by hypens +(e.g.: 1;2;5-7) + + + + + + Value Table: + + + + + Error + + + + + The multiplex values field contains errors: +%1 + + + + + Delete currently selected value + + + + + DiscreteStateWindow + + + + Single/Multi State WIndow + + + + + + Candidate Matches: + + + + + + Number of States: + + + + + + Realtime + + + + + + From logged data + + + + + + Toggle Frequency (Seconds) + + + + + + Iterations + + + + + + WAIT + + + + + + Min Bits + + + + + + Max Bits + + + + + + IDs to Scan + + + + + + All + + + + + + None + + + + + + Go for it + + + + + FileComparatorWindow + + + + File Comparator + + + + + + SIDE 1 + + + + + + Single file to compare to side 2: + + + + + + + + TextLabel + + + + + + Load New File + + + + + + Side 2 + + + + + + One or more files to compare with the single file on side1: + + + + + + Load A File + + + + + + Clear Frames + + + + + + Show only data unique to Side 1 + + + + + + Save Details to File + + + + + Text File (*.txt) + + + + + FirmwareUploaderWindow + + + + Firmware Updater + + + + + + Loaded File: + + + + + + Load File + + + + + + Device Token: + + + + + + CAN Bus: + + + + + + Base Address: + + + + + + X of Y bytes + + + + + + Start Upload + + + + + Raw firmware binary (*.bin) + + + + + FlowViewWindow + + + + Flow View + + + + + + Playback Control + + + + + + Playback Speed: + + + + + + Loop Playback + + + + + + Current Frame: + + + + + + X of Y + + + + + + Live Mode (No Playback) + + + + + + Synchronize windows + + + + + + Graph by timestamp + + + + + + Auto Reference + + + + + + Reference Values (Hex) + + + + + + + + + + + + 0 + + + + + + + + + + + + 1 + + + + + + + + + + + + 2 + + + + + + + + + + + + 3 + + + + + + + + + + + + 4 + + + + + + + + + + + + 5 + + + + + + + + + + + + 6 + + + + + + + + + + + + 7 + + + + + + Current Values (Hex) + + + + + + Data Seek Values + + + + + + + + + + + + + + + + + + + + -1 + + + + + + Chart range + + + + + + 50 + + + + + + Timeline: + + + + + + Frame IDs Found: + + + + + + Save image to file + + + + + PDF Files (*.pdf) + + + + + + PNG Files (*.png) + + + + + + JPEG Files (*.jpg) + + + + + of + + + + + FrameFileIO + + + + + GVRET Logs (*.csv *.CSV) + + + + + + CRTD Logs (*.crt *.crtd *.CRT *.CRTD) + + + + + + Generic ID/Data CSV (*.csv *.CSV) + + + + + + BusMaster Log (*.log *.LOG) + + + + + + Microchip Log (*.can *.CAN *.log *.LOG) + + + + + Vector Trace Files (*.trace *.TRACE) + + + + + + IXXAT MiniLog (*.csv *.CSV) + + + + + CAN-DO Log (*.can *.avc *.evc *.qcc *.CAN *.AVC *.EVC *.QCC) + + + + + + Vehicle Spy (*.csv *.CSV) + + + + + Candump/Kayak (*.log) + + + + + + Cabana Log (*.csv *.CSV) + + + + + + CANalyzer Ascii Log (*.asc *.ASC) + + + + + CARBUS Analyzer (*.trc *.TRC) + + + + + Autodetect File Type (*.*) + + + + + Vector trace files (*.trace *.TRACE) + + + + + CAN-DO Log (*.avc *.can *.evc *.qcc *.AVC *.CAN *.EVC *.QCC) + + + + + Candump/Kayak (*.log *.LOG) + + + + + CANDump Lawicel (*.txt *.TXT *.LOG *.log) + + + + + PCAN Viewer (*.trc *.TRC) + + + + + Kvaser Log Decimal (*.txt *.TXT) + + + + + Kvaser Log Hex (*.txt *.TXT) + + + + + CANalyzer Binary Log Files (*.blf *.BLF) + + + + + CARBUS Analyzer Trace Files (*.trc *.TRC) + + + + + CANHacker Trace Files (*.trc *.TRC) + + + + + CANOpen Magic (*.csv *.CSV) + + + + + Tesla Autopilot Snapshot (*.CAN *.can) + + + + + CLX000 (*.txt *.TXT) + + + + + CANServer Binary Log (*.log *.LOG) + + + + + Wireshark (*.pcap *.PCAP *.pcapng *.PCAPNG) + + + + + Wireshark SocketCAN (*.pcap *.PCAP + + + + + CXX GVRET-PC Reverse Engineering Tool Output V + + + + + FrameInfoWindow + + + + Detailed Frame Information + + + + + + Frame IDs: + + + + + + Unique IDs + + + + + + Details: + + + + + + Save details to file + + + + + + Interval Histogram + + + + + + Bytes Graph + + + + + + unique ids) + + + + + J1939 decoding + + + + + Broadcast Frame + + + + + Destination ID: + + + + + Destination ID: Global (ALL) + + + + + Priority: + + + + + SRC: + + + + + EDP: + + + + + DP: + + + + + PGN: + + + + + PF: + + + + + PS: + + + + + GMLAN 29bit decoding + + + + + Priority bits: + + + + + Arbitration Id: + + + + + Sender Id: + + + + + # of frames: + + + + + + Data Length: + + + + + + to + + + + + Average inter-frame interval: + + + + + Minimum inter-frame interval: + + + + + Maximum inter-frame interval: + + + + + Inter-frame interval variation: + + + + + Interval standard deviation: + + + + + Minimum range to fit 90% of inter-frame intervals: + + + + + Data Byte + + + + + Changed bits: 0x + + + + + Range: + + + + + Histogram + + + + + Bitfield Histogram + + + + + Bitchange Heatmap + + + + + Text File (*.txt) + + + + + FramePlaybackWindow + + + + Playback + + + + + + Use original frame timing from captured frames + + + + + + Wait for traffic before starting playback + + + + + + Playback speed (ms): + + + + + + Burst Rate: + + + + + + Current Playback Item: + + + + + + TextLabel + + + + + + Current frame: + + + + + + x of y + + + + + + Loop Sequence + + + + + + Send to CANBus + + + + + + <html><head/><body><p>Playback Sequence:</p></body></html> + + + + + + Load File + + + + + + Load Captured Data + + + + + + Delete Selected + + + + + + ID Filtering: + + + + + + Select all IDs + + + + + + Deselect all IDs + + + + + + Load Filters + + + + + + Save Filters + + + + + + All + + + + + + From File + + + + + Save filter definition to file + + + + + Load filter definition from file + + + + + Filter list (*.ftl) + + + + + Filter List (*.ftl) + + + + + + of + + + + + FrameSenderWindow + + + + Frame Sender + + + + + + Enable All + + + + + + Disable All + + + + + + Clear Grid + + + + + + Load to Grid + + + + + + Save Grid + + + + + + Frame Sender Definition (*.fsd) + + + + + FuzzingWindow + + + + Fuzzing Window + + + + + + Interframe Timing (ms) + + + + + + Number of data bytes + + + + + + Burst Rate + + + + + + Bus or Buses to Send On + + + + + + ID Scanning + + + + + + Seqential + + + + + + + + Random + + + + + + ID Selection + + + + + + Range of IDs + + + + + + Filter List + + + + + + Bit Scanning + + + + + + Sequential + + + + + + Sweep + + + + + + IDs + + + + + + Start ID: + + + + + + End ID: + + + + + + + All + + + + + + None + + + + + + Byte Values (Always in hexadecimal) + + + + + + 0 + + + + + + 1 + + + + + + 2 + + + + + + 3 + + + + + + 4 + + + + + + 5 + + + + + + 6 + + + + + + 7 + + + + + + 8 + + + + + + 9 + + + + + + 10 + + + + + + 11 + + + + + + 12 + + + + + + 13 + + + + + + 14 + + + + + + 15 + + + + + + White = Bit always 0, Green = Fuzz Bit, Black = Bit always set, Gray = Past end of data bytes + + + + + + All High + + + + + + All Low + + + + + + All Auto + + + + + + Start Fuzzing + + + + + + # of sent frames: + + + + + GraphingWindow + + + + Data Graphing + + + + + Move to top left + + + + + Move to top center + + + + + Move to top right + + + + + Move to bottom right + + + + + Move to bottom left + + + + + Save graph image to file + + + + + Save graph definitions to file + + + + + Load graph definitions from file + + + + + Save spreadsheet of data + + + + + Follow end of graph + + + + + Add new graph + + + + + Edit selected graph + + + + + Remove selected graph + + + + + Remove all graphs + + + + + Reset View + + + + + Rescale to data + + + + + Zoom In + + + + + Zoom Out + + + + + PDF Files (*.pdf) + + + + + PNG Files (*.png) + + + + + JPEG Files (*.jpg) + + + + + Spreadsheet (*.csv) + + + + + + Graph definition (*.gdf) + + + + + HelpWindow + + + + SavvyCAN Help + + + + + ISOTP_InterpreterWindow + + + + ISO-TP Decoder + + + + + + Interpreted Messages Overview + + + + + + Interpret Previously Captured Frames + + + + + + Clear Messages List + + + + + + Save List + + + + + + Show incomplete and/or corrupted messages + + + + + + Use extended addressing + + + + + + Data Details of Selected Message + + + + + + IDs to Decode + + + + + + All + + + + + + None + + + + + Text File (*.txt) + + + + + Raw Payload: + + + + + MainSettingsDialog + + + + Main Settings + + + + + + Main Form Settings: + + + + + + Autoscroll main frame window by default + + + + + + Maximum data bytes per line + + + + + + General Settings: + + + + + + Save/Restore window positions and sizes + + + + + + Save/Restore CAN bus connections + + + + + + Display values as hexadecimal + + + + + + Require validation of GVRET connection + + + + + + Use filtered frames in sub-windows + + + + + + OpenGL Accelerated AntiAliased Graphing + + + + + + CAN Frame Pre-allocation Size + + + + + + Time Keeping + + + + + + Seconds/Milli/Micro are dongle based + + + + + + Seconds + + + + + + Microseconds + + + + + + Milliseconds + + + + + + System Clock + + + + + + Time Format String: + + + + + + Use absolute time in decoded CSV output + + + + + + Font + + + + + + Use fixed-width font in tables + + + + + + Size + + + + + + Flowview Settings: + + + + + + Use timestamp mode by default + + + + + + Set Auto Reference by default + + + + + + + + Hexadecimal Graph Y Axis + + + + + + Playback Window Settings: + + + + + + Loop by default + + + + + + Default playback speed (ms) + + + + + + Default Sending Bus + + + + + + DBC Settings + + + + + + Label DBC messages by default + + + + + + Ignore DBC message colors + + + + + + File Info and Comparator Settings: + + + + + + Auto expand all nodes + + + + + + MQTT Remote CAN Settings: + + + + + + Host: + + + + + + Port: + + + + + + User Name: + + + + + + Password + + + + + + Some settings will not take effect until the application is restarted + + + + + None + + + + + 0 + + + + + 1 + + + + + All + + + + + From File + + + + + MainWindow + + + + SavvyCAN + + + + + + Remote Connection Active: + + + + + + Total Frames Captured: + + + + + + Frames Per Second: + + + + + + Suspend Capturing + + + + + + Normalize Frame Timing + + + + + + Clear Frames + + + + + + Keep Filters When Clearing + + + + + + Auto Scroll Window + + + + + + Overwrite Mode + + + + + + Interpret Frames + + + + + + Expand All Rows + + + + + + Collapse All Rows + + + + + + Bus Filtering: + + + + + + Frame Filtering: + + + + + + All + + + + + + None + + + + + + RE Tools + + + + + + Send Frames + + + + + + File + + + + + + Connection + + + + + + Playback + + + + + + Custom + + + + + + Flow View + + + + + + Fuzzy Scope + + + + + + New Graphing Window + + + + + + Load Log File + + + + + + Ctrl+O + + + + + + Save Log File + + + + + + Frame Data Analysis + + + + + + Load DBC File + + + + + + Edit Messages/Signals + + + + + + Save DBC File + + + + + + Save Decoded Frames + + + + + + Exit Application + + + + + + File Comparison + + + + + + Preferences + + + + + + Save Filtered Log File + + + + + + Load Filter Definition + + + + + + Save Filter Definition + + + + + + Firmware Uploader + + + + + + Open Connection Window + + + + + + Connect + + + + + + Scripting Interface + + + + + + Range State + + + + + + Single/Multi State + + + + + + DBC File Manager + + + + + + Fuzzing + + + + + + UDS Scanner + + + + + + ISO-TP Decoder + + + + + + Sniffer + + + + + + Firmware Update + + + + + + MotorControlConfig + + + + + + Capture Bisector + + + + + + Signal Viewer + + + + + + + Start Continuous Logging + + + + + + Temporal Graph + + + + + + DBC Comparison + + + + + + Save Decoded Frames CSV + + + + + + CAN Bridge + + + + + Connected to 0 buses + + + + + Press F1 on any screen for help + + + + + Add to a new graphing window + + + + + Add to latest graphing window + + + + + Cease Continuous Logging + + + + + Filter list (*.ftl) + + + + + Filter List (*.ftl) + + + + + Text File (*.txt *.TXT) + + + + + CSV File (*.csv *.CSV) + + + + + Year + + + + + Month + + + + + Day + + + + + Hour + + + + + Minute + + + + + Second + + + + + Ms + + + + + Time + + + + + ID + + + + + Bus + + + + + DataLen + + + + + Time: + + + + + ID: + + + + + Ext + + + + + Std + + + + + Bus: + + + + + Data Bytes: + + + + + Connected to + + + + + buses + + + + + No packets loaded + + + + + No file loaded + + + + + MotorControllerConfigWindow + + + + Controller Configuration + + + + + + Load Definition File + + + + + + Refresh + + + + + + Save + + + + + RMS Definition File (*.txt *.TXT) + + + + + NewConnectionDialog + + + + New Connection + + + + + + Connection Type + + + + + + socketcand (SocketCAN over Ethernet) + + + + + + QT SerialBus Devices (SocketCAN, PeakCAN, etc) + + + + + + MQTT Connection + + + + + + Serial Connection (GVRET) + + + + + + Network connection (GVRET) + + + + + + LAWICEL / SLCAN Serial + + + + + + CANserver + + + + + + CANlogserver + + + + + + SerialBus Device Type: + + + + + + Serial Port: + + + + + + Serial Port Speed: + + + + + + CAN Bus Speed: + + + + + + CAN-FD + + + + + + CAN-FD data rate + + + + + + Create New Connection + + + + + NewGraphDialog + + + + Graph Settings + + + + + + <html><head/><body><p>Name:</p></body></html> + + + + + + ID: + + + + + + Start Bit: + + + + + + Graph a DBC Signal: + + + + + + Node: + + + + + + Message: + + + + + + Signal: + + + + + + Copy Signal Parameters + + + + + + Bit Len: + + + + + + Little Endian + + + + + + (LSB First) + + + + + + Signed: + + + + + + Mask: + + + + + + Bias: + + + + + + Scale + + + + + + Stride + + + + + + Associated Bus + + + + + + -1 + + + + + + Only Points + + + + + + Point Style + + + + + + Line Thickness + + + + + + Line Color + + + + + + + + CHANGE + + + + + + Fill Color + + + + + + Add this graph + + + + + QObject + + + The %1 part contains more than one '-' sign + + + + + + + Unable to parse the %1 part to integer + + + + + RangeStateWindow + + + + Range State Window + + + + + + Candidate Signals: + + + + + + Graphical Representation of Selected Signal: + + + + + + Sensitivity + + + + + + Min Signal Size: + + + + + + Max Signal Size: + + + + + + Granularity: + + + + + + Signal Mode: + + + + + + Signed Mode: + + + + + + ID Filter: + + + + + + All + + + + + + None + + + + + + Recalculate Candidate Signals + + + + + Big Endian + + + + + Little Endian + + + + + + Try Both + + + + + Signed Value + + + + + Unsigned Value + + + + + ScriptingWindow + + + + Scripting Interface + + + + + + Public Variables + + + + + + Loaded Scripts + + + + + + &New + + + + + + &Del + + + + + + &Load + + + + + + Script Editing Window + + + + + + &Save + + + + + + Sa&ve As + + + + + + &Revert + + + + + + R&eload + + + + + + Re&compile + + + + + + Log Window + + + + + + &Auto Scroll Log Window + + + + + + Clear Log &Window + + + + + + Save L&og + + + + + + Javascript File (*.js) + + + + + Log File (*.log) + + + + + SignalViewerWindow + + + + Signal Viewer + + + + + + Remove Selected Signal + + + + + + Node + + + + + + Message + + + + + + Signal + + + + + + Add To Viewer + + + + + + Save View + + + + + + Load View + + + + + + Append to View + + + + + + Clear View + + + + + + SignalViewer definition (*.sdf) + + + + + TemporalGraphWindow + + + + Temporal Graph + + + + + TriggerDialog + + + + Trigger Builder + + + + + + Add New + + + + + + Delete + + + + + + Bus + + + + + + Msg ID + + + + + + Signal + + + + + + MS Delay + + + + + + Max Count + + + + + + Signal Value + + + + + + Save And Update + + + + + UDSScanWindow + + + + UDS Scanner + + + + + + Scans To Run + + + + + + Add + + + + + + Delete + + + + + + Load + + + + + + Save + + + + + + Starting ID + + + + + + + + + + + + + + + + + + 0x + + + + + + Ending ID + + + + + + Show "No Reply" + + + + + + Allow adaptive reply offset + + + + + + Bus to scan + + + + + + Maximum reply delay (ms) + + + + + + Reply Offset: + + + + + + Scan Type: + + + + + + Run test in session type: + + + + + + Subfunct Len: + + + + + + Lower Bound: + + + + + + Upper Bound: + + + + + + Increment + + + + + + Lower Service: + + + + + + Upper Service: + + + + + + Results + + + + + + Run All Scans + + + + + + Run Selected Scan + + + + + + Save Scan Results + + + + + + UDS Test Specification (*.uds *.UDS) + + + + + Text File (*.txt) + + + + + snifferWindow + + + + Sniffer + + + + + + Notch + + + + + + Unnotch + + + + + + Mute notched bits + + + + + + Notch Interval + + + + + + + + ms + + + + + + Expire Interval + + + + + + Never Expire IDs + + + + + + Fade inactive bytes + + + + + + View Bits + + + + + + Filters: + + + + + + All + + + + + + None + + + + diff --git a/translations/savvycan_pt_BR.ts b/translations/savvycan_pt_BR.ts new file mode 100644 index 0000000..13ec980 --- /dev/null +++ b/translations/savvycan_pt_BR.ts @@ -0,0 +1,4161 @@ + + + + + BisectWindow + + + + Bisector Window + Janela Bissetriz + + + + + Splitting Strategy: + Estratégia de divisão: + + + + + ID Range + Intervalo de IDs + + + + + TO + PARA + + + + + Frame Number + Número do frame + + + + + Percentage + Percentagem + + + + + Bus Number + Número do Barramento + + + + + Save Which Side: + Salvar qual lado: + + + + + Lower Section + Seção Inferior + + + + + Upper Section + Seção Superior + + + + + Number of Frames in Main List: + Número de Frames na lista principal: + + + + + + + 0 + 0 + + + + + Saved Frames after split: + Frames salvos após divisão: + + + + + Calculate Split + Calcular divisão + + + + + Save split frames to a new file + Salve os frames divididos em um novo arquivo + + + + + Replace main list with split frames + Substitua a lista principal por frames divididos + + + + Successfully saved file + Arquivo salvo com sucesso + + + + Error while attempting to save. + Erro ao tentar salvar. + + + + CANBridgeWindow + + + + CAN Bridger + Ponte CAN + + + + + Side 1 + Lado 1 + + + + + + + Enable forwarding + Ativar encaminhamento + + + + + IDs to forward to side 2 + IDs para encaminhar para o lado 2 + + + + + Side 2 + Lado 2 + + + + + IDs to forward to side 1 + IDs para encaminhar para o lado 1 + + + + CANConnectionModel + + + Type + Tipo + + + + Subtype + Subtipo + + + + Port + Porta + + + + Buses + Barramento + + + + Status + Status + + + + CANDataGrid + + + + Form + Forma + + + + CANFrameModel + + + Rx + Rx + + + + Tx + Tx + + + + Time Delta + Time Delta + + + + Timestamp + Timestamp + + + + ID + ID + + + + Ext + Ext + + + + RTR + RTR + + + + Cnt + Cnt + + + + Dir + Dir + + + + Bus + Bus + + + + Len + Len + + + + ASCII + ASCII + + + + Data + Data + + + + ConnectionWindow + + + + Connection Settings + Configurações de conexão + + + + + Disconnect Selected Device + Desconectar dispositivo selecionado + + + + + Reset Selected Device + Redefinir dispositivo selecionado + + + + + Bus Details: + Detalhes do Barramento: + + + + + Speed: + Velocidade: + + + + + Listen Only: + Escutar apenas: + + + + + Enable Bus: + Habilitar barramento: + + + + + Save Bus Settings + Salvar configurações do barramento + + + + + Enable CAN FD: + Ativar CAN FD: + + + + + CAN FD Data Rate + Taxa de dados CAN FD + + + + + Connected Devices: + Dispositivos conectados: + + + + + Add New Device Connection + Adicionar nova conexão de dispositivo + + + + + Enable Console + Habilitar console + + + + + Device Console: + Console do dispositivo: + + + + + Send: + Enviar: + + + + + Send Hex + Enviar hexadecimal + + + + + Send Text + Enviar texto + + + + + Clear + Limpar + + + + DBCComparatorWindow + + + + DBC Comparator + Comparador DBC + + + + + Side 1 + Lado 1 + + + + + + + TextLabel + TextLabel + + + + + Load New File + Carregar novo arquivo + + + + + Side 2 + Lado 2 + + + + + Load A File + Carregar um arquivo + + + + + Save Details to File + Salvar detalhes no arquivo + + + + DBC Files (*.dbc *.DBC) + Arquivos DBC (*.dbc *.DBC) + + + + Text File (*.txt) + Arquivo de texto (*.txt) + + + + DBCHandler + + + + DBC File (*.dbc) + Arquivo DBC (*.dbc) + + + + DBCLoadSaveWindow + + + + DBC File Manager + Gerenciador de arquivos DBC + + + + + Create new DBC + Criar novo DBC + + + + + Load + Carregar + + + + + Remove + Remover + + + + + Move Up + Subir + + + + + Save + Salvar + + + + + Edit + Editar + + + + + Move Down + Descer + + + + DBC File (*.dbc) + Arquivo DBC (*.dbc) + + + + Tesla JSON File (*.json) + Arquivo JSON Tesla (*.json) + + + + Secret CSV Signal Defs (*.csv) + Defs de sinal CSV secreto (*.csv) + + + + DBCMainEditor + + + + DBC Editing Window + Janela de edição DBC + + + + + New Node + Novo nó + + + + + New Message + Nova mensagem + + + + + New Signal + Novo sinal + + + + + Delete + Excluir + + + + + Find: + Encontrar: + + + + + Search + Procurar + + + + + Search Results: 0 of 0 + Resultados da pesquisa: 0 de 0 + + + + + Next + Próximo + + + + + Previous + Anterior + + + + Delete currently selected message + Excluir mensagem atualmente selecionada + + + + Rebase all messages + Rebase todas as mensagens + + + + Rebase all messages in node + Rebase todas as mensagens no nó + + + + Duplicate node + Nó duplicado + + + + Duplicate node and messages + Nó e mensagens duplicados + + + + DBCMessageEditor + + + + Message Editor + Editor de mensagens + + + + + Frame ID: + ID do Frame: + + + + + Message Name: + Nome da mensagem: + + + + + Frame Length: + Comprimento do Frame: + + + + + Text Color: + Cor do texto: + + + + + Background Color: + Cor de fundo: + + + + + Comments: + Comentários: + + + + + Sending Node: + Nó de envio: + + + + + + + Set + Definir + + + + + Sample Colored Output: + Exemplo de saída colorida: + + + + DBCNodeDuplicateEditor + + + + + + Duplicate Node + Nó duplicado + + + + + New Node Name: + Novo nome do nó: + + + + + Current Base ID: + ID base atual: + + + + + New Base ID: + Nova ID base: + + + + + Cancel + Cancelar + + + + DBCNodeEditor + + + + Node Editor + Editor de nós + + + + + Node Name: + Nome do nó: + + + + + Comments: + Comentários: + + + + DBCNodeRebaseEditor + + + + Rebase All Node Messages + Rebase todas mensagens de nó + + + + + Node Name: + Nome do nó: + + + + + Current Base ID: + ID base atual: + + + + + New Base ID: + Novo ID base: + + + + + Rebase All Messages in Node + Rebase todas mensagens do nó + + + + + Cancel + Cancelar + + + + DBCSignalEditor + + + + Signal Editor + Editor de sinais + + + + + Name: + Nome: + + + + + Bit Length: + Comprimento do bit: + + + + + Byte Order + Ordem de bytes + + + + + LSB First (Little Endian) + LSB Primeiro (Little Endian) + + + + + Type: + Tipo: + + + + + Scale: + Escala: + + + + + Bias: + Deslocamento: + + + + + Min Value: + Valor mínimo: + + + + + Max Value: + Valor máximo: + + + + + Units Name: + Nome das unidades: + + + + + Receiving Node: + Nó de recepção: + + + + + Multiplexing + Multiplexação + + + + + None + Nenhum + + + + + Multiplexed + Multiplexado + + + + + Multiplexor + Multiplexador + + + + + Extended + Estendido + + + + + Multiplex value + Valor multiplexado + + + + + Multiplex Parent + Parente multiplexado + + + + + Comment: + Comentário: + + + + + Single values has to be separated by semicolons +and the value ranges by hypens +(e.g.: 1;2;5-7) + Valores únicos devem ser separados por ponto e vírgula +e os intervalos de valores por hífens +(ex.: 1;2;5-7) + + + + + Value Table: + Tabela de valores: + + + + Error + Erro + + + + The multiplex values field contains errors: +%1 + O campo de valores multiplex contém erros: +%1 + + + + Delete currently selected value + Excluir o valor atualmente selecionado + + + + DiscreteStateWindow + + + + Single/Multi State WIndow + Janela de estado único/multiplo + + + + + Candidate Matches: + Partidas de candidatos: + + + + + Number of States: + Número de estados: + + + + + Realtime + Em tempo real + + + + + From logged data + Dos dados do log + + + + + Toggle Frequency (Seconds) + Alternar frequência (segundos) + + + + + Iterations + Iterações + + + + + WAIT + ESPERE + + + + + Min Bits + Bits mínimos + + + + + Max Bits + Máximo de bits + + + + + IDs to Scan + IDs para digitalizar + + + + + All + Todos + + + + + None + Nenhum + + + + + Go for it + Vá em frente + + + + FileComparatorWindow + + + + File Comparator + Comparador de arquivos + + + + + SIDE 1 + LADO 1 + + + + + Single file to compare to side 2: + Arquivo único para comparar com o lado 2: + + + + + + + TextLabel + TextLabel + + + + + Load New File + Carregar novo arquivo + + + + + Side 2 + Lado 2 + + + + + One or more files to compare with the single file on side1: + Um ou mais arquivos para comparar com o arquivo único no lado 1: + + + + + Load A File + Carregar um arquivo + + + + + Clear Frames + Limpar Frames + + + + + Show only data unique to Side 1 + Mostrar apenas dados exclusivos do Lado 1 + + + + + Save Details to File + Salvar detalhes em arquivo + + + + Text File (*.txt) + Arquivo de texto (*.txt) + + + + FirmwareUploaderWindow + + + + Firmware Updater + Atualizador de firmware + + + + + Loaded File: + Arquivo carregado: + + + + + Load File + Carregar arquivo + + + + + Device Token: + Token do dispositivo: + + + + + CAN Bus: + Barramento CAN: + + + + + Base Address: + Endereço básico: + + + + + X of Y bytes + X de Y bytes + + + + + Start Upload + Iniciar upload + + + + Raw firmware binary (*.bin) + Arquivo binário de firmware (*.bin) + + + + FlowViewWindow + + + + Flow View + Visualização de fluxo + + + + + Playback Control + Controle de reprodução + + + + + Playback Speed: + Velocidade de reprodução: + + + + + Loop Playback + Reprodução em loop + + + + + Current Frame: + Frame Atual: + + + + + X of Y + X de Y + + + + + Live Mode (No Playback) + Modo ao vivo (sem reprodução) + + + + + Synchronize windows + Sincronizar janelas + + + + + Graph by timestamp + Gráfico por carimbo de data/hora + + + + + Auto Reference + Referência automática + + + + + Reference Values (Hex) + Valores de referência (Hex) + + + + + + + + + + + 0 + 0 + + + + + + + + + + + 1 + 1 + + + + + + + + + + + 2 + 2 + + + + + + + + + + + 3 + 3 + + + + + + + + + + + 4 + 4 + + + + + + + + + + + 5 + 5 + + + + + + + + + + + 6 + 6 + + + + + + + + + + + 7 + 7 + + + + + Current Values (Hex) + Valores Atuais (Hex) + + + + + Data Seek Values + Valores de busca de dados + + + + + + + + + + + + + + + + + + + -1 + -1 + + + + + Chart range + Intervalo do gráfico + + + + + 50 + 50 + + + + + Timeline: + Linha do tempo: + + + + + Frame IDs Found: + IDs de Frame encontrados: + + + + + Save image to file + Salvar imagem em arquivo + + + + PDF Files (*.pdf) + Arquivos PDF (*.pdf) + + + + + PNG Files (*.png) + Arquivos PNG (*.png) + + + + + JPEG Files (*.jpg) + Arquivos JPEG (*.jpg) + + + + of + de + + + + FrameFileIO + + + + + GVRET Logs (*.csv *.CSV) + Logs do GVRET (*.csv *.CSV) + + + + + CRTD Logs (*.crt *.crtd *.CRT *.CRTD) + Logs do CRTD (*.crt *.crtd *.CRT *.CRTD) + + + + + Generic ID/Data CSV (*.csv *.CSV) + ID genérico/CSV de dados (*.csv *.CSV) + + + + + BusMaster Log (*.log *.LOG) + Log do BusMaster (*.log *.LOG) + + + + + Microchip Log (*.can *.CAN *.log *.LOG) + Logs do Microchip (*.can *.CAN *.log *.LOG) + + + + Vector Trace Files (*.trace *.TRACE) + Arquivos de rastreamento Vector (*.trace *.TRACE) + + + + + IXXAT MiniLog (*.csv *.CSV) + MiniLog IXXAT (*.csv *.CSV) + + + + CAN-DO Log (*.can *.avc *.evc *.qcc *.CAN *.AVC *.EVC *.QCC) + Logs do CAN-DO (*.can *.avc *.evc *.qcc *.CAN *.AVC *.EVC *.QCC) + + + + + Vehicle Spy (*.csv *.CSV) + Vehicle Spy (*.csv *.CSV) + + + + Candump/Kayak (*.log) + Candump/Kayak (*.log) + + + + + Cabana Log (*.csv *.CSV) + Logs do Cabana (*.csv *.CSV) + + + + + CANalyzer Ascii Log (*.asc *.ASC) + Logs Ascii do CANalyzer (*.asc *.ASC) + + + + CARBUS Analyzer (*.trc *.TRC) + Analisador CARBUS (*.trc *.TRC) + + + + Autodetect File Type (*.*) + Detecção automática do tipo de arquivo (*.*) + + + + Vector trace files (*.trace *.TRACE) + Arquivos de rastreamento Vector (*.trace *.TRACE) + + + + CAN-DO Log (*.avc *.can *.evc *.qcc *.AVC *.CAN *.EVC *.QCC) + Log CAN-DO (*.avc *.can *.evc *.qcc *.AVC *.CAN *.EVC *.QCC) + + + + Candump/Kayak (*.log *.LOG) + Candump/Kayak (*.log *.LOG) + + + + CANDump Lawicel (*.txt *.TXT *.LOG *.log) + CANDump Lawicel (*.txt *.TXT *.LOG *.log) + + + + PCAN Viewer (*.trc *.TRC) + Visualizador PCAN (*.trc *.TRC) + + + + Kvaser Log Decimal (*.txt *.TXT) + Logs Decimal Kvaser (*.txt *.TXT) + + + + Kvaser Log Hex (*.txt *.TXT) + Logs Hexadecimal Kvaser (*.txt *.TXT) + + + + CANalyzer Binary Log Files (*.blf *.BLF) + Logs binários CANalyzer (*.blf *.BLF) + + + + CARBUS Analyzer Trace Files (*.trc *.TRC) + Logs do analisador CARBUS (*.trc *.TRC) + + + + CANHacker Trace Files (*.trc *.TRC) + Logs de rastreamento CANHacker (*.trc *.TRC) + + + + CANOpen Magic (*.csv *.CSV) + CANOpen Magic (*.csv *.CSV) + + + + Tesla Autopilot Snapshot (*.CAN *.can) + Snapshot do piloto automático Tesla (*.CAN *.can) + + + + CLX000 (*.txt *.TXT) + CLX000 (*.txt *.TXT) + + + + CANServer Binary Log (*.log *.LOG) + Log binário CANServer (*.log *.LOG) + + + + Wireshark (*.pcap *.PCAP *.pcapng *.PCAPNG) + Wireshark (*.pcap *.PCAP *.pcapng *.PCAPNG) + + + + Wireshark SocketCAN (*.pcap *.PCAP + Wireshark SocketCAN (*.pcap *.PCAP + + + + CXX GVRET-PC Reverse Engineering Tool Output V + Saída V da ferramenta de engenharia reversa CXX GVRET-PC + + + + FrameInfoWindow + + + + Detailed Frame Information + Informações detalhadas do frame + + + + + Frame IDs: + IDs de frame: + + + + + Unique IDs + IDs únicos + + + + + Details: + Detalhes: + + + + + Save details to file + Salvar detalhes em arquivo + + + + + Interval Histogram + Histograma de intervalo + + + + + Bytes Graph + Gráfico de Bytes + + + + + unique ids) + ids únicos) + + + + J1939 decoding + Decodificação J1939 + + + + Broadcast Frame + Frame de transmissão + + + + Destination ID: + ID de destino: + + + + Destination ID: Global (ALL) + ID de destino: Global (TODOS) + + + + Priority: + Prioridade: + + + + SRC: + SRC: + + + + EDP: + EDP: + + + + DP: + DP: + + + + PGN: + PGN: + + + + PF: + FP: + + + + PS: + PS: + + + + GMLAN 29bit decoding + Decodificação GMLAN de 29 bits + + + + Priority bits: + Bits prioritários: + + + + Arbitration Id: + ID de Arbitragem: + + + + Sender Id: + ID do remetente: + + + + # of frames: + # de quadros: + + + + + Data Length: + Comprimento dos dados: + + + + + to + para + + + + Average inter-frame interval: + Intervalo médio entre frames: + + + + Minimum inter-frame interval: + Intervalo mínimo entre frames: + + + + Maximum inter-frame interval: + Intervalo máximo entre frames: + + + + Inter-frame interval variation: + Variação do intervalo entre frames: + + + + Interval standard deviation: + Desvio padrão do intervalo: + + + + Minimum range to fit 90% of inter-frame intervals: + Faixa mínima para ajustar 90% dos intervalos entre quadros: + + + + Data Byte + Byte de dados + + + + Changed bits: 0x + Bits alterados: 0x + + + + Range: + Faixa: + + + + Histogram + Histograma + + + + Bitfield Histogram + Histograma de campo de bits + + + + Bitchange Heatmap + Mapa de calor do Bitchange + + + + Text File (*.txt) + Arquivo de texto (*.txt) + + + + FramePlaybackWindow + + + + Playback + Reprodução + + + + + Use original frame timing from captured frames + Use o tempo de frame original dos frames capturados + + + + + Wait for traffic before starting playback + Aguarde o tráfego antes de iniciar a reprodução + + + + + Playback speed (ms): + Velocidade de reprodução (ms): + + + + + Burst Rate: + Taxa de burst: + + + + + Current Playback Item: + Item de reprodução atual: + + + + + TextLabel + TextLabel + + + + + Current frame: + Quadro atual: + + + + + x of y + x de y + + + + + Loop Sequence + Sequência de Loop + + + + + Send to CANBus + Enviar para CANBus + + + + + <html><head/><body><p>Playback Sequence:</p></body></html> + <html><head/><body><p>Sequência de reprodução:</p></body></html> + + + + + Load File + Carregar arquivo + + + + + Load Captured Data + Carregar dados capturados + + + + + Delete Selected + Excluir selecionado + + + + + ID Filtering: + Filtragem de ID: + + + + + Select all IDs + Selecione todos os IDs + + + + + Deselect all IDs + Desmarcar todos os IDs + + + + + Load Filters + Carregar filtros + + + + + Save Filters + Salvar filtros + + + + + All + Todos + + + + + From File + Do arquivo + + + + Save filter definition to file + Salvar definição de filtro em arquivo + + + + Load filter definition from file + Carregar definição de filtro do arquivo + + + + Filter list (*.ftl) + Lista de filtros (*.ftl) + + + + Filter List (*.ftl) + Lista de filtros (*.ftl) + + + + + of + de + + + + FrameSenderWindow + + + + Frame Sender + Envio de Frame + + + + + Enable All + Ativar tudo + + + + + Disable All + Desativar tudo + + + + + Clear Grid + Limpar grade + + + + + Load to Grid + Carregar na grade + + + + + Save Grid + Salvar grade + + + + + Frame Sender Definition (*.fsd) + Definição do remetente do quadro (*.fsd) + + + + FuzzingWindow + + + + Fuzzing Window + Janela Difusão + + + + + Interframe Timing (ms) + Tempo entre frames (ms) + + + + + Number of data bytes + Número de bytes de dados + + + + + Burst Rate + Taxa de burst + + + + + Bus or Buses to Send On + Barramento ou Barramentos para enviar + + + + + ID Scanning + Digitalização de ID + + + + + Seqential + Sequencial + + + + + + + Random + Aleatório + + + + + ID Selection + Seleção de ID + + + + + Range of IDs + Faixa de IDs + + + + + Filter List + Lista de filtros + + + + + Bit Scanning + Varredura de bits + + + + + Sequential + Sequencial + + + + + Sweep + Varrer + + + + + IDs + IDs + + + + + Start ID: + ID inicial: + + + + + End ID: + ID final: + + + + + + All + Todos + + + + + None + Nenhum + + + + + Byte Values (Always in hexadecimal) + Valores de bytes (sempre em hexadecimal) + + + + + 0 + 0 + + + + + 1 + 1 + + + + + 2 + 2 + + + + + 3 + 3 + + + + + 4 + 4 + + + + + 5 + 5 + + + + + 6 + 6 + + + + + 7 + 7 + + + + + 8 + 8 + + + + + 9 + 9 + + + + + 10 + 10 + + + + + 11 + 11 + + + + + 12 + 12 + + + + + 13 + 13 + + + + + 14 + 14 + + + + + 15 + 15 + + + + + White = Bit always 0, Green = Fuzz Bit, Black = Bit always set, Gray = Past end of data bytes + Branco = Bit sempre 0, Verde = Bit Difuso, Preto = Bit sempre definido, Cinza = Passado o fim dos bytes de dados + + + + + All High + Todos Alto + + + + + All Low + Todos Baixo + + + + + All Auto + Tudo Automático + + + + + Start Fuzzing + Comece a difusão + + + + + # of sent frames: + # de frames enviados: + + + + GraphingWindow + + + + Data Graphing + Gráficos de dados + + + + Move to top left + Mover para o canto superior esquerdo + + + + Move to top center + Mover para o centro superior + + + + Move to top right + Mover para o canto superior direito + + + + Move to bottom right + Mover para o canto inferior direito + + + + Move to bottom left + Mover para o canto inferior esquerdo + + + + Save graph image to file + Salvar imagem do gráfico em arquivo + + + + Save graph definitions to file + Salvar definições de gráfico em arquivo + + + + Load graph definitions from file + Carregar definições de gráfico do arquivo + + + + Save spreadsheet of data + Salvar planilha de dados + + + + Follow end of graph + Acompanhe o final do gráfico + + + + Add new graph + Adicionar novo gráfico + + + + Edit selected graph + Editar gráfico selecionado + + + + Remove selected graph + Remover gráfico selecionado + + + + Remove all graphs + Remover todos os gráficos + + + + Reset View + Redefinir visualização + + + + Rescale to data + Redimensionar para dados + + + + Zoom In + Ampliar + + + + Zoom Out + Diminuir zoom + + + + PDF Files (*.pdf) + Arquivos PDF (*.pdf) + + + + PNG Files (*.png) + Arquivos PNG (*.png) + + + + JPEG Files (*.jpg) + Arquivos JPEG (*.jpg) + + + + Spreadsheet (*.csv) + Planilha (*.csv) + + + + + Graph definition (*.gdf) + Definição de gráfico (*.gdf) + + + + HelpWindow + + + + SavvyCAN Help + Ajuda do SavvyCAN + + + + ISOTP_InterpreterWindow + + + + ISO-TP Decoder + Decodificador ISO-TP + + + + + Interpreted Messages Overview + Visão geral das mensagens interpretadas + + + + + Interpret Previously Captured Frames + Interpretar frames capturados anteriormente + + + + + Clear Messages List + Limpar lista de mensagens + + + + + Save List + Salvar lista + + + + + Show incomplete and/or corrupted messages + Mostrar mensagens incompletas e/ou corrompidas + + + + + Use extended addressing + Use endereçamento estendido + + + + + Data Details of Selected Message + Detalhes dos dados da mensagem selecionada + + + + + IDs to Decode + IDs para decodificar + + + + + All + Todos + + + + + None + Nenhum + + + + Text File (*.txt) + Arquivo de texto (*.txt) + + + + Raw Payload: + Raw Payload: + + + + MainSettingsDialog + + + + Main Settings + Configurações principais + + + + + Main Form Settings: + Configurações principais do formulário: + + + + + Autoscroll main frame window by default + Janela do quadro principal de rolagem automática por padrão + + + + + Maximum data bytes per line + Máximo de bytes de dados por linha + + + + + General Settings: + Configurações Gerais: + + + + + Save/Restore window positions and sizes + Salvar/restaurar posições e tamanhos de janelas + + + + + Save/Restore CAN bus connections + Salvar/restaurar conexões de barramento CAN + + + + + Display values as hexadecimal + Exibir valores como hexadecimal + + + + + Require validation of GVRET connection + Exigir validação da conexão GVRET + + + + + Use filtered frames in sub-windows + Use frames filtrados em subjanelas + + + + + OpenGL Accelerated AntiAliased Graphing + Gráficos AntiAliased acelerados por OpenGL + + + + + CAN Frame Pre-allocation Size + Tamanho de pré-alocação do frame CAN + + + + + Time Keeping + Cronometragem + + + + + Seconds/Milli/Micro are dongle based + Segundos/Milli/Micro são baseados em dongle + + + + + Seconds + Segundos + + + + + Microseconds + Microssegundos + + + + + Milliseconds + Milissegundos + + + + + System Clock + Relógio do sistema + + + + + Time Format String: + Sequência de formato de hora: + + + + + Use absolute time in decoded CSV output + Use tempo absoluto na saída CSV decodificada + + + + + Font + Fonte + + + + + Use fixed-width font in tables + Use fonte de largura fixa em tabelas + + + + + Size + Tamanho + + + + + Flowview Settings: + Configurações de visualização de fluxo: + + + + + Use timestamp mode by default + Use o modo timestamp por padrão + + + + + Set Auto Reference by default + Definir referência automática por padrão + + + + + + + Hexadecimal Graph Y Axis + Eixo Y do gráfico hexadecimal + + + + + Playback Window Settings: + Configurações da janela de reprodução: + + + + + Loop by default + Loop por padrão + + + + + Default playback speed (ms) + Velocidade de reprodução padrão (ms) + + + + + Default Sending Bus + Barramento de envio padrão + + + + + DBC Settings + Configurações DBC + + + + + Label DBC messages by default + Mostrar mensagens DBC por padrão + + + + + Ignore DBC message colors + Ignorar cores de mensagens DBC + + + + + File Info and Comparator Settings: + Informações do arquivo e configurações do comparador: + + + + + Auto expand all nodes + Expandir automaticamente todos os nós + + + + + MQTT Remote CAN Settings: + Configurações CAN remotas MQTT: + + + + + Host: + Host: + + + + + Port: + Porta: + + + + + User Name: + Nome de usuário: + + + + + Password + Senha: + + + + + Some settings will not take effect until the application is restarted + Algumas configurações não terão efeito até que o aplicativo seja reiniciado + + + + None + Nenhum + + + + 0 + 0 + + + + 1 + 1 + + + + All + Todos + + + + From File + Do arquivo + + + + MainWindow + + + + SavvyCAN + SavvyCAN + + + + + Remote Connection Active: + Conexão remota ativa: + + + + + Total Frames Captured: + Total de frames capturados: + + + + + Frames Per Second: + Frames por segundo: + + + + + Suspend Capturing + Suspender captura + + + + + Normalize Frame Timing + Normalizar o tempo do frame + + + + + Clear Frames + Limpar Frames + + + + + Keep Filters When Clearing + Mantenha os filtros ao limpar + + + + + Auto Scroll Window + Janela de rolagem automática + + + + + Overwrite Mode + Modo de substituição + + + + + Interpret Frames + Interpretar frames + + + + + Expand All Rows + Expandir todas as linhas + + + + + Collapse All Rows + Recolher todas as linhas + + + + + Bus Filtering: + Filtragem de barramento: + + + + + Frame Filtering: + Filtragem de frames: + + + + + All + Todos + + + + + None + Nenhum + + + + + RE Tools + Ferramentas RE + + + + + Send Frames + Enviar frames + + + + + File + Arquivo + + + + + Connection + Conexão + + + + + Playback + Reprodução + + + + + Custom + Personalizado + + + + + Flow View + Visualização de fluxo + + + + + Fuzzy Scope + Escopo difuso + + + + + New Graphing Window + Nova janela gráfica + + + + + Load Log File + Carregar arquivo de log + + + + + Ctrl+O + Ctrl+O + + + + + Save Log File + Salvar arquivo de registro + + + + + Frame Data Analysis + Análise de dados de frames + + + + + Load DBC File + Carregar arquivo DBC + + + + + Edit Messages/Signals + Editar mensagens/sinais + + + + + Save DBC File + Salvar arquivo DBC + + + + + Save Decoded Frames + Salvar Frames decodificados + + + + + Exit Application + Sair do aplicativo + + + + + File Comparison + Comparação de arquivos + + + + + Preferences + Preferências + + + + + Save Filtered Log File + Salvar arquivo de log filtrado + + + + + Load Filter Definition + Definição de filtro de carga + + + + + Save Filter Definition + Salvar definição de filtro + + + + + Firmware Uploader + Carregador de firmware + + + + + Open Connection Window + Abrir janela de conexão + + + + + Connect + Conectar + + + + + Scripting Interface + Interface de script + + + + + Range State + Estado do intervalo + + + + + Single/Multi State + Estado único/múltiplo + + + + + DBC File Manager + Gerenciador de arquivos DBC + + + + + Fuzzing + Difusão + + + + + UDS Scanner + Scanner UDS + + + + + ISO-TP Decoder + Decodificador ISO-TP + + + + + Sniffer + Sniffer + + + + + Firmware Update + Atualização de Firmware + + + + + MotorControlConfig + MotorControlConfig + + + + + Capture Bisector + Capturar Bissetriz + + + + + Signal Viewer + Visualizador de sinal + + + + + + Start Continuous Logging + Iniciar Log contínuo + + + + + Temporal Graph + Gráfico Temporal + + + + + DBC Comparison + Comparação DBC + + + + + Save Decoded Frames CSV + Salvar quadros decodificados CSV + + + + + CAN Bridge + Ponte CAN + + + + Connected to 0 buses + Conectado a 0 barramentos + + + + Press F1 on any screen for help + Pressione F1 em qualquer tela para obter ajuda + + + + Add to a new graphing window + Adicionar a uma nova janela gráfica + + + + Add to latest graphing window + Adicionar à janela gráfica mais recente + + + + Cease Continuous Logging + Cessar Log contínuo + + + + Filter list (*.ftl) + Lista de filtros (*.ftl) + + + + Filter List (*.ftl) + Lista de filtros (*.ftl) + + + + Text File (*.txt *.TXT) + Arquivo de texto (*.txt *.TXT) + + + + CSV File (*.csv *.CSV) + Arquivo CSV (*.csv *.CSV) + + + + Year + Ano + + + + Month + Mês + + + + Day + Dia + + + + Hour + Hora + + + + Minute + Minuto + + + + Second + Segundo + + + + Ms + EM + + + + Time + Tempo + + + + ID + ID + + + + Bus + Barramento + + + + DataLen + DataLen + + + + Time: + Time: + + + + ID: + ID: + + + + Ext + Ext + + + + Std + Std + + + + Bus: + Bus: + + + + Data Bytes: + Data Bytes: + + + + Connected to + Conectado a + + + + buses + barramentos + + + + No packets loaded + Nenhum pacote carregado + + + + No file loaded + Nenhum arquivo carregado + + + + MotorControllerConfigWindow + + + + Controller Configuration + Configuração do controlador + + + + + Load Definition File + Carregar arquivo de definição + + + + + Refresh + Atualizar + + + + + Save + Salvar + + + + RMS Definition File (*.txt *.TXT) + Arquivo de definição RMS (*.txt *.TXT) + + + + NewConnectionDialog + + + + New Connection + Nova conexão + + + + + Connection Type + Tipo de conexão + + + + + socketcand (SocketCAN over Ethernet) + socketcand (SocketCAN sobre Ethernet) + + + + + QT SerialBus Devices (SocketCAN, PeakCAN, etc) + Dispositivos QT SerialBus (SocketCAN, PeakCAN, etc.) + + + + + MQTT Connection + Conexão MQTT + + + + + Serial Connection (GVRET) + Conexão serial (GVRET) + + + + + Network connection (GVRET) + Conexão de rede (GVRET) + + + + + LAWICEL / SLCAN Serial + LAWICEL/SLCAN Serial + + + + + CANserver + CANserver + + + + + CANlogserver + CANlogserver + + + + + SerialBus Device Type: + Tipo de dispositivo SerialBus: + + + + + Serial Port: + Porta serial: + + + + + Serial Port Speed: + Velocidade da porta serial: + + + + + CAN Bus Speed: + Velocidade do barramento CAN: + + + + + CAN-FD + CAN-FD + + + + + CAN-FD data rate + Taxa de dados CAN-FD + + + + + Create New Connection + Criar nova conexão + + + + NewGraphDialog + + + + Graph Settings + Configurações de gráfico + + + + + <html><head/><body><p>Name:</p></body></html> + <html><head/><body><p>Nome:</p></body></html> + + + + + ID: + ID: + + + + + Start Bit: + Bit inicial: + + + + + Graph a DBC Signal: + Representar graficamente um sinal DBC: + + + + + Node: + Nó: + + + + + Message: + Mensagem: + + + + + Signal: + Sinal: + + + + + Copy Signal Parameters + Copiar parâmetros de sinal + + + + + Bit Len: + Largura do Bit: + + + + + Little Endian + Little Endian + + + + + (LSB First) + (LSB Primeiro) + + + + + Signed: + Signed: + + + + + Mask: + Máscara: + + + + + Bias: + Deslocamento: + + + + + Scale + Escala + + + + + Stride + Passo + + + + + Associated Bus + Barramento Associado + + + + + -1 + -1 + + + + + Only Points + Apenas pontos + + + + + Point Style + Estilo de ponto + + + + + Line Thickness + Espessura da linha + + + + + Line Color + Cor da linha + + + + + + + CHANGE + MUDAR + + + + + Fill Color + Cor de preenchimento + + + + + Add this graph + Adicione este gráfico + + + + QObject + + + The %1 part contains more than one '-' sign + A parte %1 contém mais de um sinal '-' + + + + + + Unable to parse the %1 part to integer + Não foi possível analisar a parte %1 em número inteiro + + + + RangeStateWindow + + + + Range State Window + Janela de estado de intervalo + + + + + Candidate Signals: + Sinais de Candidato: + + + + + Graphical Representation of Selected Signal: + Representação gráfica do sinal selecionado: + + + + + Sensitivity + Sensibilidade + + + + + Min Signal Size: + Tamanho mínimo do sinal: + + + + + Max Signal Size: + Tamanho máximo do sinal: + + + + + Granularity: + Granularidade: + + + + + Signal Mode: + Modo de sinal: + + + + + Signed Mode: + Modo Signed: + + + + + ID Filter: + Filtro de ID: + + + + + All + Todos + + + + + None + Nenhum + + + + + Recalculate Candidate Signals + Recalcular Sinais Candidatos + + + + Big Endian + Big Endian + + + + Little Endian + Little Endian + + + + + Try Both + Experimentar ambos + + + + Signed Value + Valor Signed + + + + Unsigned Value + Valor Unsigned + + + + ScriptingWindow + + + + Scripting Interface + Interface de script + + + + + Public Variables + Variáveis ​​Públicas + + + + + Loaded Scripts + Scripts carregados + + + + + &New + &Novo + + + + + &Del + &Excluir + + + + + &Load + &Carregar + + + + + Script Editing Window + Janela de edição de script + + + + + &Save + &Salvar + + + + + Sa&ve As + Sal&var como + + + + + &Revert + &Reverter + + + + + R&eload + R&ecarregar + + + + + Re&compile + Re&compilar + + + + + Log Window + Janela de Log + + + + + &Auto Scroll Log Window + &Janela de registro de rolagem automática + + + + + Clear Log &Window + &Limpar Log e janela + + + + + Save L&og + Salvar L&og + + + + + Javascript File (*.js) + Arquivo Javascript (*.js) + + + + Log File (*.log) + Arquivo de registro (*.log) + + + + SignalViewerWindow + + + + Signal Viewer + Visualizador de sinal + + + + + Remove Selected Signal + Remover sinal selecionado + + + + + Node + Nó + + + + + Message + Mensagem + + + + + Signal + Sinal + + + + + Add To Viewer + Adicionar ao visualizador + + + + + Save View + Salvar visualização + + + + + Load View + Carregar visualização + + + + + Append to View + Anexar à visualização + + + + + Clear View + Limpar Visão + + + + + SignalViewer definition (*.sdf) + Definição do SignalViewer (*.sdf) + + + + TemporalGraphWindow + + + + Temporal Graph + Gráfico Temporal + + + + TriggerDialog + + + + Trigger Builder + Construtor de Triggers + + + + + Add New + Adicionar novo + + + + + Delete + Excluir + + + + + Bus + Barramento + + + + + Msg ID + ID da mensagem + + + + + Signal + Signed + + + + + MS Delay + Atraso MS + + + + + Max Count + Contagem máxima + + + + + Signal Value + Valor do sinal + + + + + Save And Update + Salvar e atualizar + + + + UDSScanWindow + + + + UDS Scanner + Scanner UDS + + + + + Scans To Run + Varreduras para executar + + + + + Add + Adicionar + + + + + Delete + Excluir + + + + + Load + Carregar + + + + + Save + Salvar + + + + + Starting ID + ID inicial + + + + + + + + + + + + + + + + + 0x + 0x + + + + + Ending ID + ID final + + + + + Show "No Reply" + Mostrar "Sem resposta" + + + + + Allow adaptive reply offset + Permitir deslocamento de resposta adaptável + + + + + Bus to scan + Barramento para escanear + + + + + Maximum reply delay (ms) + Atraso máximo de resposta (ms) + + + + + Reply Offset: + Compensação de resposta: + + + + + Scan Type: + Tipo de varredura: + + + + + Run test in session type: + Execute o teste no tipo de sessão: + + + + + Subfunct Len: + Len subfunção: + + + + + Lower Bound: + Limite inferior: + + + + + Upper Bound: + Limite superior: + + + + + Increment + Incremento + + + + + Lower Service: + Serviço inferior: + + + + + Upper Service: + Serviço Superior: + + + + + Results + Resultados + + + + + Run All Scans + Execute todas as varreduras + + + + + Run Selected Scan + Executar varredura selecionada + + + + + Save Scan Results + Salvar resultados da varredura + + + + + UDS Test Specification (*.uds *.UDS) + Especificação de teste UDS (*.uds *.UDS) + + + + Text File (*.txt) + Arquivo de texto (*.txt) + + + + snifferWindow + + + + Sniffer + Sniffer + + + + + Notch + Encaixar + + + + + Unnotch + Desencaixar + + + + + Mute notched bits + Silenciar bits enganchados + + + + + Notch Interval + Intervalo de encaixe + + + + + + + ms + ms + + + + + Expire Interval + Intervalo de expiração + + + + + Never Expire IDs + Nunca expire IDs + + + + + Fade inactive bytes + Desaparecer bytes inativos + + + + + View Bits + Ver bits + + + + + Filters: + Filtros: + + + + + All + Todos + + + + + None + Nenhum + + + From 2b8d88ef951f3a7286ccf44052080b25a672ea36 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 17:17:58 -0300 Subject: [PATCH 03/12] fix Main/Language not saving on ini file --- main.cpp | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/main.cpp b/main.cpp index be139e6..4f0a317 100644 --- a/main.cpp +++ b/main.cpp @@ -2,6 +2,7 @@ #include #include #include +#include class SavvyCANApplication : public QApplication { @@ -34,17 +35,6 @@ int main(int argc, char *argv[]) SavvyCANApplication a(argc, argv); - QTranslator translator; - QLocale locale = QLocale::system(); - QString lang = locale.name(); - QString shortLang = locale.name().left(2); // pt - - if (!translator.load("savvycan_" + lang, "translations")) - { - translator.load("savvycan_" + lang, "translations"); - } - a.installTranslator(&translator); - //Add a local path for Qt extensions, to allow for per-application extensions. a.addLibraryPath("plugins"); @@ -52,11 +42,20 @@ int main(int argc, char *argv[]) a.setOrganizationName("EVTV"); a.setApplicationName("SavvyCAN"); a.setOrganizationDomain("evtv.me"); + QSettings::setDefaultFormat(QSettings::IniFormat); + QSettings settings; + + QString localeString = settings.value("Main/Language").toString(); + if (localeString.isEmpty()) { + QLocale sysLocale = QLocale::system(); + localeString = sysLocale.name(); + settings.setValue("Main/Language", localeString); + } + a.mainWindow = new MainWindow(); - QSettings settings; int fontSize = settings.value("Main/FontSize", 9).toUInt(); QFont sysFont = QFont(); //get default font sysFont.setPointSize(fontSize); @@ -65,8 +64,8 @@ int main(int argc, char *argv[]) a.mainWindow->show(); int retCode = a.exec(); - + delete a.mainWindow; a.mainWindow = NULL; - + return retCode; } From 41775695c072787ce7ada36be078a0d699aa210d Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 17:18:51 -0300 Subject: [PATCH 04/12] fix not getting the translations folder on main app dir --- main.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/main.cpp b/main.cpp index 4f0a317..5fe4e1e 100644 --- a/main.cpp +++ b/main.cpp @@ -53,6 +53,17 @@ int main(int argc, char *argv[]) settings.setValue("Main/Language", localeString); } + QTranslator translator; + QLocale locale(localeString); + QString lang = locale.name(); + QString shortLang = locale.name().left(2); + + if (QString translationDir = QCoreApplication::applicationDirPath() + "/translations"; !translator.load("SavvyCAN_" + lang, translationDir)) { + translator.load("SavvyCAN_" + shortLang, translationDir); + } + a.installTranslator(&translator); + + qInfo() << "Locale Value is:" << locale.name(); a.mainWindow = new MainWindow(); From f7c2a6b4b696a6dc1928cbc040b0a9f16e096e47 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 17:19:11 -0300 Subject: [PATCH 05/12] updating minor typo on translations --- translations/savvycan_pt_BR.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/savvycan_pt_BR.ts b/translations/savvycan_pt_BR.ts index 13ec980..3fb588b 100644 --- a/translations/savvycan_pt_BR.ts +++ b/translations/savvycan_pt_BR.ts @@ -187,7 +187,7 @@ Form - Forma + Formulário @@ -1370,7 +1370,7 @@ e os intervalos de valores por hífens of - de + de @@ -2674,7 +2674,7 @@ e os intervalos de valores por hífens Password - Senha: + Senha From 28927f3f4fba2b4cae9c626e6e576b48c9b08c96 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 20:52:22 -0300 Subject: [PATCH 06/12] adding cache clangd to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d976787..c98440f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,7 @@ SavvyCAN **/moc_* **/ui_*.h **/qrc_*.cpp +.qtc_clangd SavvyCAN.pro.user.* .qmake.stash Makefile From 06a7bc555b2ae5379bc04fb0dfb9ce5193576317 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 20:55:34 -0300 Subject: [PATCH 07/12] renaming and working with qt creator --- SavvyCAN.pro | 6 + scripts/edit_translations.sh | 2 +- scripts/update_translations.sh | 2 +- .../{savvycan_en.ts => SavvyCAN_en.ts} | 544 ------------------ .../{savvycan_pt_BR.ts => SavvyCAN_pt_BR.ts} | 544 ------------------ 5 files changed, 8 insertions(+), 1090 deletions(-) rename translations/{savvycan_en.ts => SavvyCAN_en.ts} (79%) rename translations/{savvycan_pt_BR.ts => SavvyCAN_pt_BR.ts} (79%) diff --git a/SavvyCAN.pro b/SavvyCAN.pro index d608800..2da76c4 100644 --- a/SavvyCAN.pro +++ b/SavvyCAN.pro @@ -279,3 +279,9 @@ INSTALLS += helpfiles INSTALLS += target +TRANSLATIONS += \ + translations/SavvyCAN_en.ts \ + translations/SavvyCAN_pt_BR.ts + +DISTFILES += \ + translations/pt_BR.qph diff --git a/scripts/edit_translations.sh b/scripts/edit_translations.sh index 8347bf2..96dc0c1 100755 --- a/scripts/edit_translations.sh +++ b/scripts/edit_translations.sh @@ -3,4 +3,4 @@ PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" TRANSLATIONS_DIR="$PROJECT_ROOT/translations" -linguist "$TRANSLATIONS_DIR"/savvycan_*.ts \ No newline at end of file +linguist "$TRANSLATIONS_DIR"/SavvyCAN_*.ts \ No newline at end of file diff --git a/scripts/update_translations.sh b/scripts/update_translations.sh index ac32455..361105b 100755 --- a/scripts/update_translations.sh +++ b/scripts/update_translations.sh @@ -6,6 +6,6 @@ TRANSLATIONS_DIR="$PROJECT_ROOT/translations" echo "Atualizando arquivos de tradução..." lupdate "$PROJECT_ROOT" \ --ts "$TRANSLATIONS_DIR"/savvycan_*.ts +-ts "$TRANSLATIONS_DIR"/SavvyCAN_*.ts echo "Traduções atualizadas." \ No newline at end of file diff --git a/translations/savvycan_en.ts b/translations/SavvyCAN_en.ts similarity index 79% rename from translations/savvycan_en.ts rename to translations/SavvyCAN_en.ts index 7129952..001a6d7 100644 --- a/translations/savvycan_en.ts +++ b/translations/SavvyCAN_en.ts @@ -5,99 +5,82 @@ BisectWindow - Bisector Window - Splitting Strategy: - ID Range - TO - Frame Number - Percentage - Bus Number - Save Which Side: - Lower Section - Upper Section - Number of Frames in Main List: - - 0 - Saved Frames after split: - Calculate Split - Save split frames to a new file - Replace main list with split frames @@ -116,39 +99,32 @@ CANBridgeWindow - CAN Bridger - Side 1 - - Enable forwarding - IDs to forward to side 2 - Side 2 - IDs to forward to side 1 @@ -185,7 +161,6 @@ CANDataGrid - Form @@ -262,109 +237,91 @@ ConnectionWindow - Connection Settings - Disconnect Selected Device - Reset Selected Device - Bus Details: - Speed: - Listen Only: - Enable Bus: - Save Bus Settings - Enable CAN FD: - CAN FD Data Rate - Connected Devices: - Add New Device Connection - Enable Console - Device Console: - Send: - Send Hex - Send Text - Clear @@ -373,45 +330,37 @@ DBCComparatorWindow - DBC Comparator - Side 1 - - TextLabel - Load New File - Side 2 - Load A File - Save Details to File @@ -439,49 +388,41 @@ DBCLoadSaveWindow - DBC File Manager - Create new DBC - Load - Remove - Move Up - Save - Edit - Move Down @@ -505,61 +446,51 @@ DBCMainEditor - DBC Editing Window - New Node - New Message - New Signal - Delete - Find: - Search - Search Results: 0 of 0 - Next - Previous @@ -593,63 +524,52 @@ DBCMessageEditor - Message Editor - Frame ID: - Message Name: - Frame Length: - Text Color: - Background Color: - Comments: - Sending Node: - - Set - Sample Colored Output: @@ -659,32 +579,26 @@ - - Duplicate Node - New Node Name: - Current Base ID: - New Base ID: - Cancel @@ -693,19 +607,16 @@ DBCNodeEditor - Node Editor - Node Name: - Comments: @@ -714,37 +625,31 @@ DBCNodeRebaseEditor - Rebase All Node Messages - Node Name: - Current Base ID: - New Base ID: - Rebase All Messages in Node - Cancel @@ -753,127 +658,106 @@ DBCSignalEditor - Signal Editor - Name: - Bit Length: - Byte Order - LSB First (Little Endian) - Type: - Scale: - Bias: - Min Value: - Max Value: - Units Name: - Receiving Node: - Multiplexing - None - Multiplexed - Multiplexor - Extended - Multiplex value - Multiplex Parent - Comment: - Single values has to be separated by semicolons and the value ranges by hypens (e.g.: 1;2;5-7) @@ -881,7 +765,6 @@ and the value ranges by hypens - Value Table: @@ -906,85 +789,71 @@ and the value ranges by hypens DiscreteStateWindow - Single/Multi State WIndow - Candidate Matches: - Number of States: - Realtime - From logged data - Toggle Frequency (Seconds) - Iterations - WAIT - Min Bits - Max Bits - IDs to Scan - All - None - Go for it @@ -993,69 +862,57 @@ and the value ranges by hypens FileComparatorWindow - File Comparator - SIDE 1 - Single file to compare to side 2: - - TextLabel - Load New File - Side 2 - One or more files to compare with the single file on side1: - Load A File - Clear Frames - Show only data unique to Side 1 - Save Details to File @@ -1069,49 +926,41 @@ and the value ranges by hypens FirmwareUploaderWindow - Firmware Updater - Loaded File: - Load File - Device Token: - CAN Bus: - Base Address: - X of Y bytes - Start Upload @@ -1125,67 +974,56 @@ and the value ranges by hypens FlowViewWindow - Flow View - Playback Control - Playback Speed: - Loop Playback - Current Frame: - X of Y - Live Mode (No Playback) - Synchronize windows - Graph by timestamp - Auto Reference - Reference Values (Hex) @@ -1194,10 +1032,6 @@ and the value ranges by hypens - - - - 0 @@ -1206,10 +1040,6 @@ and the value ranges by hypens - - - - 1 @@ -1218,10 +1048,6 @@ and the value ranges by hypens - - - - 2 @@ -1230,10 +1056,6 @@ and the value ranges by hypens - - - - 3 @@ -1242,10 +1064,6 @@ and the value ranges by hypens - - - - 4 @@ -1254,10 +1072,6 @@ and the value ranges by hypens - - - - 5 @@ -1266,10 +1080,6 @@ and the value ranges by hypens - - - - 6 @@ -1278,22 +1088,16 @@ and the value ranges by hypens - - - - 7 - Current Values (Hex) - Data Seek Values @@ -1306,38 +1110,26 @@ and the value ranges by hypens - - - - - - - - -1 - Chart range - 50 - Timeline: - Frame IDs Found: @@ -1542,43 +1334,36 @@ and the value ranges by hypens FrameInfoWindow - Detailed Frame Information - Frame IDs: - Unique IDs - Details: - Save details to file - Interval Histogram - Bytes Graph @@ -1750,121 +1535,101 @@ and the value ranges by hypens FramePlaybackWindow - Playback - Use original frame timing from captured frames - Wait for traffic before starting playback - Playback speed (ms): - Burst Rate: - Current Playback Item: - TextLabel - Current frame: - x of y - Loop Sequence - Send to CANBus - <html><head/><body><p>Playback Sequence:</p></body></html> - Load File - Load Captured Data - Delete Selected - ID Filtering: - Select all IDs - Deselect all IDs - Load Filters - Save Filters @@ -1911,37 +1676,31 @@ and the value ranges by hypens FrameSenderWindow - Frame Sender - Enable All - Disable All - Clear Grid - Load to Grid - Save Grid @@ -1956,256 +1715,213 @@ and the value ranges by hypens FuzzingWindow - Fuzzing Window - Interframe Timing (ms) - Number of data bytes - Burst Rate - Bus or Buses to Send On - ID Scanning - Seqential - - Random - ID Selection - Range of IDs - Filter List - Bit Scanning - Sequential - Sweep - IDs - Start ID: - End ID: - All - None - Byte Values (Always in hexadecimal) - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - White = Bit always 0, Green = Fuzz Bit, Black = Bit always set, Gray = Past end of data bytes - All High - All Low - All Auto - Start Fuzzing - # of sent frames: @@ -2214,7 +1930,6 @@ and the value ranges by hypens GraphingWindow - Data Graphing @@ -2339,7 +2054,6 @@ and the value ranges by hypens HelpWindow - SavvyCAN Help @@ -2348,67 +2062,56 @@ and the value ranges by hypens ISOTP_InterpreterWindow - ISO-TP Decoder - Interpreted Messages Overview - Interpret Previously Captured Frames - Clear Messages List - Save List - Show incomplete and/or corrupted messages - Use extended addressing - Data Details of Selected Message - IDs to Decode - All - None @@ -2427,255 +2130,212 @@ and the value ranges by hypens MainSettingsDialog - Main Settings - Main Form Settings: - Autoscroll main frame window by default - Maximum data bytes per line - General Settings: - Save/Restore window positions and sizes - Save/Restore CAN bus connections - Display values as hexadecimal - Require validation of GVRET connection - Use filtered frames in sub-windows - OpenGL Accelerated AntiAliased Graphing - CAN Frame Pre-allocation Size - Time Keeping - Seconds/Milli/Micro are dongle based - Seconds - Microseconds - Milliseconds - System Clock - Time Format String: - Use absolute time in decoded CSV output - Font - Use fixed-width font in tables - Size - Flowview Settings: - Use timestamp mode by default - Set Auto Reference by default - - Hexadecimal Graph Y Axis - Playback Window Settings: - Loop by default - Default playback speed (ms) - Default Sending Bus - DBC Settings - Label DBC messages by default - Ignore DBC message colors - File Info and Comparator Settings: - Auto expand all nodes - MQTT Remote CAN Settings: - Host: - Port: - User Name: - Password - Some settings will not take effect until the application is restarted @@ -2709,362 +2369,302 @@ and the value ranges by hypens MainWindow - SavvyCAN - Remote Connection Active: - Total Frames Captured: - Frames Per Second: - Suspend Capturing - Normalize Frame Timing - Clear Frames - Keep Filters When Clearing - Auto Scroll Window - Overwrite Mode - Interpret Frames - Expand All Rows - Collapse All Rows - Bus Filtering: - Frame Filtering: - All - None - RE Tools - Send Frames - File - Connection - Playback - Custom - Flow View - Fuzzy Scope - New Graphing Window - Load Log File - Ctrl+O - Save Log File - Frame Data Analysis - Load DBC File - Edit Messages/Signals - Save DBC File - Save Decoded Frames - Exit Application - File Comparison - Preferences - Save Filtered Log File - Load Filter Definition - Save Filter Definition - Firmware Uploader - Open Connection Window - Connect - Scripting Interface - Range State - Single/Multi State - DBC File Manager - Fuzzing - UDS Scanner - ISO-TP Decoder - Sniffer - Firmware Update - MotorControlConfig - Capture Bisector - Signal Viewer - Start Continuous Logging - Temporal Graph - DBC Comparison - Save Decoded Frames CSV - CAN Bridge @@ -3223,25 +2823,21 @@ and the value ranges by hypens MotorControllerConfigWindow - Controller Configuration - Load Definition File - Refresh - Save @@ -3255,103 +2851,86 @@ and the value ranges by hypens NewConnectionDialog - New Connection - Connection Type - socketcand (SocketCAN over Ethernet) - QT SerialBus Devices (SocketCAN, PeakCAN, etc) - MQTT Connection - Serial Connection (GVRET) - Network connection (GVRET) - LAWICEL / SLCAN Serial - CANserver - CANlogserver - SerialBus Device Type: - Serial Port: - Serial Port Speed: - CAN Bus Speed: - CAN-FD - CAN-FD data rate - Create New Connection @@ -3360,159 +2939,132 @@ and the value ranges by hypens NewGraphDialog - Graph Settings - <html><head/><body><p>Name:</p></body></html> - ID: - Start Bit: - Graph a DBC Signal: - Node: - Message: - Signal: - Copy Signal Parameters - Bit Len: - Little Endian - (LSB First) - Signed: - Mask: - Bias: - Scale - Stride - Associated Bus - -1 - Only Points - Point Style - Line Thickness - Line Color - - CHANGE - Fill Color - Add this graph @@ -3536,79 +3088,66 @@ and the value ranges by hypens RangeStateWindow - Range State Window - Candidate Signals: - Graphical Representation of Selected Signal: - Sensitivity - Min Signal Size: - Max Signal Size: - Granularity: - Signal Mode: - Signed Mode: - ID Filter: - All - None - Recalculate Candidate Signals @@ -3643,97 +3182,81 @@ and the value ranges by hypens ScriptingWindow - Scripting Interface - Public Variables - Loaded Scripts - &New - &Del - &Load - Script Editing Window - &Save - Sa&ve As - &Revert - R&eload - Re&compile - Log Window - &Auto Scroll Log Window - Clear Log &Window - Save L&og @@ -3753,61 +3276,51 @@ and the value ranges by hypens SignalViewerWindow - Signal Viewer - Remove Selected Signal - Node - Message - Signal - Add To Viewer - Save View - Load View - Append to View - Clear View @@ -3822,7 +3335,6 @@ and the value ranges by hypens TemporalGraphWindow - Temporal Graph @@ -3831,61 +3343,51 @@ and the value ranges by hypens TriggerDialog - Trigger Builder - Add New - Delete - Bus - Msg ID - Signal - MS Delay - Max Count - Signal Value - Save And Update @@ -3894,43 +3396,36 @@ and the value ranges by hypens UDSScanWindow - UDS Scanner - Scans To Run - Add - Delete - Load - Save - Starting ID @@ -3942,121 +3437,96 @@ and the value ranges by hypens - - - - - - - 0x - Ending ID - Show "No Reply" - Allow adaptive reply offset - Bus to scan - Maximum reply delay (ms) - Reply Offset: - Scan Type: - Run test in session type: - Subfunct Len: - Lower Bound: - Upper Bound: - Increment - Lower Service: - Upper Service: - Results - Run All Scans - Run Selected Scan - Save Scan Results @@ -4076,81 +3546,67 @@ and the value ranges by hypens snifferWindow - Sniffer - Notch - Unnotch - Mute notched bits - Notch Interval - - ms - Expire Interval - Never Expire IDs - Fade inactive bytes - View Bits - Filters: - All - None diff --git a/translations/savvycan_pt_BR.ts b/translations/SavvyCAN_pt_BR.ts similarity index 79% rename from translations/savvycan_pt_BR.ts rename to translations/SavvyCAN_pt_BR.ts index 3fb588b..521b253 100644 --- a/translations/savvycan_pt_BR.ts +++ b/translations/SavvyCAN_pt_BR.ts @@ -5,99 +5,82 @@ BisectWindow - Bisector Window Janela Bissetriz - Splitting Strategy: Estratégia de divisão: - ID Range Intervalo de IDs - TO PARA - Frame Number Número do frame - Percentage Percentagem - Bus Number Número do Barramento - Save Which Side: Salvar qual lado: - Lower Section Seção Inferior - Upper Section Seção Superior - Number of Frames in Main List: Número de Frames na lista principal: - - 0 0 - Saved Frames after split: Frames salvos após divisão: - Calculate Split Calcular divisão - Save split frames to a new file Salve os frames divididos em um novo arquivo - Replace main list with split frames Substitua a lista principal por frames divididos @@ -116,39 +99,32 @@ CANBridgeWindow - CAN Bridger Ponte CAN - Side 1 Lado 1 - - Enable forwarding Ativar encaminhamento - IDs to forward to side 2 IDs para encaminhar para o lado 2 - Side 2 Lado 2 - IDs to forward to side 1 IDs para encaminhar para o lado 1 @@ -185,7 +161,6 @@ CANDataGrid - Form Formulário @@ -262,109 +237,91 @@ ConnectionWindow - Connection Settings Configurações de conexão - Disconnect Selected Device Desconectar dispositivo selecionado - Reset Selected Device Redefinir dispositivo selecionado - Bus Details: Detalhes do Barramento: - Speed: Velocidade: - Listen Only: Escutar apenas: - Enable Bus: Habilitar barramento: - Save Bus Settings Salvar configurações do barramento - Enable CAN FD: Ativar CAN FD: - CAN FD Data Rate Taxa de dados CAN FD - Connected Devices: Dispositivos conectados: - Add New Device Connection Adicionar nova conexão de dispositivo - Enable Console Habilitar console - Device Console: Console do dispositivo: - Send: Enviar: - Send Hex Enviar hexadecimal - Send Text Enviar texto - Clear Limpar @@ -373,45 +330,37 @@ DBCComparatorWindow - DBC Comparator Comparador DBC - Side 1 Lado 1 - - TextLabel TextLabel - Load New File Carregar novo arquivo - Side 2 Lado 2 - Load A File Carregar um arquivo - Save Details to File Salvar detalhes no arquivo @@ -439,49 +388,41 @@ DBCLoadSaveWindow - DBC File Manager Gerenciador de arquivos DBC - Create new DBC Criar novo DBC - Load Carregar - Remove Remover - Move Up Subir - Save Salvar - Edit Editar - Move Down Descer @@ -505,61 +446,51 @@ DBCMainEditor - DBC Editing Window Janela de edição DBC - New Node Novo nó - New Message Nova mensagem - New Signal Novo sinal - Delete Excluir - Find: Encontrar: - Search Procurar - Search Results: 0 of 0 Resultados da pesquisa: 0 de 0 - Next Próximo - Previous Anterior @@ -593,63 +524,52 @@ DBCMessageEditor - Message Editor Editor de mensagens - Frame ID: ID do Frame: - Message Name: Nome da mensagem: - Frame Length: Comprimento do Frame: - Text Color: Cor do texto: - Background Color: Cor de fundo: - Comments: Comentários: - Sending Node: Nó de envio: - - Set Definir - Sample Colored Output: Exemplo de saída colorida: @@ -659,32 +579,26 @@ - - Duplicate Node Nó duplicado - New Node Name: Novo nome do nó: - Current Base ID: ID base atual: - New Base ID: Nova ID base: - Cancel Cancelar @@ -693,19 +607,16 @@ DBCNodeEditor - Node Editor Editor de nós - Node Name: Nome do nó: - Comments: Comentários: @@ -714,37 +625,31 @@ DBCNodeRebaseEditor - Rebase All Node Messages Rebase todas mensagens de nó - Node Name: Nome do nó: - Current Base ID: ID base atual: - New Base ID: Novo ID base: - Rebase All Messages in Node Rebase todas mensagens do nó - Cancel Cancelar @@ -753,127 +658,106 @@ DBCSignalEditor - Signal Editor Editor de sinais - Name: Nome: - Bit Length: Comprimento do bit: - Byte Order Ordem de bytes - LSB First (Little Endian) LSB Primeiro (Little Endian) - Type: Tipo: - Scale: Escala: - Bias: Deslocamento: - Min Value: Valor mínimo: - Max Value: Valor máximo: - Units Name: Nome das unidades: - Receiving Node: Nó de recepção: - Multiplexing Multiplexação - None Nenhum - Multiplexed Multiplexado - Multiplexor Multiplexador - Extended Estendido - Multiplex value Valor multiplexado - Multiplex Parent Parente multiplexado - Comment: Comentário: - Single values has to be separated by semicolons and the value ranges by hypens (e.g.: 1;2;5-7) @@ -883,7 +767,6 @@ e os intervalos de valores por hífens - Value Table: Tabela de valores: @@ -909,85 +792,71 @@ e os intervalos de valores por hífens DiscreteStateWindow - Single/Multi State WIndow Janela de estado único/multiplo - Candidate Matches: Partidas de candidatos: - Number of States: Número de estados: - Realtime Em tempo real - From logged data Dos dados do log - Toggle Frequency (Seconds) Alternar frequência (segundos) - Iterations Iterações - WAIT ESPERE - Min Bits Bits mínimos - Max Bits Máximo de bits - IDs to Scan IDs para digitalizar - All Todos - None Nenhum - Go for it Vá em frente @@ -996,69 +865,57 @@ e os intervalos de valores por hífens FileComparatorWindow - File Comparator Comparador de arquivos - SIDE 1 LADO 1 - Single file to compare to side 2: Arquivo único para comparar com o lado 2: - - TextLabel TextLabel - Load New File Carregar novo arquivo - Side 2 Lado 2 - One or more files to compare with the single file on side1: Um ou mais arquivos para comparar com o arquivo único no lado 1: - Load A File Carregar um arquivo - Clear Frames Limpar Frames - Show only data unique to Side 1 Mostrar apenas dados exclusivos do Lado 1 - Save Details to File Salvar detalhes em arquivo @@ -1072,49 +929,41 @@ e os intervalos de valores por hífens FirmwareUploaderWindow - Firmware Updater Atualizador de firmware - Loaded File: Arquivo carregado: - Load File Carregar arquivo - Device Token: Token do dispositivo: - CAN Bus: Barramento CAN: - Base Address: Endereço básico: - X of Y bytes X de Y bytes - Start Upload Iniciar upload @@ -1128,67 +977,56 @@ e os intervalos de valores por hífens FlowViewWindow - Flow View Visualização de fluxo - Playback Control Controle de reprodução - Playback Speed: Velocidade de reprodução: - Loop Playback Reprodução em loop - Current Frame: Frame Atual: - X of Y X de Y - Live Mode (No Playback) Modo ao vivo (sem reprodução) - Synchronize windows Sincronizar janelas - Graph by timestamp Gráfico por carimbo de data/hora - Auto Reference Referência automática - Reference Values (Hex) Valores de referência (Hex) @@ -1197,10 +1035,6 @@ e os intervalos de valores por hífens - - - - 0 0 @@ -1209,10 +1043,6 @@ e os intervalos de valores por hífens - - - - 1 1 @@ -1221,10 +1051,6 @@ e os intervalos de valores por hífens - - - - 2 2 @@ -1233,10 +1059,6 @@ e os intervalos de valores por hífens - - - - 3 3 @@ -1245,10 +1067,6 @@ e os intervalos de valores por hífens - - - - 4 4 @@ -1257,10 +1075,6 @@ e os intervalos de valores por hífens - - - - 5 5 @@ -1269,10 +1083,6 @@ e os intervalos de valores por hífens - - - - 6 6 @@ -1281,22 +1091,16 @@ e os intervalos de valores por hífens - - - - 7 7 - Current Values (Hex) Valores Atuais (Hex) - Data Seek Values Valores de busca de dados @@ -1309,38 +1113,26 @@ e os intervalos de valores por hífens - - - - - - - - -1 -1 - Chart range Intervalo do gráfico - 50 50 - Timeline: Linha do tempo: - Frame IDs Found: IDs de Frame encontrados: @@ -1545,43 +1337,36 @@ e os intervalos de valores por hífens FrameInfoWindow - Detailed Frame Information Informações detalhadas do frame - Frame IDs: IDs de frame: - Unique IDs IDs únicos - Details: Detalhes: - Save details to file Salvar detalhes em arquivo - Interval Histogram Histograma de intervalo - Bytes Graph Gráfico de Bytes @@ -1753,121 +1538,101 @@ e os intervalos de valores por hífens FramePlaybackWindow - Playback Reprodução - Use original frame timing from captured frames Use o tempo de frame original dos frames capturados - Wait for traffic before starting playback Aguarde o tráfego antes de iniciar a reprodução - Playback speed (ms): Velocidade de reprodução (ms): - Burst Rate: Taxa de burst: - Current Playback Item: Item de reprodução atual: - TextLabel TextLabel - Current frame: Quadro atual: - x of y x de y - Loop Sequence Sequência de Loop - Send to CANBus Enviar para CANBus - <html><head/><body><p>Playback Sequence:</p></body></html> <html><head/><body><p>Sequência de reprodução:</p></body></html> - Load File Carregar arquivo - Load Captured Data Carregar dados capturados - Delete Selected Excluir selecionado - ID Filtering: Filtragem de ID: - Select all IDs Selecione todos os IDs - Deselect all IDs Desmarcar todos os IDs - Load Filters Carregar filtros - Save Filters Salvar filtros @@ -1914,37 +1679,31 @@ e os intervalos de valores por hífens FrameSenderWindow - Frame Sender Envio de Frame - Enable All Ativar tudo - Disable All Desativar tudo - Clear Grid Limpar grade - Load to Grid Carregar na grade - Save Grid Salvar grade @@ -1959,256 +1718,213 @@ e os intervalos de valores por hífens FuzzingWindow - Fuzzing Window Janela Difusão - Interframe Timing (ms) Tempo entre frames (ms) - Number of data bytes Número de bytes de dados - Burst Rate Taxa de burst - Bus or Buses to Send On Barramento ou Barramentos para enviar - ID Scanning Digitalização de ID - Seqential Sequencial - - Random Aleatório - ID Selection Seleção de ID - Range of IDs Faixa de IDs - Filter List Lista de filtros - Bit Scanning Varredura de bits - Sequential Sequencial - Sweep Varrer - IDs IDs - Start ID: ID inicial: - End ID: ID final: - All Todos - None Nenhum - Byte Values (Always in hexadecimal) Valores de bytes (sempre em hexadecimal) - 0 0 - 1 1 - 2 2 - 3 3 - 4 4 - 5 5 - 6 6 - 7 7 - 8 8 - 9 9 - 10 10 - 11 11 - 12 12 - 13 13 - 14 14 - 15 15 - White = Bit always 0, Green = Fuzz Bit, Black = Bit always set, Gray = Past end of data bytes Branco = Bit sempre 0, Verde = Bit Difuso, Preto = Bit sempre definido, Cinza = Passado o fim dos bytes de dados - All High Todos Alto - All Low Todos Baixo - All Auto Tudo Automático - Start Fuzzing Comece a difusão - # of sent frames: # de frames enviados: @@ -2217,7 +1933,6 @@ e os intervalos de valores por hífens GraphingWindow - Data Graphing Gráficos de dados @@ -2342,7 +2057,6 @@ e os intervalos de valores por hífens HelpWindow - SavvyCAN Help Ajuda do SavvyCAN @@ -2351,67 +2065,56 @@ e os intervalos de valores por hífens ISOTP_InterpreterWindow - ISO-TP Decoder Decodificador ISO-TP - Interpreted Messages Overview Visão geral das mensagens interpretadas - Interpret Previously Captured Frames Interpretar frames capturados anteriormente - Clear Messages List Limpar lista de mensagens - Save List Salvar lista - Show incomplete and/or corrupted messages Mostrar mensagens incompletas e/ou corrompidas - Use extended addressing Use endereçamento estendido - Data Details of Selected Message Detalhes dos dados da mensagem selecionada - IDs to Decode IDs para decodificar - All Todos - None Nenhum @@ -2430,255 +2133,212 @@ e os intervalos de valores por hífens MainSettingsDialog - Main Settings Configurações principais - Main Form Settings: Configurações principais do formulário: - Autoscroll main frame window by default Janela do quadro principal de rolagem automática por padrão - Maximum data bytes per line Máximo de bytes de dados por linha - General Settings: Configurações Gerais: - Save/Restore window positions and sizes Salvar/restaurar posições e tamanhos de janelas - Save/Restore CAN bus connections Salvar/restaurar conexões de barramento CAN - Display values as hexadecimal Exibir valores como hexadecimal - Require validation of GVRET connection Exigir validação da conexão GVRET - Use filtered frames in sub-windows Use frames filtrados em subjanelas - OpenGL Accelerated AntiAliased Graphing Gráficos AntiAliased acelerados por OpenGL - CAN Frame Pre-allocation Size Tamanho de pré-alocação do frame CAN - Time Keeping Cronometragem - Seconds/Milli/Micro are dongle based Segundos/Milli/Micro são baseados em dongle - Seconds Segundos - Microseconds Microssegundos - Milliseconds Milissegundos - System Clock Relógio do sistema - Time Format String: Sequência de formato de hora: - Use absolute time in decoded CSV output Use tempo absoluto na saída CSV decodificada - Font Fonte - Use fixed-width font in tables Use fonte de largura fixa em tabelas - Size Tamanho - Flowview Settings: Configurações de visualização de fluxo: - Use timestamp mode by default Use o modo timestamp por padrão - Set Auto Reference by default Definir referência automática por padrão - - Hexadecimal Graph Y Axis Eixo Y do gráfico hexadecimal - Playback Window Settings: Configurações da janela de reprodução: - Loop by default Loop por padrão - Default playback speed (ms) Velocidade de reprodução padrão (ms) - Default Sending Bus Barramento de envio padrão - DBC Settings Configurações DBC - Label DBC messages by default Mostrar mensagens DBC por padrão - Ignore DBC message colors Ignorar cores de mensagens DBC - File Info and Comparator Settings: Informações do arquivo e configurações do comparador: - Auto expand all nodes Expandir automaticamente todos os nós - MQTT Remote CAN Settings: Configurações CAN remotas MQTT: - Host: Host: - Port: Porta: - User Name: Nome de usuário: - Password Senha - Some settings will not take effect until the application is restarted Algumas configurações não terão efeito até que o aplicativo seja reiniciado @@ -2712,362 +2372,302 @@ e os intervalos de valores por hífens MainWindow - SavvyCAN SavvyCAN - Remote Connection Active: Conexão remota ativa: - Total Frames Captured: Total de frames capturados: - Frames Per Second: Frames por segundo: - Suspend Capturing Suspender captura - Normalize Frame Timing Normalizar o tempo do frame - Clear Frames Limpar Frames - Keep Filters When Clearing Mantenha os filtros ao limpar - Auto Scroll Window Janela de rolagem automática - Overwrite Mode Modo de substituição - Interpret Frames Interpretar frames - Expand All Rows Expandir todas as linhas - Collapse All Rows Recolher todas as linhas - Bus Filtering: Filtragem de barramento: - Frame Filtering: Filtragem de frames: - All Todos - None Nenhum - RE Tools Ferramentas RE - Send Frames Enviar frames - File Arquivo - Connection Conexão - Playback Reprodução - Custom Personalizado - Flow View Visualização de fluxo - Fuzzy Scope Escopo difuso - New Graphing Window Nova janela gráfica - Load Log File Carregar arquivo de log - Ctrl+O Ctrl+O - Save Log File Salvar arquivo de registro - Frame Data Analysis Análise de dados de frames - Load DBC File Carregar arquivo DBC - Edit Messages/Signals Editar mensagens/sinais - Save DBC File Salvar arquivo DBC - Save Decoded Frames Salvar Frames decodificados - Exit Application Sair do aplicativo - File Comparison Comparação de arquivos - Preferences Preferências - Save Filtered Log File Salvar arquivo de log filtrado - Load Filter Definition Definição de filtro de carga - Save Filter Definition Salvar definição de filtro - Firmware Uploader Carregador de firmware - Open Connection Window Abrir janela de conexão - Connect Conectar - Scripting Interface Interface de script - Range State Estado do intervalo - Single/Multi State Estado único/múltiplo - DBC File Manager Gerenciador de arquivos DBC - Fuzzing Difusão - UDS Scanner Scanner UDS - ISO-TP Decoder Decodificador ISO-TP - Sniffer Sniffer - Firmware Update Atualização de Firmware - MotorControlConfig MotorControlConfig - Capture Bisector Capturar Bissetriz - Signal Viewer Visualizador de sinal - Start Continuous Logging Iniciar Log contínuo - Temporal Graph Gráfico Temporal - DBC Comparison Comparação DBC - Save Decoded Frames CSV Salvar quadros decodificados CSV - CAN Bridge Ponte CAN @@ -3226,25 +2826,21 @@ e os intervalos de valores por hífens MotorControllerConfigWindow - Controller Configuration Configuração do controlador - Load Definition File Carregar arquivo de definição - Refresh Atualizar - Save Salvar @@ -3258,103 +2854,86 @@ e os intervalos de valores por hífens NewConnectionDialog - New Connection Nova conexão - Connection Type Tipo de conexão - socketcand (SocketCAN over Ethernet) socketcand (SocketCAN sobre Ethernet) - QT SerialBus Devices (SocketCAN, PeakCAN, etc) Dispositivos QT SerialBus (SocketCAN, PeakCAN, etc.) - MQTT Connection Conexão MQTT - Serial Connection (GVRET) Conexão serial (GVRET) - Network connection (GVRET) Conexão de rede (GVRET) - LAWICEL / SLCAN Serial LAWICEL/SLCAN Serial - CANserver CANserver - CANlogserver CANlogserver - SerialBus Device Type: Tipo de dispositivo SerialBus: - Serial Port: Porta serial: - Serial Port Speed: Velocidade da porta serial: - CAN Bus Speed: Velocidade do barramento CAN: - CAN-FD CAN-FD - CAN-FD data rate Taxa de dados CAN-FD - Create New Connection Criar nova conexão @@ -3363,159 +2942,132 @@ e os intervalos de valores por hífens NewGraphDialog - Graph Settings Configurações de gráfico - <html><head/><body><p>Name:</p></body></html> <html><head/><body><p>Nome:</p></body></html> - ID: ID: - Start Bit: Bit inicial: - Graph a DBC Signal: Representar graficamente um sinal DBC: - Node: Nó: - Message: Mensagem: - Signal: Sinal: - Copy Signal Parameters Copiar parâmetros de sinal - Bit Len: Largura do Bit: - Little Endian Little Endian - (LSB First) (LSB Primeiro) - Signed: Signed: - Mask: Máscara: - Bias: Deslocamento: - Scale Escala - Stride Passo - Associated Bus Barramento Associado - -1 -1 - Only Points Apenas pontos - Point Style Estilo de ponto - Line Thickness Espessura da linha - Line Color Cor da linha - - CHANGE MUDAR - Fill Color Cor de preenchimento - Add this graph Adicione este gráfico @@ -3539,79 +3091,66 @@ e os intervalos de valores por hífens RangeStateWindow - Range State Window Janela de estado de intervalo - Candidate Signals: Sinais de Candidato: - Graphical Representation of Selected Signal: Representação gráfica do sinal selecionado: - Sensitivity Sensibilidade - Min Signal Size: Tamanho mínimo do sinal: - Max Signal Size: Tamanho máximo do sinal: - Granularity: Granularidade: - Signal Mode: Modo de sinal: - Signed Mode: Modo Signed: - ID Filter: Filtro de ID: - All Todos - None Nenhum - Recalculate Candidate Signals Recalcular Sinais Candidatos @@ -3646,97 +3185,81 @@ e os intervalos de valores por hífens ScriptingWindow - Scripting Interface Interface de script - Public Variables Variáveis ​​Públicas - Loaded Scripts Scripts carregados - &New &Novo - &Del &Excluir - &Load &Carregar - Script Editing Window Janela de edição de script - &Save &Salvar - Sa&ve As Sal&var como - &Revert &Reverter - R&eload R&ecarregar - Re&compile Re&compilar - Log Window Janela de Log - &Auto Scroll Log Window &Janela de registro de rolagem automática - Clear Log &Window &Limpar Log e janela - Save L&og Salvar L&og @@ -3756,61 +3279,51 @@ e os intervalos de valores por hífens SignalViewerWindow - Signal Viewer Visualizador de sinal - Remove Selected Signal Remover sinal selecionado - Node Nó - Message Mensagem - Signal Sinal - Add To Viewer Adicionar ao visualizador - Save View Salvar visualização - Load View Carregar visualização - Append to View Anexar à visualização - Clear View Limpar Visão @@ -3825,7 +3338,6 @@ e os intervalos de valores por hífens TemporalGraphWindow - Temporal Graph Gráfico Temporal @@ -3834,61 +3346,51 @@ e os intervalos de valores por hífens TriggerDialog - Trigger Builder Construtor de Triggers - Add New Adicionar novo - Delete Excluir - Bus Barramento - Msg ID ID da mensagem - Signal Signed - MS Delay Atraso MS - Max Count Contagem máxima - Signal Value Valor do sinal - Save And Update Salvar e atualizar @@ -3897,43 +3399,36 @@ e os intervalos de valores por hífens UDSScanWindow - UDS Scanner Scanner UDS - Scans To Run Varreduras para executar - Add Adicionar - Delete Excluir - Load Carregar - Save Salvar - Starting ID ID inicial @@ -3945,121 +3440,96 @@ e os intervalos de valores por hífens - - - - - - - 0x 0x - Ending ID ID final - Show "No Reply" Mostrar "Sem resposta" - Allow adaptive reply offset Permitir deslocamento de resposta adaptável - Bus to scan Barramento para escanear - Maximum reply delay (ms) Atraso máximo de resposta (ms) - Reply Offset: Compensação de resposta: - Scan Type: Tipo de varredura: - Run test in session type: Execute o teste no tipo de sessão: - Subfunct Len: Len subfunção: - Lower Bound: Limite inferior: - Upper Bound: Limite superior: - Increment Incremento - Lower Service: Serviço inferior: - Upper Service: Serviço Superior: - Results Resultados - Run All Scans Execute todas as varreduras - Run Selected Scan Executar varredura selecionada - Save Scan Results Salvar resultados da varredura @@ -4079,81 +3549,67 @@ e os intervalos de valores por hífens snifferWindow - Sniffer Sniffer - Notch Encaixar - Unnotch Desencaixar - Mute notched bits Silenciar bits enganchados - Notch Interval Intervalo de encaixe - - ms ms - Expire Interval Intervalo de expiração - Never Expire IDs Nunca expire IDs - Fade inactive bytes Desaparecer bytes inativos - View Bits Ver bits - Filters: Filtros: - All Todos - None Nenhum From 316cb90b1fef5c680f3de35a655752c02f33fd24 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 20:56:00 -0300 Subject: [PATCH 08/12] translations must be shipped with the app (don't know if i did the right way) --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e4d322..d19133d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,7 +57,9 @@ jobs: - name: Package run: | + mkdir -p SavvyCAN.app/Contents/MacOS/translations mkdir -p SavvyCAN.app/Contents/MacOS/help + cp -R translations/*.qm SavvyCAN.app/Contents/MacOS/translations cp -R help/* SavvyCAN.app/Contents/MacOS/help macdeployqt SavvyCAN.app -dmg mv SavvyCAN.dmg SavvyCAN_x64.dmg @@ -87,7 +89,9 @@ jobs: - name: Package run: | + mkdir -p SavvyCAN.app/Contents/MacOS/translations mkdir -p SavvyCAN.app/Contents/MacOS/help + cp -R translations/*.qm SavvyCAN.app/Contents/MacOS/translations cp -R help/* SavvyCAN.app/Contents/MacOS/help macdeployqt SavvyCAN.app -dmg mv SavvyCAN.dmg SavvyCAN_arm64.dmg @@ -120,6 +124,7 @@ jobs: mkdir package copy "release/SavvyCAN.exe" package/ mkdir package/help + copy translations/*.qm package/translations/ copy help/*.md package/help/ mkdir package/help/images copy help/images/*.* package/help/images/ From f72db3e03abdff5a904e86d1e6e6460f915110aa Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 21:30:08 -0300 Subject: [PATCH 09/12] adding guidelines to run script and configure tools in qt creator --- scripts/README.md | 13 +++++++++++++ scripts/build_translations.sh | 18 +++++++++++------- scripts/edit_translations.sh | 6 ------ scripts/update_translations.sh | 17 +++++++++++------ 4 files changed, 35 insertions(+), 19 deletions(-) create mode 100644 scripts/README.md delete mode 100755 scripts/edit_translations.sh diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..d2d6f6a --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,13 @@ +# Scripts + +To run this scripts, first you must authorize your terminal to run: + +```bash +chmod +x script/*.sh +``` + +Then you can run by using this command: + +```bash +./scripts/the/script/you/want/to/run +``` diff --git a/scripts/build_translations.sh b/scripts/build_translations.sh index fa05d08..a620c65 100755 --- a/scripts/build_translations.sh +++ b/scripts/build_translations.sh @@ -1,12 +1,16 @@ #!/bin/bash -PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" -TRANSLATIONS_DIR="$PROJECT_ROOT/translations" +PROJECT_ROOT="$(pwd)" -echo "Gerando arquivos .qm..." +# To add this tool in Qt Creator: +# Category: Linguist +# Name: Release Translations (lrelease) +# Executable: lrelease +# Arguments: SavvyCAN.pro +# Working Directory: %{ActiveProject:Path} -for file in "$TRANSLATIONS_DIR"/*.ts; do - lrelease "$file" -done +echo "Generating .qm files..." -echo "Arquivos .qm gerados." \ No newline at end of file +lrelease "$PROJECT_ROOT"/SavvyCAN.pro + +echo ".qm files generated." diff --git a/scripts/edit_translations.sh b/scripts/edit_translations.sh deleted file mode 100755 index 96dc0c1..0000000 --- a/scripts/edit_translations.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" -TRANSLATIONS_DIR="$PROJECT_ROOT/translations" - -linguist "$TRANSLATIONS_DIR"/SavvyCAN_*.ts \ No newline at end of file diff --git a/scripts/update_translations.sh b/scripts/update_translations.sh index 361105b..0fb05cb 100755 --- a/scripts/update_translations.sh +++ b/scripts/update_translations.sh @@ -1,11 +1,16 @@ #!/bin/bash -PROJECT_ROOT="$(dirname "$(dirname "$(realpath "$0")")")" -TRANSLATIONS_DIR="$PROJECT_ROOT/translations" +PROJECT_ROOT="$(pwd)" -echo "Atualizando arquivos de tradução..." +# To add this tool in Qt Creator: +# Category: Linguist +# Name: Update Translations (lupdate) +# Executable: lupdate +# Arguments: -project SavvyCAN.pro +# Working Directory: %{ActiveProject:Path} -lupdate "$PROJECT_ROOT" \ --ts "$TRANSLATIONS_DIR"/SavvyCAN_*.ts +echo "Updating translation files..." -echo "Traduções atualizadas." \ No newline at end of file +lupdate -project "$PROJECT_ROOT"/SavvyCAN.pro + +echo "Translation files updated." From b86e0369c8ca1a09d5d370e2402024ac804d23d1 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 22:57:11 -0300 Subject: [PATCH 10/12] adding a dynamic list for language available and the language list --- mainsettingsdialog.cpp | 50 ++++++++++++++++++++++++++++++++++++++++ mainsettingsdialog.h | 1 + ui/mainsettingsdialog.ui | 14 +++++++++++ 3 files changed, 65 insertions(+) diff --git a/mainsettingsdialog.cpp b/mainsettingsdialog.cpp index eae6272..8ca4715 100644 --- a/mainsettingsdialog.cpp +++ b/mainsettingsdialog.cpp @@ -3,6 +3,10 @@ #include "helpwindow.h" #include #include +#include +#include +#include +#include #include "simplecrypt.h" //using this simple encryption library to obfuscate stored password a bit. It's not super secure but better than @@ -10,6 +14,42 @@ //whatever key, you'd see it. Just behave yourselves SimpleCrypt crypto(Q_UINT64_C(0xdeadbeefface6285)); +static QStringList availableLanguageCodes() +{ + QStringList codes; + QDir transDir(QCoreApplication::applicationDirPath() + "/translations"); + QStringList list = transDir.entryList(QStringList() << "SavvyCAN_*.qm"); + //* just for test purposes + if (list.isEmpty()) { + // maybe only ts files exist during development + list = transDir.entryList(QStringList() << "SavvyCAN_*.ts"); + } + for (QString file : list) { + QRegExp re("SavvyCAN_(.*)\\.(qm|ts)"); + if (re.indexIn(file) != -1) { + codes << re.cap(1); + } + } + return codes; +} + +void MainSettingsDialog::populateLanguageCombo() +{ + ui->comboLanguage->clear(); + QStringList codes = availableLanguageCodes(); + if (codes.isEmpty()) { + codes << "en"; // fallback + } + for (const QString &code : codes) { + QLocale locale(code); + QString name = locale.nativeLanguageName(); + qInfo() << code; + if (name.isEmpty()) + name = code; + ui->comboLanguage->addItem(name, code); + } +} + MainSettingsDialog::MainSettingsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::MainSettingsDialog) @@ -17,6 +57,8 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) : QSettings settings; ui->setupUi(this); + populateLanguageCombo(); + //TODO: This is still hard coded to support only two buses. Sometimes there is none, sometimes 1, sometimes much more than 2. Fix this. ui->comboSendingBus->addItem(tr("None")); ui->comboSendingBus->addItem(tr("0")); @@ -92,6 +134,12 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) : ui->cbFilterLabeling->setChecked(settings.value("Main/FilterLabeling", true).toBool()); ui->cbIgnoreDBCColors->setChecked(settings.value("Main/IgnoreDBCColors", false).toBool()); + if (QString savedLang = settings.value("Main/Language").toString(); !savedLang.isEmpty()) { + int idx = ui->comboLanguage->findData(savedLang); + if (idx >= 0) + ui->comboLanguage->setCurrentIndex(idx); + } + int maxFramesDefault; if (QSysInfo::WordSize > 32) { @@ -108,6 +156,7 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) : ui->spinBytesPerLine->setValue(settings.value("Main/BytesPerLine", 8).toInt()); //just for simplicity they all call the same function and that function updates all settings at once + connect(ui->comboLanguage, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSettings())); connect(ui->cbDisplayHex, SIGNAL(toggled(bool)), this, SLOT(updateSettings())); connect(ui->cbFlowAutoRef, SIGNAL(toggled(bool)), this, SLOT(updateSettings())); connect(ui->cbFlowUseTimestamp, SIGNAL(toggled(bool)), this, SLOT(updateSettings())); @@ -177,6 +226,7 @@ void MainSettingsDialog::updateSettings() { QSettings settings; + settings.setValue("Main/Language", ui->comboLanguage->currentData().toString()); settings.setValue("Main/UseHex", ui->cbDisplayHex->isChecked()); settings.setValue("FlowView/AutoRef", ui->cbFlowAutoRef->isChecked()); settings.setValue("FlowView/UseTimestamp", ui->cbFlowUseTimestamp->isChecked()); diff --git a/mainsettingsdialog.h b/mainsettingsdialog.h index 0ffb0ec..392581d 100644 --- a/mainsettingsdialog.h +++ b/mainsettingsdialog.h @@ -25,6 +25,7 @@ public slots: private: Ui::MainSettingsDialog *ui; + void populateLanguageCombo(); void closeEvent(QCloseEvent *event); bool eventFilter(QObject *obj, QEvent *event); }; diff --git a/ui/mainsettingsdialog.ui b/ui/mainsettingsdialog.ui index e65e91c..e636682 100644 --- a/ui/mainsettingsdialog.ui +++ b/ui/mainsettingsdialog.ui @@ -53,6 +53,20 @@ + + + + + + Language + + + + + + + + From 35e0ae0e93379d3bc7860ff00ce88734b038a770 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 23:10:26 -0300 Subject: [PATCH 11/12] updating scripts to fix run error --- scripts/build_translations.sh | 2 +- scripts/update_translations.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/build_translations.sh b/scripts/build_translations.sh index a620c65..47e6ea5 100755 --- a/scripts/build_translations.sh +++ b/scripts/build_translations.sh @@ -11,6 +11,6 @@ PROJECT_ROOT="$(pwd)" echo "Generating .qm files..." -lrelease "$PROJECT_ROOT"/SavvyCAN.pro +lrelease -verbose "$PROJECT_ROOT"/SavvyCAN.pro echo ".qm files generated." diff --git a/scripts/update_translations.sh b/scripts/update_translations.sh index 0fb05cb..8f2260d 100755 --- a/scripts/update_translations.sh +++ b/scripts/update_translations.sh @@ -11,6 +11,6 @@ PROJECT_ROOT="$(pwd)" echo "Updating translation files..." -lupdate -project "$PROJECT_ROOT"/SavvyCAN.pro +lupdate -verbose "$PROJECT_ROOT"/SavvyCAN.pro echo "Translation files updated." From 0fd2e7d583b5ea645cbd1536cb6d98afe6e927e1 Mon Sep 17 00:00:00 2001 From: lexcibien Date: Fri, 6 Mar 2026 23:10:53 -0300 Subject: [PATCH 12/12] updating after finish menu to add translation --- translations/SavvyCAN_en.ts | 93 ++++++++++++++++++---------------- translations/SavvyCAN_pt_BR.ts | 93 ++++++++++++++++++---------------- 2 files changed, 98 insertions(+), 88 deletions(-) diff --git a/translations/SavvyCAN_en.ts b/translations/SavvyCAN_en.ts index 001a6d7..7fe0280 100644 --- a/translations/SavvyCAN_en.ts +++ b/translations/SavvyCAN_en.ts @@ -2149,218 +2149,223 @@ and the value ranges by hypens - + + Language + + + + General Settings: - + Save/Restore window positions and sizes - + Save/Restore CAN bus connections - + Display values as hexadecimal - + Require validation of GVRET connection - + Use filtered frames in sub-windows - + OpenGL Accelerated AntiAliased Graphing - + CAN Frame Pre-allocation Size - + Time Keeping - + Seconds/Milli/Micro are dongle based - + Seconds - + Microseconds - + Milliseconds - + System Clock - + Time Format String: - + Use absolute time in decoded CSV output - + Font - + Use fixed-width font in tables - + Size - + Flowview Settings: - + Use timestamp mode by default - + Set Auto Reference by default - - + + Hexadecimal Graph Y Axis - + Playback Window Settings: - + Loop by default - + Default playback speed (ms) - + Default Sending Bus - + DBC Settings - + Label DBC messages by default - + Ignore DBC message colors - + File Info and Comparator Settings: - + Auto expand all nodes - + MQTT Remote CAN Settings: - + Host: - + Port: - + User Name: - + Password - + Some settings will not take effect until the application is restarted - + None - + 0 - + 1 - + All - + From File diff --git a/translations/SavvyCAN_pt_BR.ts b/translations/SavvyCAN_pt_BR.ts index 521b253..e062b9a 100644 --- a/translations/SavvyCAN_pt_BR.ts +++ b/translations/SavvyCAN_pt_BR.ts @@ -2152,218 +2152,223 @@ e os intervalos de valores por hífens Máximo de bytes de dados por linha - + + Language + Idioma + + + General Settings: Configurações Gerais: - + Save/Restore window positions and sizes Salvar/restaurar posições e tamanhos de janelas - + Save/Restore CAN bus connections Salvar/restaurar conexões de barramento CAN - + Display values as hexadecimal Exibir valores como hexadecimal - + Require validation of GVRET connection Exigir validação da conexão GVRET - + Use filtered frames in sub-windows Use frames filtrados em subjanelas - + OpenGL Accelerated AntiAliased Graphing Gráficos AntiAliased acelerados por OpenGL - + CAN Frame Pre-allocation Size Tamanho de pré-alocação do frame CAN - + Time Keeping Cronometragem - + Seconds/Milli/Micro are dongle based Segundos/Milli/Micro são baseados em dongle - + Seconds Segundos - + Microseconds Microssegundos - + Milliseconds Milissegundos - + System Clock Relógio do sistema - + Time Format String: Sequência de formato de hora: - + Use absolute time in decoded CSV output Use tempo absoluto na saída CSV decodificada - + Font Fonte - + Use fixed-width font in tables Use fonte de largura fixa em tabelas - + Size Tamanho - + Flowview Settings: Configurações de visualização de fluxo: - + Use timestamp mode by default Use o modo timestamp por padrão - + Set Auto Reference by default Definir referência automática por padrão - - + + Hexadecimal Graph Y Axis Eixo Y do gráfico hexadecimal - + Playback Window Settings: Configurações da janela de reprodução: - + Loop by default Loop por padrão - + Default playback speed (ms) Velocidade de reprodução padrão (ms) - + Default Sending Bus Barramento de envio padrão - + DBC Settings Configurações DBC - + Label DBC messages by default Mostrar mensagens DBC por padrão - + Ignore DBC message colors Ignorar cores de mensagens DBC - + File Info and Comparator Settings: Informações do arquivo e configurações do comparador: - + Auto expand all nodes Expandir automaticamente todos os nós - + MQTT Remote CAN Settings: Configurações CAN remotas MQTT: - + Host: Host: - + Port: Porta: - + User Name: Nome de usuário: - + Password Senha - + Some settings will not take effect until the application is restarted Algumas configurações não terão efeito até que o aplicativo seja reiniciado - + None Nenhum - + 0 0 - + 1 1 - + All Todos - + From File Do arquivo