mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 04:11:16 -05:00
Merge branch 'release-2.3.0' into develop
This commit is contained in:
commit
06f9800b2f
43
AppVersion/AppVersion.cpp
Normal file
43
AppVersion/AppVersion.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
//
|
||||
// wsjtx_app_version - a console application that outputs WSJT-X
|
||||
// application version
|
||||
//
|
||||
// This application is only provided as a simple console application
|
||||
//
|
||||
//
|
||||
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <exception>
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QCommandLineParser>
|
||||
#include <QCommandLineOption>
|
||||
|
||||
#include "revision_utils.hpp"
|
||||
|
||||
int main (int argc, char * argv[])
|
||||
{
|
||||
QCoreApplication app {argc, argv};
|
||||
try
|
||||
{
|
||||
app.setApplicationName ("WSJT-X");
|
||||
app.setApplicationVersion (version());
|
||||
|
||||
QCommandLineParser parser;
|
||||
// parser.setApplicationDescription ("\n" PROJECT_DESCRIPTION);
|
||||
parser.addHelpOption ();
|
||||
parser.addVersionOption ();
|
||||
parser.process (app);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
catch (std::exception const& e)
|
||||
{
|
||||
std::cerr << "Error: " << e.what () << '\n';
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "Unexpected error\n";
|
||||
}
|
||||
return -1;
|
||||
}
|
@ -7,6 +7,7 @@
|
||||
#include <qmath.h>
|
||||
#include <QDebug>
|
||||
|
||||
#include "Logger.hpp"
|
||||
#include "Audio/AudioDevice.hpp"
|
||||
|
||||
#include "moc_soundout.cpp"
|
||||
@ -104,15 +105,13 @@ void SoundOutput::restart (QIODevice * source)
|
||||
// Windows implementation seems to forget the buffer size after a
|
||||
// stop.
|
||||
//qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize ();
|
||||
if (m_framesBuffered)
|
||||
if (m_framesBuffered > 0)
|
||||
{
|
||||
#if defined (Q_OS_WIN)
|
||||
m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered));
|
||||
#endif
|
||||
}
|
||||
m_stream->setCategory ("production");
|
||||
m_stream->start (source);
|
||||
// qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize ();
|
||||
LOG_INFO ("Selected buffer size (bytes): " << m_stream->bufferSize () << " period size: " << m_stream->periodSize ());
|
||||
}
|
||||
|
||||
void SoundOutput::suspend ()
|
||||
|
@ -1457,6 +1457,15 @@ generate_version_info (udp_daemon_VERSION_RESOURCES
|
||||
add_executable (udp_daemon UDPExamples/UDPDaemon.cpp ${udp_daemon_VERSION_RESOURCES})
|
||||
target_link_libraries (udp_daemon wsjtx_udp-static)
|
||||
|
||||
generate_version_info (wsjtx_app_version_VERSION_RESOURCES
|
||||
NAME wsjtx_app_version
|
||||
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||
ICON ${WSJTX_ICON_FILE}
|
||||
FILE_DESCRIPTION "Display WSJT-X Application Version on console"
|
||||
)
|
||||
add_executable (wsjtx_app_version AppVersion/AppVersion.cpp ${wsjtx_app_version_VERSION_RESOURCES})
|
||||
target_link_libraries (wsjtx_app_version wsjt_qt)
|
||||
|
||||
generate_version_info (message_aggregator_VERSION_RESOURCES
|
||||
NAME message_aggregator
|
||||
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||
@ -1516,7 +1525,7 @@ install (TARGETS wsjtx
|
||||
# DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/wsjtx
|
||||
# )
|
||||
|
||||
install (TARGETS udp_daemon message_aggregator
|
||||
install (TARGETS udp_daemon message_aggregator wsjtx_app_version
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
|
||||
BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
|
||||
)
|
||||
|
18
Logger.cpp
18
Logger.cpp
@ -21,10 +21,10 @@
|
||||
#include <boost/log/support/date_time.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/make_shared.hpp>
|
||||
|
||||
#include <fstream>
|
||||
#include <boost/filesystem/fstream.hpp>
|
||||
#include <string>
|
||||
|
||||
namespace fs = boost::filesystem;
|
||||
namespace logging = boost::log;
|
||||
namespace srcs = logging::sources;
|
||||
namespace sinks = logging::sinks;
|
||||
@ -128,7 +128,7 @@ namespace Logger
|
||||
CommonInitialization ci;
|
||||
}
|
||||
|
||||
void init_from_config (std::istream& stream)
|
||||
void init_from_config (std::wistream& stream)
|
||||
{
|
||||
CommonInitialization ci;
|
||||
try
|
||||
@ -152,24 +152,24 @@ namespace Logger
|
||||
logging::core::get ()->set_logging_enabled (false);
|
||||
}
|
||||
|
||||
void add_datafile_log (std::string const& log_file_name)
|
||||
void add_datafile_log (std::wstring const& log_file_name)
|
||||
{
|
||||
// Create a text file sink
|
||||
boost::shared_ptr<sinks::text_ostream_backend> backend
|
||||
boost::shared_ptr<sinks::wtext_ostream_backend> backend
|
||||
(
|
||||
new sinks::text_ostream_backend()
|
||||
new sinks::wtext_ostream_backend()
|
||||
);
|
||||
backend->add_stream (boost::shared_ptr<std::ostream> (new std::ofstream (log_file_name)));
|
||||
backend->add_stream (boost::shared_ptr<std::wostream> (new fs::wofstream (log_file_name)));
|
||||
|
||||
// Flush after each log record
|
||||
backend->auto_flush (true);
|
||||
|
||||
// Create a sink for the backend
|
||||
typedef sinks::synchronous_sink<sinks::text_ostream_backend> sink_t;
|
||||
typedef sinks::synchronous_sink<sinks::wtext_ostream_backend> sink_t;
|
||||
boost::shared_ptr<sink_t> sink (new sink_t (backend));
|
||||
|
||||
// The log output formatter
|
||||
sink->set_formatter (expr::format ("[%1%][%2%] %3%")
|
||||
sink->set_formatter (expr::format (L"[%1%][%2%] %3%")
|
||||
% expr::attr<ptime::ptime> ("TimeStamp")
|
||||
% logging::trivial::severity
|
||||
% expr::message
|
||||
|
@ -21,14 +21,14 @@ namespace Logger
|
||||
void init ();
|
||||
|
||||
// define logger(s) and sinks from a configuration stream
|
||||
void init_from_config (std::istream& config_stream);
|
||||
void init_from_config (std::wistream& config_stream);
|
||||
|
||||
// disable logging - useful for unit testing etc.
|
||||
void disable ();
|
||||
|
||||
// add a new file sink for LOG_DATA_* for Severity >= INFO
|
||||
// this file sink will be used alongside any configured above
|
||||
void add_data_file_log (std::string const& log_file_name);
|
||||
void add_data_file_log (std::wstring const& log_file_name);
|
||||
}
|
||||
|
||||
#define LOG_LOG_LOCATION(LOGGER, LEVEL, ARG) \
|
||||
|
@ -93,15 +93,15 @@ namespace
|
||||
<< boost::log::add_value ("Line", context.line)
|
||||
<< boost::log::add_value ("File", file)
|
||||
<< boost::log::add_value ("Function", function)
|
||||
<< msg.toStdString ();
|
||||
<< msg.toStdWString ();
|
||||
}
|
||||
else
|
||||
{
|
||||
BOOST_LOG_CHANNEL_SEV (log, std::string {context.category}, severity)
|
||||
BOOST_LOG_SEV (log, severity)
|
||||
<< boost::log::add_value ("Line", context.line)
|
||||
<< boost::log::add_value ("File", file)
|
||||
<< boost::log::add_value ("Function", function)
|
||||
<< msg.toStdString ();
|
||||
<< context.category << ": " << msg.toStdWString ();
|
||||
}
|
||||
if (QtFatalMsg == type)
|
||||
{
|
||||
@ -155,8 +155,8 @@ WSJTXLogging::WSJTXLogging ()
|
||||
pos = match.capturedEnd (0);
|
||||
}
|
||||
new_config += config.mid (pos);
|
||||
std::stringbuf buffer {new_config.toStdString (), std::ios_base::in};
|
||||
std::istream stream {&buffer};
|
||||
std::wstringbuf buffer {new_config.toStdWString (), std::ios_base::in};
|
||||
std::wistream stream {&buffer};
|
||||
Logger::init_from_config (stream);
|
||||
LOG_INFO ("Read logging configuration file: " << log_config.fileName ());
|
||||
}
|
||||
@ -180,7 +180,7 @@ WSJTXLogging::WSJTXLogging ()
|
||||
(
|
||||
keywords::auto_flush = false
|
||||
#if BOOST_VERSION / 100 >= 1070
|
||||
, keywords::file_name = app_data.absoluteFilePath ("wsjtx_syslog.log").toStdString ()
|
||||
, keywords::file_name = app_data.absoluteFilePath ("wsjtx_syslog.log").toStdWString ()
|
||||
, keywords::target_file_name =
|
||||
#else
|
||||
, keywords::file_name =
|
||||
@ -200,7 +200,7 @@ WSJTXLogging::WSJTXLogging ()
|
||||
keywords::max_size = 40 * 1024 * 1024
|
||||
, keywords::min_free_space = 1024 * 1024 * 1024
|
||||
, keywords::max_files = 12
|
||||
, keywords::target = app_data.absoluteFilePath ("logs").toStdString ()
|
||||
, keywords::target = app_data.absoluteFilePath ("logs").toStdWString ()
|
||||
)
|
||||
);
|
||||
sys_sink->locked_backend ()->scan_for_files ();
|
||||
|
@ -71,7 +71,7 @@ unsigned long readc2file(char *ptr_to_infile, float *idat, float *qdat,
|
||||
float *buffer;
|
||||
double dfreq;
|
||||
int i,ntrmin;
|
||||
char *c2file[15];
|
||||
char c2file[15];
|
||||
size_t nr;
|
||||
FILE* fp;
|
||||
|
||||
@ -875,10 +875,12 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
if( stackdecoder ) {
|
||||
stack=calloc(stacksize,sizeof(struct snode));
|
||||
if( access(data_dir, R_OK | W_OK)) {
|
||||
fprintf(stderr, "Error: inaccessible data directory: '%s'\n", data_dir);
|
||||
usage();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
if( optind+1 > argc) {
|
||||
usage();
|
||||
return 1;
|
||||
@ -886,6 +888,10 @@ int main(int argc, char *argv[])
|
||||
ptr_to_infile=argv[optind];
|
||||
}
|
||||
|
||||
if( stackdecoder ) {
|
||||
stack=calloc(stacksize,sizeof(struct snode));
|
||||
}
|
||||
|
||||
// setup metric table
|
||||
for(i=0; i<256; i++) {
|
||||
mettab[0][i]=round( 10*(metric_tables[2][i]-bias) );
|
||||
|
@ -634,7 +634,8 @@ Format:
|
||||
<location filename="../Configuration.cpp" line="2835"/>
|
||||
<source>Not found</source>
|
||||
<comment>audio device missing</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translatorcomment>falta un dispositiu d'àudio</translatorcomment>
|
||||
<translation>No trobat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2712,12 +2713,12 @@ Si no està marcat, pots veure els resultats de la calibració.</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1297"/>
|
||||
<source>F High </source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F Alt </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1388"/>
|
||||
<source>F Low </source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F Baixa </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1410"/>
|
||||
@ -2964,12 +2965,12 @@ La llista es pot mantenir a la configuració (F2).</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3390"/>
|
||||
<source>SWL Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mode SWL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3393"/>
|
||||
<source>Hide lower panel controls to maximize deocde windows</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Amaga els controls del panell inferior per a maximitzar les finestres de descodificació</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Calling CQ </source>
|
||||
@ -3868,7 +3869,7 @@ La llista es pot mantenir a la configuració (F2).</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="492"/>
|
||||
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mostres caigudes excessives - %1 (%2 sec) fotogrames d'àudio caiguts en el període inicial %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="526"/>
|
||||
@ -3893,7 +3894,7 @@ La llista es pot mantenir a la configuració (F2).</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="790"/>
|
||||
<source>Enumerating audio devices</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Enumeració de dispositius d’àudio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="805"/>
|
||||
|
@ -20,8 +20,8 @@
|
||||
<location filename="../widgets/AbstractLogWindow.cpp" line="65"/>
|
||||
<source>Are you sure you want to delete the %n selected QSO(s) from the log?</source>
|
||||
<translation>
|
||||
<numerusform>Er du sikker på at du vil slette de %n valgte QSO(er) fra loggen?</numerusform>
|
||||
<numerusform></numerusform>
|
||||
<numerusform>Sikker på du vil slette de %n valgte QSO(er) fra loggen?</numerusform>
|
||||
<numerusform>Er du sikker på du vil slette de %n valgte QSO(s) fra loggen?</numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
</context>
|
||||
@ -626,7 +626,7 @@ Format:
|
||||
<location filename="../Configuration.cpp" line="2835"/>
|
||||
<source>Not found</source>
|
||||
<comment>audio device missing</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Audio device mangler</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2711,12 +2711,12 @@ Når den ikke er markeret, kan du se kalibreringsresultaterne.</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1297"/>
|
||||
<source>F High </source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F Høj </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1388"/>
|
||||
<source>F Low </source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F Lav </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1410"/>
|
||||
@ -2964,12 +2964,12 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3390"/>
|
||||
<source>SWL Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>SWL Mode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3393"/>
|
||||
<source>Hide lower panel controls to maximize deocde windows</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Skjul nederste del af Control Panel for at maksimere dekoder vinduet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Calling CQ </source>
|
||||
@ -3864,7 +3864,8 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="492"/>
|
||||
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translatorcomment>For store tabte prøver -% 1 (% 2 sek) lydrammer faldt i perioden startende med% 3</translatorcomment>
|
||||
<translation>For stort tab i - %1 (%2 sec) audio frames stoppet i periode startende %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="526"/>
|
||||
@ -3889,7 +3890,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="790"/>
|
||||
<source>Enumerating audio devices</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Opsumering af audio enheder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="805"/>
|
||||
@ -4147,7 +4148,57 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2).</translation>
|
||||
<tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr>
|
||||
</table></source>
|
||||
<extracomment>Keyboard shortcuts help window contents</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translatorcomment>Hjælpetekst til Tastetur genveje</translatorcomment>
|
||||
<translation><tabelcelleafstand = 1>
|
||||
<tr><td> <b> Esc </b></td> <td> Stop Tx, afbryd QSO, ryd kø ved næste kald </td> </tr>
|
||||
<tr><td> <b> F1 </b></td> <td> Online brugervejledning (Alt: transmitter Tx6) </td> </tr>
|
||||
<tr><td> <b> Shift + F1 </b></td> <td> Meddelelse om ophavsret </td> </tr>
|
||||
<tr><td> <b> Ctrl + F1 </b></td> <td> Om WSJT-X </td> </tr>
|
||||
<tr><td> <b> F2 </b></td> <td> Åbn indstillingsvinduet (Alt: send Tx2) </td> </tr>
|
||||
<tr><td> <b> F3 </b></td> <td> Vis tastaturgenveje (Alt: transmitter Tx3) </td> </tr>
|
||||
<tr><td> <b> F4 </b></td> <td> Ryd DX Call, DX Grid, Tx meddelelser 1-4 (Alt: send Tx4) </td> </tr>
|
||||
<tr><td> <b> Alt + F4 </b></td> <td> Afslutningsprogram </td> </tr>
|
||||
<tr><td> <b> F5 </b></td> <td> Vis specielle musekommandoer (Alt: transmitter Tx5) </td> </tr>
|
||||
<tr><td> <b> F6 </b></td> <td> Åbn næste fil i biblioteket (Alt: skift "Call 1st") </td> </tr>
|
||||
<tr><td> <b> Shift + F6 </b></td> <td> Dekod alle resterende filer i biblioteket </td> </tr>
|
||||
<tr><td> <b> F7 </b></td> <td> Vis vindue for gennemsnitsmeddelelse </td> </tr>
|
||||
<tr><td> <b> F11 </b></td> <td> Flyt Rx-frekvensen ned 1 Hz </td> </tr>
|
||||
<tr><td> <b> Ctrl + F11 </b></td> <td> Flyt identiske Rx- og Tx-frekvenser ned 1 Hz </td> </tr>
|
||||
<tr><td> <b> Shift + F11 </b></td> <td> Flyt Tx-frekvensen 60 Hz ned (FT8) eller 90 Hz (FT4) </td> </tr>
|
||||
<tr><td> <b> Ctrl + Shift + F11 </b></td> <td> Flyt kaldefrekvensen 2000 Hz ned </td> </tr>
|
||||
<tr><td> <b> F12 </b></td> <td> Flyt Rx-frekvensen 1 Hz op </td> </tr>
|
||||
<tr><td> <b> Ctrl + F12 </b></td> <td> Flyt identiske Rx- og Tx-frekvenser 1 Hz op </td> </tr>
|
||||
<tr><td> <b> Ctrl + F11 </b></td> <td> Flyt identiske Rx- og Tx-frekvenser ned 1 Hz </td> </tr>
|
||||
<tr><td> <b> Shift + F11 </b></td> <td> Flyt Tx-frekvensen ned 60 Hz (FT8) eller 90 Hz (FT4) </td> </tr>
|
||||
<tr><td> <b> Ctrl + Shift + F11 </b></td> <td> Flyt kaldefrekvensen ned 2000 Hz </td> </tr>
|
||||
<tr><td> <b> F12 </b></td> <td> Flyt Rx-frekvensen op 1 Hz </td> </tr>
|
||||
<tr><td> <b> Ctrl + F12 </b></td> <td> Flyt identiske Rx- og Tx-frekvenser 1 Hz op </td> </tr>
|
||||
<tr><td> <b> Shift + F12 </b></td> <td> Flyt Tx-frekvensen 60 Hz op (FT8) eller 90 Hz (FT4) </td> </tr>
|
||||
<tr><td> <b> Ctrl + Shift + F12 </b></td> <td> Flyt kaldefrekvensen 2000 Hz op</td> </tr>
|
||||
<tr><td> <b> Alt + 1-6 </b></td> <td> Indstil NU transmission til dette nummer på fane 1 </td> </tr>
|
||||
<tr><td> <b> Ctl + 1-6 </b></td> <td> Indstil næste transmission til dette nummer på fane 1 </td> </tr>
|
||||
<tr><td> <b> Alt + B </b></td> <td> Skift status "Bedste S + P" </td> </tr>
|
||||
<tr><td> <b> Alt + C </b></td> <td> Skift afkrydsningsfelt "Kald 1st" </td> </tr>
|
||||
<tr><td> <b> Alt + D </b></td> <td> Dekod igen ved QSO-frekvens </td> </tr>
|
||||
<tr><td> <b> Shift + D </b></td> <td> Fuld Dekodning (begge vinduer) </td> </tr>
|
||||
<tr><td> <b> Ctrl + E </b></td> <td> Aktiver TX lige / 1. </td> </tr>
|
||||
<tr><td> <b> Shift + E </b></td> <td> Deaktiver TX lige / 1. </td> </tr>
|
||||
<tr><td> <b> Alt + E </b></td><td>Sætning</td> </tr>
|
||||
<tr><td> <b> Ctrl + F </b></td> <td> Rediger fri tekstmeddelelsesfelt </td> </tr>
|
||||
<tr><td> <b> Alt + G </b></td> <td> Generer standardmeddelelser </td> </tr>
|
||||
<tr><td> <b> Alt + H </b></td> <td> Stop Tx </td> </tr>
|
||||
<tr><td> <b> Ctrl + L </b></td> <td> Opslag af kaldesignal i database, generer standardbeskeder </td> </tr>
|
||||
<tr><td> <b> Alt + M </b></td><td> Skærm</td> </tr>
|
||||
<tr><td> <b> Alt + N </b></td> <td> Aktivér Tx </td> </tr>
|
||||
<tr><td> <b> Ctrl + O </b></td> <td> Åbn en .wav-fil </td> </tr>
|
||||
<tr><td> <b> Alt + O </b></td> <td> Skift operatør </td> </tr>
|
||||
<tr><td> <b> Alt + Q </b></td> <td> Log QSO </td> </tr>
|
||||
<tr><td> <b> Ctrl + R </b></td> <td> Indstil Tx4-besked til RRR (ikke i FT4) </td> </tr>
|
||||
<tr><td> <b> Alt + R </b></td> <td> Indstil Tx4-besked til RR73 </td> </tr>
|
||||
<tr><td> <b> Alt + S </b></td> <td> Stop overvågning </td> </tr>
|
||||
<tr><td> <b> Alt + T </b></td> <td> Skift Tune status </td> </tr>
|
||||
<tr><td> <b> Alt + Z </b></td> <td> Ryd fyldt buffer dekoderstatus </td> </tr>
|
||||
</tabel></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><table cellspacing=1>
|
||||
|
@ -2904,13 +2904,13 @@ Amarillo cuando esta muy bajo.</translation>
|
||||
<location filename="../widgets/mainwindow.ui" line="1586"/>
|
||||
<source>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</source>
|
||||
<translatorcomment>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</translatorcomment>
|
||||
<translation>Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</translation>
|
||||
<translation type="unfinished">Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1589"/>
|
||||
<source>Tx even/1st</source>
|
||||
<translatorcomment>Alternar periodo TX Par/Impar</translatorcomment>
|
||||
<translation>TX segundo par</translation>
|
||||
<translation type="unfinished">Tx primer par/1ro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1481"/>
|
||||
|
@ -625,7 +625,7 @@ Format:
|
||||
<location filename="../Configuration.cpp" line="2835"/>
|
||||
<source>Not found</source>
|
||||
<comment>audio device missing</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>見つかりません</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2703,12 +2703,12 @@ When not checked you can view the calibration results.</source>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1297"/>
|
||||
<source>F High </source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F 高 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1388"/>
|
||||
<source>F Low </source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>F 低 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1410"/>
|
||||
@ -2962,12 +2962,12 @@ ENTERを押してテキストを登録リストに追加.
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3390"/>
|
||||
<source>SWL Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>SWLモード</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3393"/>
|
||||
<source>Hide lower panel controls to maximize deocde windows</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>下部制御パネルを非表示にしてデコードウィンドウを最大化</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Calling CQ </source>
|
||||
@ -3825,7 +3825,7 @@ ENTERを押してテキストを登録リストに追加.
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="492"/>
|
||||
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>サンプル大量欠落 - %3から始まる%1個(%2秒)のオーディオフレームが欠落</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="526"/>
|
||||
@ -3850,7 +3850,7 @@ ENTERを押してテキストを登録リストに追加.
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="790"/>
|
||||
<source>Enumerating audio devices</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>オーディオデバイスを列挙</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="805"/>
|
||||
|
@ -388,7 +388,7 @@
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="1009"/>
|
||||
<source>path: "%1%</source>
|
||||
<translation>目錄: "%1%</translation>
|
||||
<translation>目录: "%1%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="1020"/>
|
||||
@ -504,7 +504,12 @@ Format:
|
||||
<translation>您必须输入有效的 ARRL RTTY Roundup 交换数据</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2169"/>
|
||||
<location filename="../Configuration.cpp" line="1870"/>
|
||||
<source>Pending DNS lookup, please try again later</source>
|
||||
<translation>等待域名系统查找,请稍后再试</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2213"/>
|
||||
<source>Reset Decode Highlighting</source>
|
||||
<translation>重置解码突出显示</translation>
|
||||
</message>
|
||||
@ -519,7 +524,17 @@ Format:
|
||||
<translation>WSJT-X 解码文本字体选择</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2357"/>
|
||||
<location filename="../Configuration.cpp" line="2425"/>
|
||||
<source>UDP server DNS lookup failed</source>
|
||||
<translation>UDP服务器域名系统查找失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2449"/>
|
||||
<source>MAC-ambiguous multicast groups addresses not supported</source>
|
||||
<translation>不支持媒体访问控制不明确的多播组地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2467"/>
|
||||
<source>Load Working Frequencies</source>
|
||||
<translation>载入工作频率</translation>
|
||||
</message>
|
||||
@ -2670,12 +2685,12 @@ Not available to nonstandard callsign holders.</source>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1269"/>
|
||||
<source><html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html></source>
|
||||
<translation><html><head/><body><p>子模式確定音調間距; A 最窄.</p></body></html></translation>
|
||||
<translation><html><head/><body><p>子模式确定音调间距离; A 最窄.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1272"/>
|
||||
<source>Submode determines tone spacing; A is narrowest.</source>
|
||||
<translation>子模式確定音調間距; A 最窄.</translation>
|
||||
<translation>子模式确定音调间距离; A 最窄.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1278"/>
|
||||
@ -3664,12 +3679,12 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation>降低系统负载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="487"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="492"/>
|
||||
<source>Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3</source>
|
||||
<translation>样品丢失过多 - %1 (%2 sec) 音频帧在周期开始时丢失 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="521"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="526"/>
|
||||
<source>Error Scanning ADIF Log</source>
|
||||
<translation>扫描 ADIF 日志错误</translation>
|
||||
</message>
|
||||
@ -3870,7 +3885,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation>"fmt.all" 文件将重命名为 "fmt.bak"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2551"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2571"/>
|
||||
<source>If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work:
|
||||
|
||||
"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group."</source>
|
||||
@ -3879,7 +3894,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员."</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2819"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2846"/>
|
||||
<source>No data read from disk. Wrong file format?</source>
|
||||
<translation>没有从磁盘读取数据. 文件格式出错误?</translation>
|
||||
</message>
|
||||
@ -3899,42 +3914,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation>键盘快捷键</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2949"/>
|
||||
<source>Special Mouse Commands</source>
|
||||
<translation>特殊鼠标组合</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3295"/>
|
||||
<source>No more files to open.</source>
|
||||
<translation>没有要打开的文件.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3659"/>
|
||||
<source>Spotting to PSK Reporter unavailable</source>
|
||||
<translation>无法发送至PSK Reporter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3817"/>
|
||||
<source>Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m.</source>
|
||||
<translation>请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3821"/>
|
||||
<source>WSPR Guard Band</source>
|
||||
<translation>WSPR保护波段</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3834"/>
|
||||
<source>Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands.</source>
|
||||
<translation>请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3838"/>
|
||||
<source>Fox Mode warning</source>
|
||||
<translation>狐狸模式警告</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2866"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2893"/>
|
||||
<source><table cellspacing=1>
|
||||
<tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr>
|
||||
<tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr>
|
||||
@ -4028,7 +4008,12 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
</table></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2924"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2949"/>
|
||||
<source>Special Mouse Commands</source>
|
||||
<translation>特殊鼠标组合</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2951"/>
|
||||
<source><table cellpadding=5>
|
||||
<tr>
|
||||
<th align="right">Click on</th>
|
||||
@ -4092,6 +4077,36 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
</tr>
|
||||
</table></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3295"/>
|
||||
<source>No more files to open.</source>
|
||||
<translation>没有要打开的文件.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3659"/>
|
||||
<source>Spotting to PSK Reporter unavailable</source>
|
||||
<translation>发送到 Pskreporter 不可用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3817"/>
|
||||
<source>Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m.</source>
|
||||
<translation>请选择另一个发射频率. WSJT-X 不会故意在 30m 的 WSPR 子频段中传输另一种模式.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3821"/>
|
||||
<source>WSPR Guard Band</source>
|
||||
<translation>WSPR 守护波段</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3834"/>
|
||||
<source>Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands.</source>
|
||||
<translation>请选择另一个频率. WSJT-X在标准的FT8子带中不会以狐狸模式工作.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="3838"/>
|
||||
<source>Fox Mode warning</source>
|
||||
<translation>狐狸模式警告</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4443"/>
|
||||
<source>Last Tx: %1</source>
|
||||
@ -5409,6 +5424,11 @@ quiet period when decoding is done.</source>
|
||||
<source>Data bits</source>
|
||||
<translation>数据位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="669"/>
|
||||
<source>Data Bits</source>
|
||||
<translation>数据位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="675"/>
|
||||
<source>D&efault</source>
|
||||
@ -5434,6 +5454,11 @@ quiet period when decoding is done.</source>
|
||||
<source>Stop bits</source>
|
||||
<translation>停止位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="723"/>
|
||||
<source>Stop Bits</source>
|
||||
<translation>停止位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="729"/>
|
||||
<location filename="../Configuration.ui" line="780"/>
|
||||
@ -5615,7 +5640,7 @@ or bandwidth is selected).</source>
|
||||
<location filename="../Configuration.ui" line="1088"/>
|
||||
<location filename="../Configuration.ui" line="1322"/>
|
||||
<source>None</source>
|
||||
<translation>无</translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1098"/>
|
||||
@ -5748,7 +5773,32 @@ transmitting periods.</source>
|
||||
向外发射输出.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2400"/>
|
||||
<location filename="../Configuration.ui" line="1888"/>
|
||||
<source><html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be sent.</p></body></html></source>
|
||||
<translation><html><head/><body><p>输入WSJT-X应该向其发送更新的UDP服务器的服务端口号. 如果该值为零则不会发送任何更新.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1898"/>
|
||||
<source>Outgoing interfaces:</source>
|
||||
<translation>传出接口:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1908"/>
|
||||
<source><html><head/><body><p>When sending updates to a multicast group address it is necessary to specify which network interface(s) to send them to. If the loop-back interface is multicast capable then at least that one will be selected.</p><p>For most users the loop-back interface is all that is needed, that will allow multiple other applications on the same machine to interoperate with WSJT-X. If applications running on other hosts are to receive status updates then a suitable network interface should be used.</p><p>On some Linux systems it may be necessary to enable multicast on the loop-back network interface.</p></body></html></source>
|
||||
<translation><html><head/><body><p>向多播组地址发送更新时需要指定将更新发送到哪个网络接口. 如果环回接口支持多播那么将至少选择该接口.</p><p>对于大多数用户来说环回接口是他们所需要的, 这将允许同一台机器上的多个其他应用程序与WSJT-X进行互操作. 如果运行在其他主机上的应用程序要接收状态更新则应使用合适的网络接口.</p><p>在某些Linux系统上可能需要在环回网络接口上启用多播.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1915"/>
|
||||
<source><html><head/><body><p>Sets the number or router hops that multicast datagrams are allowed to make. Almost everyone should set this to 1 to keep outgoing multicast traffic withn the local subnet.</p></body></html></source>
|
||||
<translation><html><head/><body><p>设置允许多点传送数据报的资料元或路由器资料元. 几乎每个人都应该将该值设置为 1 以保持出站多点传送流量在本地子网中.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1928"/>
|
||||
<source>Multicast TTL:</source>
|
||||
<translation>多点传送 TTL:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2434"/>
|
||||
<source>Days since last upload</source>
|
||||
<translation>自上次上传以来的天数</translation>
|
||||
</message>
|
||||
@ -5808,7 +5858,7 @@ both here.</source>
|
||||
<translation>启用甚高频和子模式功能</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1370"/>
|
||||
<location filename="../Configuration.ui" line="1427"/>
|
||||
<source>Ou&tput:</source>
|
||||
<translation>输出(&t):</translation>
|
||||
</message>
|
||||
@ -6525,7 +6575,7 @@ Right click for insert and delete options.</source>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2914"/>
|
||||
<source><html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html></source>
|
||||
<translation><html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html></translation>
|
||||
<translation><html><head/><body><p>具有正常音调间距四倍的发射音频. 适用于在产生射频之前使用除以 4 的特殊 LF/MF 发射器.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2917"/>
|
||||
|
@ -504,7 +504,12 @@ Format:
|
||||
<translation>您必須輸入有效的 ARRL RTTY Roundup 交換數據</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2169"/>
|
||||
<location filename="../Configuration.cpp" line="1870"/>
|
||||
<source>Pending DNS lookup, please try again later</source>
|
||||
<translation>等待 DNS 查找, 請稍後再試</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2213"/>
|
||||
<source>Reset Decode Highlighting</source>
|
||||
<translation>重置解碼突出顯示</translation>
|
||||
</message>
|
||||
@ -519,7 +524,17 @@ Format:
|
||||
<translation>WSJT-X 解碼文本字體選擇</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2357"/>
|
||||
<location filename="../Configuration.cpp" line="2425"/>
|
||||
<source>UDP server DNS lookup failed</source>
|
||||
<translation>UDP 伺服器 DNS 尋找失敗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2449"/>
|
||||
<source>MAC-ambiguous multicast groups addresses not supported</source>
|
||||
<translation>MAC 模棱兩可的多播組位址不受支援</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.cpp" line="2467"/>
|
||||
<source>Load Working Frequencies</source>
|
||||
<translation>載入工作頻率</translation>
|
||||
</message>
|
||||
@ -1956,7 +1971,7 @@ Error: %2 - %3</source>
|
||||
<message>
|
||||
<location filename="../widgets/logqso.cpp" line="43"/>
|
||||
<source>Satellite</source>
|
||||
<translation>卫星</translation>
|
||||
<translation>衛星</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/logqso.cpp" line="44"/>
|
||||
@ -2434,7 +2449,7 @@ Yellow when too low</source>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="636"/>
|
||||
<source>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</source>
|
||||
<translation>如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式.</translation>
|
||||
<translation>如果橙色或紅色出現表示無線電設備控制故障, 請按下以重置並讀取頻率. S 表示異頻模式.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="665"/>
|
||||
@ -3879,7 +3894,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員."</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2819"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2846"/>
|
||||
<source>No data read from disk. Wrong file format?</source>
|
||||
<translation>沒有從磁盤讀取數據. 檔案格式錯誤?</translation>
|
||||
</message>
|
||||
@ -3899,7 +3914,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation>鍵盤快捷鍵</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2866"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2893"/>
|
||||
<source><table cellspacing=1>
|
||||
<tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr>
|
||||
<tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr>
|
||||
@ -3993,7 +4008,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
</table></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2922"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2949"/>
|
||||
<source>Special Mouse Commands</source>
|
||||
<translation>特殊滑鼠組合</translation>
|
||||
</message>
|
||||
@ -5410,6 +5425,11 @@ quiet period when decoding is done.</source>
|
||||
<source>Data bits</source>
|
||||
<translation>數據位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="669"/>
|
||||
<source>Data Bits</source>
|
||||
<translation>數據位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="675"/>
|
||||
<source>D&efault</source>
|
||||
@ -5435,6 +5455,11 @@ quiet period when decoding is done.</source>
|
||||
<source>Stop bits</source>
|
||||
<translation>停止位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="723"/>
|
||||
<source>Stop Bits</source>
|
||||
<translation>停止位元</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="729"/>
|
||||
<location filename="../Configuration.ui" line="780"/>
|
||||
@ -5465,7 +5490,7 @@ quiet period when decoding is done.</source>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="793"/>
|
||||
<source>&None</source>
|
||||
<translation>無(&N)</translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="806"/>
|
||||
@ -5749,7 +5774,32 @@ transmitting periods.</source>
|
||||
向外發射輸出.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2400"/>
|
||||
<location filename="../Configuration.ui" line="1888"/>
|
||||
<source><html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be sent.</p></body></html></source>
|
||||
<translation><html><head/><body><p>輸入 WSJT-X 應向其發送更新的 UDP 伺服器的服務埠號. 如果這是零將不發送任何更新.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1898"/>
|
||||
<source>Outgoing interfaces:</source>
|
||||
<translation>傳出介面:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1908"/>
|
||||
<source><html><head/><body><p>When sending updates to a multicast group address it is necessary to specify which network interface(s) to send them to. If the loop-back interface is multicast capable then at least that one will be selected.</p><p>For most users the loop-back interface is all that is needed, that will allow multiple other applications on the same machine to interoperate with WSJT-X. If applications running on other hosts are to receive status updates then a suitable network interface should be used.</p><p>On some Linux systems it may be necessary to enable multicast on the loop-back network interface.</p></body></html></source>
|
||||
<translation><html><head/><body><p>向組播組地址發送更新時需要指定要將其發送到哪個網路介面. 如果環回介面支援組播則至少將選擇該介面.</p><p>對於大多數用戶來說迴圈回式介面是所有需要的, 將允許同一台電腦上的多個其他應用程式與 WSJT-X 進行互通. 如果在其他主機上運行的應用程式要接收狀態更新則應使用合適的網路介面.</p><p>在某些 Linux 系統上可能需要在環回網路介面上啟用組播.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1915"/>
|
||||
<source><html><head/><body><p>Sets the number or router hops that multicast datagrams are allowed to make. Almost everyone should set this to 1 to keep outgoing multicast traffic withn the local subnet.</p></body></html></source>
|
||||
<translation><html><head/><body><p>設置允許組播數據報進行的數位或路由器躍點. 幾乎每個人都應該將此設置為 1 以保持傳出的組播流量與本地子網.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1928"/>
|
||||
<source>Multicast TTL:</source>
|
||||
<translation>組播 TTL TTL:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2434"/>
|
||||
<source>Days since last upload</source>
|
||||
<translation>自上次上傳以來的天數</translation>
|
||||
</message>
|
||||
@ -5809,7 +5859,7 @@ both here.</source>
|
||||
<translation>啟用甚高頻和子模式功能</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1370"/>
|
||||
<location filename="../Configuration.ui" line="1427"/>
|
||||
<source>Ou&tput:</source>
|
||||
<translation>輸出(&t):</translation>
|
||||
</message>
|
||||
@ -6001,7 +6051,7 @@ and DX Grid fields when a 73 or free text message is sent.</source>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1801"/>
|
||||
<source>Log automatically (contesting only)</source>
|
||||
<translation>日誌自記錄 (僅限競赛)</translation>
|
||||
<translation>日誌自動記錄 (僅限競赛)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1818"/>
|
||||
|
@ -23,7 +23,7 @@ CAboutDlg::CAboutDlg(QWidget *parent) :
|
||||
"We gratefully acknowledge contributions from AC6SL, AE4JY,<br />"
|
||||
"DF2ET, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, KA1GT, K3WYC,<br />"
|
||||
"KA6MAL, KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR,<br />"
|
||||
"VE1SKY, VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.<br /><br />"
|
||||
"VE1SKY, VK3ACF, VK4BDJ, VK7MO, W3DJS, W4TI, W4TV, and W9MDB.<br /><br />"
|
||||
"WSJT-X is licensed under the terms of Version 3 <br />"
|
||||
"of the GNU General Public License (GPL) <br /><br />"
|
||||
"<a href=" TO_STRING__ (PROJECT_HOMEPAGE) ">"
|
||||
|
@ -212,7 +212,7 @@ namespace
|
||||
auto quint32_max = std::numeric_limits<quint32>::max ();
|
||||
constexpr int N_WIDGETS {36};
|
||||
constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz
|
||||
constexpr int tx_audio_buffer_size {48000 / 5}; // audio frames at 48000 Hz
|
||||
constexpr int default_tx_audio_buffer_frames {-1}; // lets Qt decide
|
||||
|
||||
bool message_is_73 (int type, QStringList const& msg_parts)
|
||||
{
|
||||
@ -265,6 +265,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_soundInput {new SoundInput},
|
||||
m_modulator {new Modulator {TX_SAMPLE_RATE, NTMAX}},
|
||||
m_soundOutput {new SoundOutput},
|
||||
m_tx_audio_buffer_frames {0},
|
||||
m_msErase {0},
|
||||
m_secBandChanged {0},
|
||||
m_freqNominal {0},
|
||||
@ -455,6 +456,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_modulator->moveToThread (&m_audioThread);
|
||||
m_soundInput->moveToThread (&m_audioThread);
|
||||
m_detector->moveToThread (&m_audioThread);
|
||||
bool ok;
|
||||
auto buffer_size = env.value ("WSJT_TX_AUDIO_BUFFER_FRAMES", "0").toInt (&ok);
|
||||
m_tx_audio_buffer_frames = ok && buffer_size ? buffer_size : default_tx_audio_buffer_frames;
|
||||
|
||||
// hook up sound output stream slots & signals and disposal
|
||||
connect (this, &MainWindow::initializeAudioOutputStream, m_soundOutput, &SoundOutput::setFormat);
|
||||
@ -942,7 +946,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
{
|
||||
Q_EMIT initializeAudioOutputStream (m_config.audio_output_device ()
|
||||
, AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2
|
||||
, tx_audio_buffer_size);
|
||||
, m_tx_audio_buffer_frames);
|
||||
}
|
||||
Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT);
|
||||
|
||||
@ -1855,7 +1859,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
||||
if(m_config.restart_audio_output () && !m_config.audio_output_device ().isNull ()) {
|
||||
Q_EMIT initializeAudioOutputStream (m_config.audio_output_device ()
|
||||
, AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2
|
||||
, tx_audio_buffer_size);
|
||||
, m_tx_audio_buffer_frames);
|
||||
}
|
||||
|
||||
displayDialFrequency ();
|
||||
|
@ -404,6 +404,7 @@ private:
|
||||
SoundInput * m_soundInput;
|
||||
Modulator * m_modulator;
|
||||
SoundOutput * m_soundOutput;
|
||||
int m_tx_audio_buffer_frames;
|
||||
QThread m_audioThread;
|
||||
|
||||
qint64 m_msErase;
|
||||
|
Loading…
Reference in New Issue
Block a user