You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2219 lines
89 KiB

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="en_US">
<context>
<name>ChatGui</name>
<message>
<location filename="../src/nodespage.cpp" line="+209"/>
<source> addresses:
</source>
<translation> addresses:
</translation>
</message>
<message>
<location line="+19"/>
<location line="+3"/>
<source> addresses: none
</source>
<translation> addresses: none
</translation>
</message>
<message>
<location line="-34"/>
<source> created: %1
</source>
<translation> created: %1
</translation>
</message>
<message>
<location line="-3"/>
<source> last seen: %1
</source>
<translation> last seen: %1
</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="+172"/>
<source> (auto)</source>
<translation> (auto)</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+190"/>
<location line="+9"/>
<location filename="../src/callwindow.cpp" line="+287"/>
<source> (default)</source>
<translation> (default)</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="+12"/>
<source> (self)</source>
<translation> (self)</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+116"/>
<source> +%1 more</source>
<translation> +%1 more</translation>
</message>
<message>
<location filename="../src/storagesettingspage.cpp" line="+73"/>
<source> GB</source>
<translation> GB</translation>
</message>
<message>
<location line="-9"/>
<source> MB</source>
<translation> MB</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+269"/>
<location filename="../src/radiosettingspage.cpp" line="+42"/>
<location line="+1"/>
<source> dB</source>
<translation> dB</translation>
</message>
<message>
<location line="-327"/>
<source> kbps</source>
<translation> kbps</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-5"/>
<source> ms</source>
<translation> ms</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+22"/>
<source> s</source>
<translation> s</translation>
</message>
<message>
<location filename="../src/memberlistmodel.cpp" line="+55"/>
<source> · Radio enabled</source>
<translation> · Radio enabled</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+11"/>
<source> ⚠ This is your own link</source>
<translation> ⚠ This is your own link</translation>
</message>
<message>
<location filename="../src/statuspage.cpp" line="+108"/>
<source>%1 [LOCAL]</source>
<translation>%1 [LOCAL]</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="+39"/>
<location line="+7"/>
<location line="+115"/>
<location line="+6"/>
<source>%1 B</source>
<translation>%1 B</translation>
</message>
<message>
<location line="-127"/>
<location line="+7"/>
<location line="+115"/>
<location line="+6"/>
<source>%1 KB</source>
<translation>%1 KB</translation>
</message>
<message>
<location line="-127"/>
<location line="+7"/>
<location line="+115"/>
<location line="+6"/>
<source>%1 MB</source>
<translation>%1 MB</translation>
</message>
<message>
<location line="+65"/>
<source>%1: FAILED (%2 ms)</source>
<translation>%1: FAILED (%2 ms)</translation>
</message>
<message>
<location line="-4"/>
<source>%1: OK (%2 ms)</source>
<translation>%1: OK (%2 ms)</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="+65"/>
<location filename="../src/messagedelegate.cpp" line="+338"/>
<source>%1B</source>
<translation>%1B</translation>
</message>
<message>
<location line="+6"/>
<location filename="../src/messagedelegate.cpp" line="+6"/>
<source>%1GB</source>
<translation>%1GB</translation>
</message>
<message>
<location line="-4"/>
<location filename="../src/messagedelegate.cpp" line="-4"/>
<source>%1KB</source>
<translation>%1KB</translation>
</message>
<message>
<location line="+2"/>
<location filename="../src/messagedelegate.cpp" line="+2"/>
<source>%1MB</source>
<translation>%1MB</translation>
</message>
<message>
<location filename="../src/messagedelegate.cpp" line="+8"/>
<source>%1Mbps</source>
<translation>%1Mbps</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+64"/>
<source>%1d</source>
<translation>%1d</translation>
</message>
<message>
<location line="-1"/>
<source>%1h</source>
<translation>%1h</translation>
</message>
<message>
<location filename="../src/messagedelegate.cpp" line="+1"/>
<source>%1kbps</source>
<translation>%1kbps</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="-1"/>
<source>%1m</source>
<translation>%1m</translation>
</message>
<message>
<location line="-1"/>
<source>%1s</source>
<translation>%1s</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="+122"/>
<source>(Admin/Super require channel private key)</source>
<translation>(Admin/Super require channel private key)</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-112"/>
<location line="+23"/>
<source>Accept</source>
<translation>Accept</translation>
</message>
<message>
<location filename="../src/connmonitorwindow.cpp" line="+44"/>
<source>Active ETCP Connections (10 fps)</source>
<translation>Active ETCP Connections (10 fps)</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+38"/>
<source>Add</source>
<translation>Add</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="-124"/>
<source>Addrs</source>
<translation>Addrs</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-26"/>
<source>Admin</source>
<translation>Admin</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+106"/>
<source>Alphabetical (A-Z)</source>
<translation>Alphabetical (A-Z)</translation>
</message>
<message>
<location filename="../src/emoji.cpp" line="+140"/>
<source>Animations</source>
<translation>Animations</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+101"/>
<source>Another invitation is still being created. Try again.</source>
<translation>Another invitation is still being created. Try again.</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="+792"/>
<source>Application minimized to tray.</source>
<translation>Application minimized to tray.</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+87"/>
<source>Applying settings…</source>
<translation>Applying settings…</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="+297"/>
<source>As a file</source>
<translation>As a file</translation>
</message>
<message>
<location line="+1"/>
<source>As a video</source>
<translation>As a video</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+10"/>
<source>Ask before joining</source>
<translation>Ask before joining</translation>
</message>
<message>
<location filename="../src/ptt_portal.cpp" line="+131"/>
<source>Assign a shortcut in system settings.</source>
<translation>Assign a shortcut in system settings.</translation>
</message>
<message>
<location line="+19"/>
<source>Assigning global shortcuts…</source>
<translation>Assigning global shortcuts…</translation>
</message>
<message>
<location line="-38"/>
<source>Assignment cancelled. Click the button to try again.</source>
<translation>Assignment cancelled. Click the button to try again.</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="-255"/>
<source>Attach</source>
<translation>Attach</translation>
</message>
<message>
<location line="+223"/>
<source>Attach file</source>
<translation>Attach file</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-52"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="-58"/>
<source>Audio output</source>
<translation>Audio output</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="-21"/>
<source>Auto (0.0.0.0)</source>
<translation>Auto (0.0.0.0)</translation>
</message>
<message>
<location line="+101"/>
<source>Auto (any)</source>
<translation>Auto (any)</translation>
</message>
<message>
<location line="-88"/>
<source>Auto sockets (UDP+TCP from interfaces)</source>
<translation>Auto sockets (UDP+TCP from interfaces)</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+59"/>
<source>Auto-connect to group nodes</source>
<translation>Auto-connect to group nodes</translation>
</message>
<message>
<location line="-8"/>
<source>Auto-join</source>
<translation>Auto-join</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+39"/>
<source>Auto-play voice messages on receive</source>
<translation>Auto-play voice messages on receive</translation>
</message>
<message>
<location filename="../src/storagesettingspage.cpp" line="+5"/>
<source>Autoload max size:</source>
<translation>Autoload max size:</translation>
</message>
<message>
<location line="-11"/>
<source>Autoload media</source>
<translation>Autoload media</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+18"/>
<source>Automatic voice transmission</source>
<translation>Automatic voice transmission</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+1169"/>
<location line="+3"/>
<source>Awaiting delivery</source>
<translation>Awaiting delivery</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-20"/>
<source>Bitrate:</source>
<translation>Bitrate:</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="+160"/>
<source>Buffer: %1 ms · Reserve: %2 ms
Over 10 s: minimum %3 · maximum %4 ms
Speed: %5× · RTT: %6 ms
Buffer drops: %7 · Underruns: %8</source>
<translation>Buffer: %1 ms · Reserve: %2 ms
Over 10 s: minimum %3 · maximum %4 ms
Speed: %5× · RTT: %6 ms
Buffer drops: %7 · Underruns: %8</translation>
</message>
<message>
<location line="-218"/>
<source>Call</source>
<translation>Call</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+427"/>
<location filename="../src/messagelist.cpp" line="-788"/>
<location line="+716"/>
<source>Call peer</source>
<translation>Call peer</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="+64"/>
<source>Call: connecting</source>
<translation>Call: connecting</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+22"/>
<source>Call: maximum jitter reserve</source>
<translation>Call: maximum jitter reserve</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="+1"/>
<source>Call: ringback</source>
<translation>Call: ringback</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="+115"/>
<source>Calling…</source>
<translation>Calling…</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+21"/>
<location filename="../src/creategroupdialog.cpp" line="+30"/>
<location filename="../src/dminvitedialog.cpp" line="-58"/>
<location filename="../src/joindialog.cpp" line="+62"/>
<location filename="../src/memberpropsdialog.cpp" line="+47"/>
<location filename="../src/renamedialog.cpp" line="+54"/>
<location filename="../src/settingsdialog.cpp" line="+67"/>
<source>Cancel</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="+107"/>
<source>Cancel recording</source>
<translation>Cancel recording</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-18"/>
<source>Capture stereo (playback is always stereo)</source>
<translation>Capture stereo (playback is always stereo)</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+55"/>
<source>Changes take effect after restart.</source>
<translation>Changes take effect after restart.</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="-743"/>
<source>Channel</source>
<translation>Channel</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="-40"/>
<source>Channel Settings</source>
<translation>Channel Settings</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+79"/>
<location filename="../src/joindialog.cpp" line="+161"/>
<source>Channel not found.</source>
<translation>Channel not found.</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="-303"/>
<source>Channel owner (has private key)</source>
<translation>Channel owner (has private key)</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-78"/>
<source>Channel sorting:</source>
<translation>Channel sorting:</translation>
</message>
<message>
<location filename="../src/channellist.cpp" line="+150"/>
<source>Channels</source>
<translation>Channels</translation>
</message>
<message>
<location line="+40"/>
<source>GRP</source>
<translation>GRP</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-50"/>
<source>Checking...</source>
<translation>Checking...</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-41"/>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="+25"/>
<source>Click Refresh to load nodes</source>
<translation>Click Refresh to load nodes</translation>
</message>
<message>
<location filename="../src/statuspage.cpp" line="-44"/>
<source>Click Refresh to load status</source>
<translation>Click Refresh to load status</translation>
</message>
<message>
<location filename="../src/imageviewer_window.cpp" line="+45"/>
<location filename="../src/videoplayer_window.cpp" line="+119"/>
<source>Close</source>
<translation>Close</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+305"/>
<location filename="../src/joindialog.cpp" line="-152"/>
<source>Connect</source>
<translation>Connect</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="+140"/>
<source>Connected!</source>
<translation>Connected!</translation>
</message>
<message>
<location filename="../src/ptt_portal.cpp" line="-58"/>
<source>Connecting global shortcuts…</source>
<translation>Connecting global shortcuts…</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="-16"/>
<source>Connecting to peer...</source>
<translation>Connecting to peer...</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-4"/>
<source>Connecting…</source>
<translation>Connecting…</translation>
</message>
<message>
<location filename="../src/channellist.cpp" line="-9"/>
<location filename="../src/connmonitorwindow.cpp" line="-9"/>
<source>Connection Monitor</source>
<translation>Connection Monitor</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="+33"/>
<source>Connection failed: %1</source>
<translation>Connection failed: %1</translation>
</message>
<message>
<location line="-4"/>
<source>Connection timed out.</source>
<translation>Connection timed out.</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-8"/>
<source>Connection: %1</source>
<translation>Connection: %1</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-45"/>
<source>Connections</source>
<translation>Connections</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="-124"/>
<source>Copy</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+73"/>
<source>Core unavailable</source>
<translation>Core unavailable</translation>
</message>
<message>
<location filename="../src/creategroupdialog.cpp" line="+4"/>
<source>Create</source>
<translation>Create</translation>
</message>
<message>
<location filename="../src/channellist.cpp" line="+11"/>
<location filename="../src/creategroupdialog.cpp" line="-22"/>
<source>Create group</source>
<translation>Create group</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+44"/>
<source>Creating and sending invitation…</source>
<translation>Creating and sending invitation…</translation>
</message>
<message>
<location filename="../src/imageviewer_window.cpp" line="+15"/>
<source>Ctrl+wheel — zoom</source>
<translation>Ctrl+wheel — zoom</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+1"/>
<source>Database</source>
<translation>Database</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-159"/>
<source>Database Maintenance</source>
<translation>Database Maintenance</translation>
</message>
<message>
<location line="+112"/>
<location line="+11"/>
<source>Database not connected</source>
<translation>Database not connected</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="+21"/>
<source>Database not connected (m_db=%1, m_db-&gt;m_db=%2)</source>
<translation>Database not connected (m_db=%1, m_db-&gt;m_db=%2)</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="+43"/>
<location line="+13"/>
<location line="+13"/>
<source>Database not open</source>
<translation>Database not open</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-67"/>
<location line="+23"/>
<source>Decline</source>
<translation>Decline</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+40"/>
<location line="+9"/>
<location filename="../src/callwindow.cpp" line="+84"/>
<location filename="../src/radiopanel.cpp" line="-9"/>
<location line="+41"/>
<source>Default (auto)</source>
<translation>Default (auto)</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-27"/>
<source>Deleted</source>
<translation>Deleted</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+810"/>
<location line="+6"/>
<source>Delivered</source>
<translation>Delivered</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+57"/>
<source>Deny all</source>
<translation>Deny all</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="-31"/>
<source>Details</source>
<translation>Details</translation>
</message>
<message>
<location filename="../src/channellist.cpp" line="+106"/>
<source>Direct messages</source>
<translation>Direct messages</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="-58"/>
<source>Disable automatic voice transmission</source>
<translation>Disable automatic voice transmission</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-37"/>
<source>Display name:</source>
<translation>Display name:</translation>
</message>
<message>
<location filename="../src/messagedelegate.cpp" line="+962"/>
<location filename="../src/messagelist.cpp" line="-143"/>
<source>Download</source>
<translation>Download</translation>
</message>
<message>
<location line="-1"/>
<source>Downloading...</source>
<translation>Downloading...</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+141"/>
<source>Downloading…</source>
<translation>Downloading…</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+4"/>
<source>Edit</source>
<translation>Edit</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="-205"/>
<source>Emoji</source>
<translation>Emoji</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-60"/>
<source>Enable VAD using the button on the radio panel. Speech prebuffer is 0.6 s. The VAD compressor has a separate maximum gain; other parameters are shared with the transmission compressor. Set the gain rise rate in Audio.</source>
<translation>Enable VAD using the button on the radio panel. Speech prebuffer is 0.6 s. The VAD compressor has a separate maximum gain; other parameters are shared with the transmission compressor. Set the gain rise rate in Audio.</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+1"/>
<source>Enable automatic voice transmission</source>
<translation>Enable automatic voice transmission</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+227"/>
<source>Enable compressor (leveler/normalizer)</source>
<translation>Enable compressor (leveler/normalizer)</translation>
</message>
<message>
<location line="+4"/>
<source>Enable echo cancellation (AEC) in calls</source>
<translation>Enable echo cancellation (AEC) in calls</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="-39"/>
<source>Enable sounds</source>
<translation>Enable sounds</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-106"/>
<location line="+23"/>
<source>End call</source>
<translation>End call</translation>
</message>
<message>
<location line="+73"/>
<source>Ended</source>
<translation>Ended</translation>
</message>
<message>
<location filename="../src/creategroupdialog.cpp" line="+9"/>
<source>Enter a name...</source>
<translation>Enter a name...</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="-70"/>
<source>Enter an invite link.</source>
<translation>Enter an invite link.</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="-19"/>
<source>Entry node:</source>
<translation>Entry node:</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="+36"/>
<location line="+9"/>
<location line="+130"/>
<location line="+4"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+5"/>
<source>Error: %1</source>
<translation>Error: %1</translation>
</message>
<message>
<location line="-41"/>
<source>Error: this is your own link (you cannot invite yourself)</source>
<translation>Error: this is your own link (you cannot invite yourself)</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="+29"/>
<source>Events</source>
<translation>Events</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="-83"/>
<source>Expected a utun:// link...</source>
<translation>Expected a utun:// link...</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+242"/>
<source>Failed to apply radio settings. Check that the core and configuration file are available; see the radio log for details.</source>
<translation>Failed to apply radio settings. Check that the core and configuration file are available; see the radio log for details.</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="+157"/>
<source>Failed to build the link (see log)</source>
<translation>Failed to build the link (see log)</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+12"/>
<source>Failed to create a direct conversation.</source>
<translation>Failed to create a direct conversation.</translation>
</message>
<message>
<location line="+4"/>
<source>Failed to create an invitation. Check the connection and try again.</source>
<translation>Failed to create an invitation. Check the connection and try again.</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="-42"/>
<source>Failed to identify the node (see log)</source>
<translation>Failed to identify the node (see log)</translation>
</message>
<message>
<location filename="../src/imageviewer_window.cpp" line="+70"/>
<source>Failed to load photo</source>
<translation>Failed to load photo</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="-256"/>
<source>Failed to open the link. Check that a browser is installed.</source>
<translation>Failed to open the link. Check that a browser is installed.</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="+296"/>
<source>Failed to prepare attachment</source>
<translation>Failed to prepare attachment</translation>
</message>
<message>
<location filename="../src/radio_audio_engine.cpp" line="+107"/>
<source>Failed to read configuration: %1</source>
<translation>Failed to read configuration: %1</translation>
</message>
<message>
<location line="+13"/>
<source>Failed to save configuration: %1</source>
<translation>Failed to save configuration: %1</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+64"/>
<source>Failed to save the interface language. Check the configuration file.</source>
<translation>Failed to save the interface language. Check the configuration file.</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+33"/>
<location line="+7"/>
<source>Failed to select device</source>
<translation>Failed to select device</translation>
</message>
<message>
<location filename="../src/radio_audio_engine.cpp" line="+15"/>
<source>Failed to send radio settings to the core</source>
<translation>Failed to send radio settings to the core</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="-3"/>
<source>Failed to send the invitation.</source>
<translation>Failed to send the invitation.</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="+96"/>
<source>Failed to start key recording. See the radio log for details.</source>
<translation>Failed to start key recording. See the radio log for details.</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-156"/>
<source>File:</source>
<translation>File:</translation>
</message>
<message>
<location line="+36"/>
<location line="+114"/>
<source>Full Check</source>
<translation>Full Check</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="-99"/>
<location line="+73"/>
<source>Generating link...</source>
<translation>Generating link...</translation>
</message>
<message>
<location filename="../src/emoji.cpp" line="-2"/>
<source>Gestures</source>
<translation>Gestures</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-47"/>
<source>Global shortcuts are available on Windows and Linux/X11. Shortcut recording is unavailable on this platform.</source>
<translation>Global shortcuts are available on Windows and Linux/X11. Shortcut recording is unavailable on this platform.</translation>
</message>
<message>
<location filename="../src/ptt_portal.cpp" line="+81"/>
<source>Global shortcuts connected.</source>
<translation>Global shortcuts connected.</translation>
</message>
<message>
<location line="+100"/>
<source>Global shortcuts unavailable. Try assigning again; see the radio log for details.</source>
<translation>Global shortcuts unavailable. Try assigning again; see the radio log for details.</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-35"/>
<source>Global shortcuts work from any application. Assign a regular key with Ctrl, Shift, Alt or Win in the system dialog. Changes are saved by the system immediately. Keyboard transmission is disabled during setup.</source>
<translation>Global shortcuts work from any application. Assign a regular key with Ctrl, Shift, Alt or Win in the system dialog. Changes are saved by the system immediately. Keyboard transmission is disabled during setup.</translation>
</message>
<message>
<location filename="../src/creategroupdialog.cpp" line="-3"/>
<source>Group name:</source>
<translation>Group name:</translation>
</message>
<message>
<location filename="../src/emoji.cpp" line="+1"/>
<source>Hearts &amp; Symbols</source>
<translation>Hearts &amp; Symbols</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-313"/>
<source>High (64 kbps, best)</source>
<translation>High (64 kbps, best)</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="+26"/>
<source>Hold a shortcut to transmit from any application, even when ChatGUI is not focused. Channel radio must be enabled. To record a shortcut, hold the desired keys together and release them. Left and right Ctrl, Shift, Alt and Win are distinct. Fn is available only if the keyboard reports it to the OS.</source>
<translation>Hold a shortcut to transmit from any application, even when ChatGUI is not focused. Channel radio must be enabled. To record a shortcut, hold the desired keys together and release them. Left and right Ctrl, Shift, Alt and Win are distinct. Fn is available only if the keyboard reports it to the OS.</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="-80"/>
<source>Hold to talk, or double-click to lock PTT. Click again to release. Global shortcuts also work.</source>
<translation>Hold to talk, or double-click to lock PTT. Click again to release. Global shortcuts also work.</translation>
</message>
<message>
<source>PTT locked. Click to release.</source>
<translation>PTT locked. Click to release.</translation>
</message>
<message>
<location line="-1"/>
<source>Hold to talk</source>
<translation>Hold to talk</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="-32"/>
<source>IP Address:</source>
<translation>IP Address:</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-10"/>
<source>In call</source>
<translation>In call</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="+8"/>
<source>Incoming call</source>
<translation>Incoming call</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="-107"/>
<source>Incoming call from %1</source>
<translation>Incoming call from %1</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-4"/>
<source>Incoming call…</source>
<translation>Incoming call…</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="-4"/>
<source>Incoming message</source>
<translation>Incoming message</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-287"/>
<source>Interface language:</source>
<translation>Interface language:</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+25"/>
<source>Interface:</source>
<translation>Interface:</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="+7"/>
<source>Invalid invite link: </source>
<translation>Invalid invite link: </translation>
</message>
<message>
<location line="+4"/>
<source>Invalid invite link: pubkey is %1 bytes (need 32)</source>
<translation>Invalid invite link: pubkey is %1 bytes (need 32)</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="+101"/>
<source>Invalid link.</source>
<translation>Invalid link.</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+7"/>
<location line="+58"/>
<location filename="../src/mainwindow.cpp" line="+16"/>
<source>Invalid link: </source>
<translation>Invalid link: </translation>
</message>
<message>
<location filename="../src/radio_audio_engine.cpp" line="-39"/>
<source>Invalid radio setting: %1</source>
<translation>Invalid radio setting: %1</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="-34"/>
<location line="+33"/>
<location line="+6"/>
<source>Invitation</source>
<translation>Invitation</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+2"/>
<source>Invitation creation cancelled.</source>
<translation>Invitation creation cancelled.</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+38"/>
<source>Invitation sent, waiting for a response...</source>
<translation>Invitation sent, waiting for a response...</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="-12"/>
<source>Invitation to group “%1”</source>
<translation>Invitation to group “%1”</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="-58"/>
<location filename="../src/inviteby.cpp" line="-140"/>
<source>Invite</source>
<translation>Invite</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="-100"/>
<source>Invite link</source>
<translation>Invite link</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="-25"/>
<source>Invite to channel %1</source>
<translation>Invite to channel %1</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="-22"/>
<location filename="../src/messagelist.cpp" line="-793"/>
<location line="+1"/>
<source>Invite to group</source>
<translation>Invite to group</translation>
</message>
<message>
<location filename="../src/channellist.cpp" line="-96"/>
<source>Join</source>
<translation>Join</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="-138"/>
<source>Join Channel</source>
<translation>Join Channel</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+14"/>
<source>Join requests:</source>
<translation>Join requests:</translation>
</message>
<message>
<location filename="../src/ptt_hotkey_manager.cpp" line="+200"/>
<source>Key %1</source>
<translation>Key %1</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="-22"/>
<source>Known Nodes</source>
<translation>Known Nodes</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-13"/>
<source>Language changes take effect after restart.</source>
<translation>Language changes take effect after restart.</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="-22"/>
<location line="+6"/>
<source>Link</source>
<translation>Link</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+93"/>
<source>Link: node 0x%1 key %2, %3 addresses (%4)
Invitation to channel: %5</source>
<translation>Link: node 0x%1 key %2, %3 addresses (%4)
Invitation to channel: %5</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="-52"/>
<source>Listen Sockets</source>
<translation>Listen Sockets</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+42"/>
<source>Live ETCP connection monitor
with per-link BBR statistics</source>
<translation>Live ETCP connection monitor
with per-link BBR statistics</translation>
</message>
<message>
<location filename="../src/statuspage.cpp" line="+52"/>
<source>Loading...</source>
<translation>Loading...</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+49"/>
<source>Local</source>
<translation>Local</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-25"/>
<source>Local nickname...</source>
<translation>Local nickname...</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-2"/>
<source>Low (16 kbps, fast)</source>
<translation>Low (16 kbps, fast)</translation>
</message>
<message>
<location line="+342"/>
<source>Max gain:</source>
<translation>Max gain:</translation>
</message>
<message>
<location filename="../src/storagesettingspage.cpp" line="+20"/>
<source>Max storage size:</source>
<translation>Max storage size:</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-290"/>
<source>Maximum adaptive jitter reserve for calls. Applies to the next call.</source>
<translation>Maximum adaptive jitter reserve for calls. Applies to the next call.</translation>
</message>
<message>
<location filename="../src/storagesettingspage.cpp" line="-28"/>
<source>Media Storage</source>
<translation>Media Storage</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-62"/>
<source>Member Properties</source>
<translation>Member Properties</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="-415"/>
<location line="+105"/>
<source>Members</source>
<translation>Members</translation>
</message>
<message>
<location line="+0"/>
<source>Members 🔑</source>
<translation>Members 🔑</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="-26"/>
<source>Microphone</source>
<translation>Microphone</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-106"/>
<source>Microphone test</source>
<translation>Microphone test</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+60"/>
<source>Microphone unavailable</source>
<translation>Microphone unavailable</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+79"/>
<source>Mode:</source>
<translation>Mode:</translation>
</message>
<message>
<location line="-2"/>
<source>Music (AUDIO)</source>
<translation>Music (AUDIO)</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-81"/>
<location line="+23"/>
<location line="+131"/>
<source>Mute</source>
<translation>Mute</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="+6"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="-27"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-84"/>
<source>Network</source>
<translation>Network</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+42"/>
<source>No addresses.</source>
<translation>No addresses.</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+18"/>
<source>No groups available to invite to.</source>
<translation>No groups available to invite to.</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="+167"/>
<source>No nodes found.</source>
<translation>No nodes found.</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="+142"/>
<source>No peer addresses in the invite link.</source>
<translation>No peer addresses in the invite link.</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="-168"/>
<source>Node ID</source>
<translation>Node ID</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="+114"/>
<location line="+9"/>
<location line="+130"/>
<source>Node is not running.</source>
<translation>Node is not running.</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+48"/>
<location filename="../src/joindialog.cpp" line="+56"/>
<source>Node not initialized.</source>
<translation>Node not initialized.</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="+120"/>
<source>Node: %1</source>
<translation>Node: %1</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="+55"/>
<source>Node: 0x%1</source>
<translation>Node: 0x%1</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="-107"/>
<source>Node: 0x%1 %2</source>
<translation>Node: 0x%1 %2</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+4"/>
<source>Nodes</source>
<translation>Nodes</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+38"/>
<source>Not enough memory.</source>
<translation>Not enough memory.</translation>
</message>
<message>
<location filename="../src/ptt_hotkey_manager.cpp" line="+8"/>
<location filename="../src/radiosettingspage.cpp" line="+153"/>
<source>Not set</source>
<translation>Not set</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+702"/>
<location line="+30"/>
<source>Offline</source>
<translation>Offline</translation>
</message>
<message>
<location line="+0"/>
<source>Online</source>
<translation>Online</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+84"/>
<source>Open Connection Monitor</source>
<translation>Open Connection Monitor</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-104"/>
<location line="+117"/>
<source>Optimize</source>
<translation>Optimize</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="+1"/>
<source>Outgoing message</source>
<translation>Outgoing message</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-1"/>
<source>PTT shortcut %1: %2</source>
<translation>PTT shortcut %1: %2</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="+40"/>
<source>Parsing link...</source>
<translation>Parsing link...</translation>
</message>
<message>
<location line="-123"/>
<source>Paste invite link:</source>
<translation>Paste invite link:</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="-176"/>
<source>Paste the invited node&apos;s utun:// link:</source>
<translation>Paste the invited node&apos;s utun:// link:</translation>
</message>
<message>
<location line="+114"/>
<source>Paste the node&apos;s utun:// link.</source>
<translation>Paste the node&apos;s utun:// link.</translation>
</message>
<message>
<location filename="../src/videoplayer_window.cpp" line="-16"/>
<location line="+94"/>
<source>Pause</source>
<translation>Pause</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="+1"/>
<source>Peer connected</source>
<translation>Peer connected</translation>
</message>
<message>
<location line="+1"/>
<source>Peer disconnected</source>
<translation>Peer disconnected</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="-32"/>
<location line="+33"/>
<source>Peer unavailable</source>
<translation>Peer unavailable</translation>
</message>
<message>
<location filename="../src/imageviewer_window.cpp" line="-92"/>
<source>Photo</source>
<translation>Photo</translation>
</message>
<message>
<location filename="../src/videoplayer_window.cpp" line="+3"/>
<source>Play</source>
<translation>Play</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+26"/>
<source>Play a notification sound when a message arrives in this channel.</source>
<translation>Play a notification sound when a message arrives in this channel.</translation>
</message>
<message>
<location line="-1"/>
<source>Play sound on incoming message</source>
<translation>Play sound on incoming message</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-98"/>
<source>Playback device:</source>
<translation>Playback device:</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+11"/>
<source>Port:</source>
<translation>Port:</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="-1"/>
<source>Preparing media…</source>
<translation>Preparing media…</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-90"/>
<source>Press one or more keys together…</source>
<translation>Press one or more keys together…</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+15"/>
<source>Private</source>
<translation>Private</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-90"/>
<source>Profile</source>
<translation>Profile</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="-9"/>
<source>Protocol:</source>
<translation>Protocol:</translation>
</message>
<message>
<location line="+7"/>
<source>Public</source>
<translation>Public</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+4"/>
<source>Push-To-Talk (PTT) mode</source>
<translation>Push-To-Talk (PTT) mode</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="-14"/>
<source>Query error</source>
<translation>Query error</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-140"/>
<location line="+114"/>
<source>Quick Check</source>
<translation>Quick Check</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="-190"/>
<source>Quit</source>
<translation>Quit</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="-702"/>
<location filename="../src/settingsdialog.cpp" line="+9"/>
<source>Radio</source>
<translation>Radio</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-125"/>
<source>Radio (PTT)</source>
<translation>Radio (PTT)</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+88"/>
<source>Radio (PTT) — Opus</source>
<translation>Radio (PTT) — Opus</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+256"/>
<source>Radio settings</source>
<translation>Radio settings</translation>
</message>
<message>
<location filename="../src/radio_audio_engine.cpp" line="-10"/>
<source>Radio settings are not ready yet</source>
<translation>Radio settings are not ready yet</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+4"/>
<source>Radio: toggle channel listening</source>
<translation>Radio: toggle channel listening</translation>
</message>
<message>
<location filename="../src/ptt_portal.cpp" line="-88"/>
<source>Radio: transmit %1</source>
<translation>Radio: transmit %1</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+768"/>
<source>Received</source>
<translation>Received</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+3"/>
<source>Receiving</source>
<translation>Receiving</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-214"/>
<source>Recent Activity</source>
<translation>Recent Activity</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="-53"/>
<source>Recipient: %1</source>
<translation>Recipient: %1</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+1"/>
<source>Record voice messages with push-to-talk. (Coming soon)</source>
<translation>Record voice messages with push-to-talk. (Coming soon)</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-81"/>
<source>Recording device:</source>
<translation>Recording device:</translation>
</message>
<message>
<location filename="../src/nodespage.cpp" line="-74"/>
<location filename="../src/statuspage.cpp" line="-47"/>
<source>Refresh</source>
<translation>Refresh</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-88"/>
<source>Relay: 0x%1</source>
<translation>Relay: 0x%1</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="-33"/>
<source>Remove</source>
<translation>Remove</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+308"/>
<location filename="../src/renamedialog.cpp" line="-37"/>
<source>Rename</source>
<translation>Rename</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+412"/>
<source>Rise rate (x/sec):</source>
<translation>Rise rate (x/sec):</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-67"/>
<source>Run a check to see results...</source>
<translation>Run a check to see results...</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+19"/>
<location filename="../src/memberpropsdialog.cpp" line="+68"/>
<location filename="../src/renamedialog.cpp" line="+46"/>
<location filename="../src/settingsdialog.cpp" line="+84"/>
<source>Save</source>
<translation>Save</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="-133"/>
<source>Save file</source>
<translation>Save file</translation>
</message>
<message>
<location line="-10"/>
<source>Save to file</source>
<translation>Save to file</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-40"/>
<source>Scans structure without verifying indexes (fast)</source>
<translation>Scans structure without verifying indexes (fast)</translation>
</message>
<message>
<location filename="../src/chatview.cpp" line="+48"/>
<source>Scroll to bottom</source>
<translation>Scroll to bottom</translation>
</message>
<message>
<location filename="../src/connmonitorwindow.cpp" line="+32"/>
<source>Select a connection to view metrics</source>
<translation>Select a connection to view metrics</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+6"/>
<source>Select a group</source>
<translation>Select a group</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="-384"/>
<location line="+73"/>
<source>Select a member</source>
<translation>Select a member</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+63"/>
<source>Selected device unavailable; using an available device</source>
<translation>Selected device unavailable; using an available device</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="-287"/>
<source>Send</source>
<translation>Send</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+305"/>
<source>Send message</source>
<translation>Send message</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="+67"/>
<source>Send the channel private key to &quot;%1&quot;?
The key is transferred encrypted and signed. The recipient will become a co-owner and will be able to manage members.</source>
<translation>Send the channel private key to &quot;%1&quot;?
The key is transferred encrypted and signed. The recipient will become a co-owner and will be able to manage members.</translation>
</message>
<message>
<location line="-90"/>
<source>Send the channel private key to this member (encrypted + signed)</source>
<translation>Send the channel private key to this member (encrypted + signed)</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="+226"/>
<source>Send video</source>
<translation>Send video</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="+81"/>
<location line="+58"/>
<source>Set PTT shortcut %1</source>
<translation>Set PTT shortcut %1</translation>
</message>
<message>
<location line="-96"/>
<source>Set PTT shortcuts…</source>
<translation>Set PTT shortcuts…</translation>
</message>
<message>
<location filename="../src/channellist.cpp" line="-31"/>
<location filename="../src/mainwindow.cpp" line="-12"/>
<location filename="../src/settingsdialog.cpp" line="-151"/>
<location line="+345"/>
<source>Settings</source>
<translation>Settings</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="-68"/>
<source>Settings error</source>
<translation>Settings error</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="-41"/>
<source>Settings for channel</source>
<translation>Settings for channel</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="+5"/>
<source>Show</source>
<translation>Show</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-27"/>
<source>Silence before ending transmission:</source>
<translation>Silence before ending transmission:</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-26"/>
<source>Size:</source>
<translation>Size:</translation>
</message>
<message>
<location filename="../src/emoji.cpp" line="-2"/>
<source>Smileys &amp; People</source>
<translation>Smileys &amp; People</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-322"/>
<source>Sound</source>
<translation>Sound</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-368"/>
<source>Speaker test</source>
<translation>Speaker test</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="-2"/>
<source>Speech probability threshold: lower is more sensitive. This is not a volume threshold.</source>
<translation>Speech probability threshold: lower is more sensitive. This is not a volume threshold.</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+25"/>
<source>Standard (32 kbps)</source>
<translation>Standard (32 kbps)</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-2"/>
<source>Status</source>
<translation>Status</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+257"/>
<source>Stop Test</source>
<translation>Stop Test</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-4"/>
<source>Storage</source>
<translation>Storage</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-23"/>
<source>Storage (priority attachment keeper)</source>
<translation>Storage (priority attachment keeper)</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+141"/>
<source>Storage period expired</source>
<translation>Storage period expired</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-5"/>
<source>Supernode</source>
<translation>Supernode</translation>
</message>
<message>
<location filename="../src/statuspage.cpp" line="-15"/>
<source>System Status</source>
<translation>System Status</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="+34"/>
<source>System language</source>
<translation>System language</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="-299"/>
<location line="+303"/>
<source>Test Microphone</source>
<translation>Test Microphone</translation>
</message>
<message>
<location line="-282"/>
<source>Test Speaker (440Hz)</source>
<translation>Test Speaker (440Hz)</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="+44"/>
<location filename="../src/mainwindow.cpp" line="-78"/>
<location line="+39"/>
<source>The core is not running.</source>
<translation>The core is not running.</translation>
</message>
<message>
<location filename="../src/radio_audio_engine.cpp" line="+82"/>
<source>The core rejected radio settings</source>
<translation>The core rejected radio settings</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="+1"/>
<source>The file contains video. How would you like to send it?</source>
<translation>The file contains video. How would you like to send it?</translation>
</message>
<message>
<location filename="../src/joindialog.cpp" line="+10"/>
<source>The invitation expires 10 minutes after creation.
If it has expired, ask the sender to create a new link.</source>
<translation>The invitation expires 10 minutes after creation.
If it has expired, ask the sender to create a new link.</translation>
</message>
<message>
<location filename="../src/invitedialog.cpp" line="+6"/>
<source>The link expires %1 minutes after creation.</source>
<translation>The link expires %1 minutes after creation.</translation>
</message>
<message>
<location filename="../src/dminvitedialog.cpp" line="-42"/>
<source>The link expires %1 minutes after creation.
If the direct message arrives late, a new invitation will be needed.</source>
<translation>The link expires %1 minutes after creation.
If the direct message arrives late, a new invitation will be needed.</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="+51"/>
<source>The node has joined the channel.</source>
<translation>The node has joined the channel.</translation>
</message>
<message>
<location line="-41"/>
<source>The public key must be 32 bytes.</source>
<translation>The public key must be 32 bytes.</translation>
</message>
<message>
<location line="+51"/>
<source>Timed out — the node did not respond.</source>
<translation>Timed out — the node did not respond.</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="+26"/>
<location line="+91"/>
<source>Transfer admin rights</source>
<translation>Transfer admin rights</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="+5"/>
<source>Transmission and VAD compressor</source>
<translation>Transmission and VAD compressor</translation>
</message>
<message>
<location line="+2"/>
<source>Transmission max gain:</source>
<translation>Transmission max gain:</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+4"/>
<source>Transmitting</source>
<translation>Transmitting</translation>
</message>
<message>
<location filename="../src/networksettingspage.cpp" line="+31"/>
<source>Type:</source>
<translation>Type:</translation>
</message>
<message>
<location filename="../src/inviteby.cpp" line="-3"/>
<location filename="../src/joindialog.cpp" line="+176"/>
<source>Unknown error.</source>
<translation>Unknown error.</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="+88"/>
<source>Unmute</source>
<translation>Unmute</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="+46"/>
<source>Update query planner statistics for better performance</source>
<translation>Update query planner statistics for better performance</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="+1"/>
<source>VAD listening</source>
<translation>VAD listening</translation>
</message>
<message>
<location filename="../src/radiosettingspage.cpp" line="+1"/>
<source>VAD max gain:</source>
<translation>VAD max gain:</translation>
</message>
<message>
<location line="-9"/>
<source>VAD speech threshold:</source>
<translation>VAD speech threshold:</translation>
</message>
<message>
<location filename="../src/radiopanel.cpp" line="-2"/>
<source>VAD unavailable</source>
<translation>VAD unavailable</translation>
</message>
<message>
<location filename="../src/memberpropsdialog.cpp" line="-107"/>
<source>Verified</source>
<translation>Verified</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-10"/>
<source>Verifies all data structures and indexes (thorough)</source>
<translation>Verifies all data structures and indexes (thorough)</translation>
</message>
<message>
<location filename="../src/videoplayer_window.cpp" line="-120"/>
<source>Video</source>
<translation>Video</translation>
</message>
<message>
<location filename="../src/audiodevicesettingspage.cpp" line="+42"/>
<source>Voice (VOIP)</source>
<translation>Voice (VOIP)</translation>
</message>
<message>
<location line="+285"/>
<source>Voice Compressor</source>
<translation>Voice Compressor</translation>
</message>
<message>
<location line="-312"/>
<source>Voice codec quality</source>
<translation>Voice codec quality</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="-231"/>
<source>Voice message (hold)</source>
<translation>Voice message (hold)</translation>
</message>
<message>
<location filename="../src/channelsettingsdialog.cpp" line="+12"/>
<source>Voice messages will play automatically when received. Multiple messages queue up and play sequentially without interrupting current playback.</source>
<translation>Voice messages will play automatically when received. Multiple messages queue up and play sequentially without interrupting current playback.</translation>
</message>
<message>
<location filename="../src/soundsettingspage.cpp" line="-31"/>
<source>Volume:</source>
<translation>Volume:</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="-290"/>
<source>You are now a channel co-owner.
Received admin key for channel %1 from 0x%2</source>
<translation>You are now a channel co-owner.
Received admin key for channel %1 from 0x%2</translation>
</message>
<message>
<location filename="../src/settingsdialog.cpp" line="-9"/>
<source>Your name (shown to others)</source>
<translation>Your name (shown to others)</translation>
</message>
<message>
<location filename="../src/videoplayer_engine.cpp" line="+135"/>
<location line="+48"/>
<source>alloc failed</source>
<translation>alloc failed</translation>
</message>
<message>
<location filename="../src/invite_link.cpp" line="+71"/>
<source>base64 decode failed</source>
<translation>base64 decode failed</translation>
</message>
<message>
<location line="+8"/>
<source>blob too short (%1 bytes)</source>
<translation>blob too short (%1 bytes)</translation>
</message>
<message>
<location filename="../src/videoplayer_engine.cpp" line="-105"/>
<source>cannot open: %1</source>
<translation>cannot open: %1</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="-109"/>
<source>created %1</source>
<translation>created %1</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-91"/>
<source>direct</source>
<translation>direct</translation>
</message>
<message>
<location filename="../src/messagedelegate.cpp" line="+276"/>
<source>edited </source>
<translation>edited </translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="+1"/>
<source>indirect</source>
<translation>indirect</translation>
</message>
<message>
<location filename="../src/invite_link.cpp" line="+74"/>
<source>invalid addr count %1</source>
<translation>invalid addr count %1</translation>
</message>
<message>
<location line="-88"/>
<source>invalid prefix (expected utun://)</source>
<translation>invalid prefix (expected utun://)</translation>
</message>
<message>
<location filename="../src/databasesettingspage.cpp" line="-47"/>
<location line="+120"/>
<source>n/a</source>
<translation>n/a</translation>
</message>
<message>
<location filename="../src/videoplayer_engine.cpp" line="+3"/>
<source>no stream info: %1</source>
<translation>no stream info: %1</translation>
</message>
<message>
<location line="+8"/>
<source>no video stream: %1</source>
<translation>no video stream: %1</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="-1"/>
<source>not connected</source>
<translation>not connected</translation>
</message>
<message>
<location filename="../src/memberlistmodel.cpp" line="-3"/>
<source>offline</source>
<translation>offline</translation>
</message>
<message>
<location line="-1"/>
<source>online</source>
<translation>online</translation>
</message>
<message>
<location filename="../src/callwindow.cpp" line="+1"/>
<source>reverse</source>
<translation>reverse</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="-2"/>
<source>seen %1</source>
<translation>seen %1</translation>
</message>
<message>
<location filename="../src/videoplayer_engine.cpp" line="+107"/>
<source>sws init failed</source>
<translation>sws init failed</translation>
</message>
<message>
<location filename="../src/invite_link.cpp" line="+107"/>
<source>truncated at addr %1 of block</source>
<translation>truncated at addr %1 of block</translation>
</message>
<message>
<location line="-61"/>
<source>truncated at channel_id</source>
<translation>truncated at channel_id</translation>
</message>
<message>
<location line="+11"/>
<source>truncated at join_key</source>
<translation>truncated at join_key</translation>
</message>
<message>
<location line="-27"/>
<source>truncated at pass_len</source>
<translation>truncated at pass_len</translation>
</message>
<message>
<location line="+6"/>
<source>truncated at password</source>
<translation>truncated at password</translation>
</message>
<message>
<location line="+57"/>
<source>truncated at pubkey</source>
<translation>truncated at pubkey</translation>
</message>
<message>
<location line="-25"/>
<source>truncated at reality</source>
<translation>truncated at reality</translation>
</message>
<message>
<location line="+2"/>
<source>truncated at reality params</source>
<translation>truncated at reality params</translation>
</message>
<message>
<location line="+6"/>
<source>truncated at reality server_name</source>
<translation>truncated at reality server_name</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="+531"/>
<source>uTun thread is not ready yet. Please wait and try again.</source>
<translation>uTun thread is not ready yet. Please wait and try again.</translation>
</message>
<message>
<location filename="../src/invite_link.cpp" line="-54"/>
<source>unsupported version 0x%1</source>
<translation>unsupported version 0x%1</translation>
</message>
<message>
<location filename="../src/main.cpp" line="+130"/>
<source>vibechat is already running.</source>
<translation>vibechat is already running.</translation>
</message>
<message>
<location filename="../src/videoplayer_engine.cpp" line="-17"/>
<source>video decoder open failed</source>
<translation>video decoder open failed</translation>
</message>
<message>
<location line="+77"/>
<source>video unavailable (built without FFmpeg)</source>
<translation>video unavailable (built without FFmpeg)</translation>
</message>
<message>
<location filename="../src/accountlist.cpp" line="+14"/>
<source>── Addresses ──</source>
<translation>── Addresses ──</translation>
</message>
<message>
<location line="+28"/>
<source>── Connections ──</source>
<translation>── Connections ──</translation>
</message>
<message>
<location line="-15"/>
<source>── Listen ──</source>
<translation>── Listen ──</translation>
</message>
<message>
<location filename="../src/messagelist.cpp" line="+66"/>
<source>🎙 %1 is speaking</source>
<translation>🎙 %1 is speaking</translation>
</message>
<message>
<location filename="../src/inputbar.cpp" line="+324"/>
<source>🔴 Recording %1:%2</source>
<translation>🔴 Recording %1:%2</translation>
</message>
<message>
<location line="-12"/>
<source>🔴 Recording 0:00</source>
<translation>🔴 Recording 0:00</translation>
</message>
<message>
<source>Select a member to see storage quota</source>
<translation>Select a member to see storage quota</translation>
</message>
<message>
<source>Loading quota…</source>
<translation>Loading quota…</translation>
</message>
<message>
<source>Quota unavailable</source>
<translation>Quota unavailable</translation>
</message>
<message>
<source>Storage: %1 used / %2 total</source>
<translation>Storage: %1 used / %2 total</translation>
</message>
<message>
<source> · Reserved for uploads: %1</source>
<translation> · Reserved for uploads: %1</translation>
</message>
<message>
<source>Used: %1 bytes
Limit: %2 bytes
Reserved: %3 bytes
Files: %4
Directories: %5</source>
<translation>Used: %1 bytes
Limit: %2 bytes
Reserved: %3 bytes
Files: %4
Directories: %5</translation>
</message>
<message>
<source> · Files: %1 · Directories: %2</source>
<translation> · Files: %1 · Directories: %2</translation>
</message>
<message>
<source>%1 bytes</source>
<translation>%1 bytes</translation>
</message>
<message><source>Upload avatar</source><translation>Upload avatar</translation></message>
<message><source>Remove avatar</source><translation>Remove avatar</translation></message>
<message><source>Avatar:</source><translation>Avatar:</translation></message>
<message><source>No avatar</source><translation>No avatar</translation></message>
<message><source>Choose avatar</source><translation>Choose avatar</translation></message>
<message><source>Images (*.png *.jpg *.jpeg *.webp)</source><translation>Images (*.png *.jpg *.jpeg *.webp)</translation></message>
<message><source>Avatar changes apply immediately in channels with the selected storage server.</source><translation>Avatar changes apply immediately in channels with the selected storage server.</translation></message>
<message><source>Cannot open avatar cache</source><translation>Cannot open avatar cache</translation></message>
<message><source>Preparing avatar…</source><translation>Preparing avatar…</translation></message>
<message><source>Uploading avatar…</source><translation>Uploading avatar…</translation></message>
<message><source>Cannot prepare avatar: %1</source><translation>Cannot prepare avatar: %1</translation></message>
<message><source>Avatar upload failed: %1</source><translation>Avatar upload failed: %1</translation></message>
<message><source>Avatar updated</source><translation>Avatar updated</translation></message>
<message><source>Upload group avatar</source><translation>Upload group avatar</translation></message>
<message><source>Remove group avatar</source><translation>Remove group avatar</translation></message>
<message><source>Group avatar: up to 16 KiB. Changes apply immediately and require the group key.</source><translation>Group avatar: up to 16 KiB. Changes apply immediately and require the group key.</translation></message>
<message><source>Preparing group avatar…</source><translation>Preparing group avatar…</translation></message>
<message><source>Saving group avatar…</source><translation>Saving group avatar…</translation></message>
<message><source>Cannot update group avatar</source><translation>Cannot update group avatar</translation></message>
<message><source>Group avatar updated</source><translation>Group avatar updated</translation></message>
<message><source>Chat is stopped</source><translation>Chat is stopped</translation></message>
<message><source>Drop a file to attach</source><translation>Drop a file to attach</translation></message>
<message><source>Drop one file at a time.</source><translation>Drop one file at a time.</translation></message>
<message><source>Only local files can be attached.</source><translation>Only local files can be attached.</translation></message>
<message><source>Attachment cancelled: the chat changed or attachments are unavailable.</source><translation>Attachment cancelled: the chat changed or attachments are unavailable.</translation></message>
<message><source>Select an existing, readable file.</source><translation>Select an existing, readable file.</translation></message>
<message><source>Cannot attach an empty file.</source><translation>Cannot attach an empty file.</translation></message>
<message><source>Cannot create the attachment directory.</source><translation>Cannot create the attachment directory.</translation></message>
<message><source>Create poll</source><translation>Create poll</translation></message>
<message><source>Question</source><translation>Question</translation></message>
<message><source>One option per line</source><translation>One option per line</translation></message>
<message><source>Single choice</source><translation>Single choice</translation></message>
<message><source>Multiple choices</source><translation>Multiple choices</translation></message>
<message><source>Allow a custom answer</source><translation>Allow a custom answer</translation></message>
<message><source>Your answer</source><translation>Your answer</translation></message>
<message><source>Vote / results</source><translation>Vote / results</translation></message>
<message><source>Withdraw vote</source><translation>Withdraw vote</translation></message>
<message><source>Participants</source><translation>Participants</translation></message>
<message><source>React</source><translation>React</translation></message>
<message><source>Clear reactions</source><translation>Clear reactions</translation></message>
<message><source>Invalid poll</source><translation>Invalid poll</translation></message>
<message><source>Enter a question and distinct options within the size limit.</source><translation>Enter a question and distinct options within the size limit.</translation></message>
<message><source>Enter a shorter nonempty answer.</source><translation>Enter a shorter nonempty answer.</translation></message>
<message><source>Polls and reactions</source><translation>Polls and reactions</translation></message>
<message><source>Answer violates poll rules</source><translation>Answer violates poll rules</translation></message>
<message><source>Too many reactions</source><translation>Too many reactions</translation></message>
<message><source>Message is not available</source><translation>Message is not available</translation></message>
<message><source>Invalid poll or publication failed</source><translation>Invalid poll or publication failed</translation></message>
<message><source>Cannot save state</source><translation>Cannot save state</translation></message>
<message><source>Mute this member in radio</source><translation>Mute this member in radio</translation></message>
<message><source>Radio: silent</source><translation>Radio: silent</translation></message>
<message><source>Radio: speaking</source><translation>Radio: speaking</translation></message>
<message><source>Radio: muted</source><translation>Radio: muted</translation></message>
<message><source>Listen to this member in radio</source><translation>Listen to this member in radio</translation></message>
<message><source>Cannot change radio listening setting</source><translation>Cannot change radio listening setting</translation></message>
<message><source>New message from %1</source><translation>New message from %1</translation></message>
<message><source>Reply</source><translation>Reply</translation></message>
<message><source>Cancel reply</source><translation>Cancel reply</translation></message>
<message><source>Original message is not available yet</source><translation>Original message is not available yet</translation></message>
<message><source>Could not send reply. Please try again.</source><translation>Could not send reply. Please try again.</translation></message>
<message><source>Voice message</source><translation>Voice message</translation></message>
<message>
<source>Level</source>
<translation>Level</translation>
</message>
<message>
<source>By signal level</source>
<translation>By signal level</translation>
</message>
<message>
<source>Automatic transmission:</source>
<translation>Automatic transmission:</translation>
</message>
<message>
<source>Microphone level:</source>
<translation>Microphone level:</translation>
</message>
<message>
<source>Start threshold (orange):</source>
<translation>Start threshold (orange):</translation>
</message>
<message>
<source>Stop threshold (blue):</source>
<translation>Stop threshold (blue):</translation>
</message>
<message>
<source>The stop threshold must be lower than the start threshold</source>
<translation>The stop threshold must be lower than the start threshold</translation>
</message>
<message>
<source>Enable radio to measure the microphone level</source>
<translation>Enable radio to measure the microphone level</translation>
</message>
<message>
<source>Microphone level unavailable</source>
<translation>Microphone level unavailable</translation>
</message>
<message>
<source>Current level: %1 dBFS</source>
<translation>Current level: %1 dBFS</translation>
</message>
<message>
<source>Automatic transmission unavailable</source>
<translation>Automatic transmission unavailable</translation>
</message>
<message>
<source>Channel busy</source>
<translation>Channel busy</translation>
</message>
<message>
<source>Waiting for signal</source>
<translation>Waiting for signal</translation>
</message>
<message>
<source>Enable automatic transmission using the radio panel button. Both modes include 0.6 s of prebuffer. Signal level is measured after echo cancellation, before compression. Start requires 40 ms above the start threshold; transmission ends after the configured silence below the stop threshold. The VAD compressor has a separate maximum gain.</source>
<translation>Enable automatic transmission using the radio panel button. Both modes include 0.6 s of prebuffer. Signal level is measured after echo cancellation, before compression. Start requires 40 ms above the start threshold; transmission ends after the configured silence below the stop threshold. The VAD compressor has a separate maximum gain.</translation>
</message>
</context>
</TS>