From 1b309817899e23933eaf35fe4c9f328b412d59d9 Mon Sep 17 00:00:00 2001 From: sq5bpf Date: Wed, 21 Jun 2023 14:17:19 +0200 Subject: [PATCH 1/5] Add Quansheng UV-K5 driver This work was all done by @sq5bpf and is exactly like the last commit authored by him, which was 4d902e0 in PR 667. I just squashed this, rebased, and fixed the conflicts (all in chirp/locale). Fixes #10478 --- chirp/drivers/uvk5.py | 2032 +++++++++++++++++ chirp/locale/de.po | 139 +- chirp/locale/el.po | 139 +- chirp/locale/en_US.po | 139 +- chirp/locale/es.po | 153 +- chirp/locale/fr.po | 139 +- chirp/locale/hu.po | 139 +- chirp/locale/it.po | 139 +- chirp/locale/nl.po | 139 +- chirp/locale/pl.po | 139 +- chirp/locale/pt_BR.po | 139 +- chirp/locale/ru.po | 139 +- chirp/locale/tr_TR.po | 153 +- chirp/locale/uk_UA.po | 139 +- chirp/locale/zh_CN.po | 139 +- tests/Python3_Driver_Testing.md | 8 +- tests/images/Quansheng_UV-K5.img | Bin 0 -> 8361 bytes ...sheng_UV-K5_modified_firmware_nolimits.img | Bin 0 -> 8361 bytes tests/py3_driver_testers.txt | 2 + 19 files changed, 3187 insertions(+), 829 deletions(-) create mode 100644 chirp/drivers/uvk5.py create mode 100644 tests/images/Quansheng_UV-K5.img create mode 100644 tests/images/Quansheng_UV-K5_modified_firmware_nolimits.img diff --git a/chirp/drivers/uvk5.py b/chirp/drivers/uvk5.py new file mode 100644 index 000000000..99a6327d5 --- /dev/null +++ b/chirp/drivers/uvk5.py @@ -0,0 +1,2032 @@ +# Quansheng UV-K5 driver (c) 2023 Jacek Lipkowski +# +# based on template.py Copyright 2012 Dan Smith +# +# +# This is a preliminary version of a driver for the UV-K5 +# It is based on my reverse engineering effort described here: +# https://github.com/sq5bpf/uvk5-reverse-engineering +# +# Warning: this driver is experimental, it may brick your radio, +# eat your lunch and mess up your configuration. +# +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +import struct +import logging + +from chirp import chirp_common, directory, bitwise, memmap, errors, util +from chirp.settings import RadioSetting, RadioSettingGroup, \ + RadioSettingValueBoolean, RadioSettingValueList, \ + RadioSettingValueInteger, RadioSettingValueString, \ + RadioSettings + +LOG = logging.getLogger(__name__) + +# Show the obfuscated version of commands. Not needed normally, but +# might be useful for someone who is debugging a similar radio +DEBUG_SHOW_OBFUSCATED_COMMANDS = False + +# Show the memory being written/received. Not needed normally, because +# this is the same information as in the packet hexdumps, but +# might be useful for someone debugging some obscure memory issue +DEBUG_SHOW_MEMORY_ACTIONS = False + +# TODO: remove the driver version when it's in mainline chirp +DRIVER_VERSION = "Quansheng UV-K5 driver v20230626 (c) Jacek Lipkowski SQ5BPF" + +MEM_FORMAT = """ +#seekto 0x0000; +struct { + ul32 freq; + ul32 offset; + u8 rxcode; + u8 txcode; + + u8 unknown1:2, + txcodeflag:2, + unknown2:2, + rxcodeflag:2; + + //u8 flags1; + u8 flags1_unknown7:1, + flags1_unknown6:1, + flags1_unknown5:1, + enable_am:1, + flags1_unknown3:1, + is_in_scanlist:1, + shift:2; + + //u8 flags2; + u8 flags2_unknown7:1, + flags2_unknown6:1, + flags2_unknown5:1, + bclo:1, + txpower:2, + bandwidth:1, + freq_reverse:1; + + //u8 dtmf_flags; + u8 dtmf_flags_unknown7:1, + dtmf_flags_unknown6:1, + dtmf_flags_unknown5:1, + dtmf_flags_unknown4:1, + dtmf_flags_unknown3:1, + dtmf_pttid:2, + dtmf_decode:1; + + + u8 step; + u8 scrambler; +} channel[214]; + +#seekto 0xd60; +struct { +u8 is_scanlist1:1, +is_scanlist2:1, +unknown1:1, +unknown2:1, +is_free:1, +band:3; +} channel_attributes[200]; + +#seekto 0xe40; +ul16 fmfreq[20]; + +#seekto 0xe70; +u8 call_channel; +u8 squelch; +u8 max_talk_time; +u8 noaa_autoscan; +u8 key_lock; +u8 vox_switch; +u8 vox_level; +u8 mic_gain; +u8 unknown3; +u8 channel_display_mode; +u8 crossband; +u8 battery_save; +u8 dual_watch; +u8 backlight_auto_mode; +u8 tail_note_elimination; +u8 vfo_open; + +#seekto 0xe90; +u8 beep_control; +u8 key1_shortpress_action; +u8 key1_longpress_action; +u8 key2_shortpress_action; +u8 key2_longpress_action; +u8 scan_resume_mode; +u8 auto_keypad_lock; +u8 power_on_dispmode; +u8 password[4]; + +#seekto 0xea0; +u8 keypad_tone; +u8 language; + +#seekto 0xea8; +u8 alarm_mode; +u8 reminding_of_end_talk; +u8 repeater_tail_elimination; + +#seekto 0xeb0; +char logo_line1[16]; +char logo_line2[16]; + +#seekto 0xed0; +struct { +u8 side_tone; +char separate_code; +char group_call_code; +u8 decode_response; +u8 auto_reset_time; +u8 preload_time; +u8 first_code_persist_time; +u8 hash_persist_time; +u8 code_persist_time; +u8 code_interval_time; +u8 permit_remote_kill; +} dtmf_settings; + +#seekto 0xee0; +struct { +char dtmf_local_code[3]; +char unused1[5]; +char kill_code[5]; +char unused2[3]; +char revive_code[5]; +char unused3[3]; +char dtmf_up_code[16]; +char dtmf_down_code[16]; +} dtmf_settings_numbers; + +#seekto 0xf18; +u8 scanlist_default; +u8 scanlist1_priority_scan; +u8 scanlist1_priority_ch1; +u8 scanlist1_priority_ch2; +u8 scanlist2_priority_scan; +u8 scanlist2_priority_ch1; +u8 scanlist2_priority_ch2; +u8 scanlist_unknown_0xff; + + +#seekto 0xf40; +u8 int_flock; +u8 int_350tx; +u8 int_unknown1; +u8 int_200tx; +u8 int_500tx; +u8 int_350en; +u8 int_scren; + +#seekto 0xf50; +struct { +char name[16]; +} channelname[200]; + +#seekto 0x1c00; +struct { +char name[8]; +char number[3]; +char unused_00[5]; +} dtmfcontact[16]; +""" +# bits that we will save from the channel structure (mostly unknown) +SAVE_MASK_0A = 0b11001100 +SAVE_MASK_0B = 0b11101100 +SAVE_MASK_0C = 0b11100000 +SAVE_MASK_0D = 0b11111000 +SAVE_MASK_0E = 0b11110001 +SAVE_MASK_0F = 0b11110000 + +# flags1 +FLAGS1_OFFSET_NONE = 0b00 +FLAGS1_OFFSET_MINUS = 0b10 +FLAGS1_OFFSET_PLUS = 0b01 + +POWER_HIGH = 0b10 +POWER_MEDIUM = 0b01 +POWER_LOW = 0b00 + +# dtmf_flags +PTTID_LIST = ["off", "BOT", "EOT", "BOTH"] + +# power +UVK5_POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=1.50), + chirp_common.PowerLevel("Med", watts=3.00), + chirp_common.PowerLevel("High", watts=5.00), + ] + +# scrambler +SCRAMBLER_LIST = ["off", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] + +# channel display mode +CHANNELDISP_LIST = ["Frequency", "Channel No", "Channel Name"] +# battery save +BATSAVE_LIST = ["OFF", "1:1", "1:2", "1:3", "1:4"] + +# Backlight auto mode +BACKLIGHT_LIST = ["Off", "1s", "2s", "3s", "4s", "5s"] + +# Crossband receiving/transmitting +CROSSBAND_LIST = ["Off", "Band A", "Band B"] +DUALWATCH_LIST = CROSSBAND_LIST + +# steps +STEPS = [2.5, 5.0, 6.25, 10.0, 12.5, 25.0, 8.33] + +# ctcss/dcs codes +TMODES = ["", "Tone", "DTCS", "DTCS"] +TONE_NONE = 0 +TONE_CTCSS = 1 +TONE_DCS = 2 +TONE_RDCS = 3 + + +CTCSS_TONES = [ + 67.0, 69.3, 71.9, 74.4, 77.0, 79.7, 82.5, 85.4, + 88.5, 91.5, 94.8, 97.4, 100.0, 103.5, 107.2, 110.9, + 114.8, 118.8, 123.0, 127.3, 131.8, 136.5, 141.3, 146.2, + 151.4, 156.7, 159.8, 162.2, 165.5, 167.9, 171.3, 173.8, + 177.3, 179.9, 183.5, 186.2, 189.9, 192.8, 196.6, 199.5, + 203.5, 206.5, 210.7, 218.1, 225.7, 229.1, 233.6, 241.8, + 250.3, 254.1 +] + +# lifted from ft4.py +DTCS_CODES = [ + 23, 25, 26, 31, 32, 36, 43, 47, 51, 53, 54, + 65, 71, 72, 73, 74, 114, 115, 116, 122, 125, 131, + 132, 134, 143, 145, 152, 155, 156, 162, 165, 172, 174, + 205, 212, 223, 225, 226, 243, 244, 245, 246, 251, 252, + 255, 261, 263, 265, 266, 271, 274, 306, 311, 315, 325, + 331, 332, 343, 346, 351, 356, 364, 365, 371, 411, 412, + 413, 423, 431, 432, 445, 446, 452, 454, 455, 462, 464, + 465, 466, 503, 506, 516, 523, 526, 532, 546, 565, 606, + 612, 624, 627, 631, 632, 654, 662, 664, 703, 712, 723, + 731, 732, 734, 743, 754 +] + +FLOCK_LIST = ["Off", "FCC", "CE", "GB", "430", "438"] + +SCANRESUME_LIST = ["TO: Resume after 5 seconds", + "CO: Resume after signal dissapears", + "SE: Stop scanning after receiving a signal"] + +WELCOME_LIST = ["Full Screen", "Welcome Info", "Voltage"] +KEYPADTONE_LIST = ["Off", "Chinese", "English"] +LANGUAGE_LIST = ["Chinese", "English"] +ALARMMODE_LIST = ["SITE", "TONE"] +REMENDOFTALK_LIST = ["Off", "ROGER", "MDC"] +RTE_LIST = ["Off", "100ms", "200ms", "300ms", "400ms", + "500ms", "600ms", "700ms", "800ms", "900ms"] + +MEM_SIZE = 0x2000 # size of all memory +PROG_SIZE = 0x1d00 # size of the memory that we will write +MEM_BLOCK = 0x80 # largest block of memory that we can reliably write + +# fm radio supported frequencies +FMMIN = 76.0 +FMMAX = 108.0 + +# bands supported by the UV-K5 +BANDS = { + 0: [50.0, 76.0], + 1: [108.0, 135.9999], + 2: [136.0, 199.9990], + 3: [200.0, 299.9999], + 4: [350.0, 399.9999], + 5: [400.0, 469.9999], + 6: [470.0, 600.0] + } + +# for radios with modified firmware: +BANDS_NOLIMITS = { + 0: [18.0, 76.0], + 1: [108.0, 135.9999], + 2: [136.0, 199.9990], + 3: [200.0, 299.9999], + 4: [350.0, 399.9999], + 5: [400.0, 469.9999], + 6: [470.0, 1300.0] + } + +SPECIALS = { + "F1(50M-76M)A": 200, + "F1(50M-76M)B": 201, + "F2(108M-136M)A": 202, + "F2(108M-136M)B": 203, + "F3(136M-174M)A": 204, + "F3(136M-174M)B": 205, + "F4(174M-350M)A": 206, + "F4(174M-350M)B": 207, + "F5(350M-400M)A": 208, + "F5(350M-400M)B": 209, + "F6(400M-470M)A": 210, + "F6(400M-470M)B": 211, + "F7(470M-600M)A": 212, + "F7(470M-600M)B": 213 + } + +VFO_CHANNEL_NAMES = ["F1(50M-76M)A", "F1(50M-76M)B", + "F2(108M-136M)A", "F2(108M-136M)B", + "F3(136M-174M)A", "F3(136M-174M)B", + "F4(174M-350M)A", "F4(174M-350M)B", + "F5(350M-400M)A", "F5(350M-400M)B", + "F6(400M-470M)A", "F6(400M-470M)B", + "F7(470M-600M)A", "F7(470M-600M)B"] + +SCANLIST_LIST = ["None", "1", "2", "1+2"] + +DTMF_CHARS = "0123456789ABCD*# " +DTMF_CHARS_ID = "0123456789ABCDabcd" +DTMF_CHARS_KILL = "0123456789ABCDabcd" +DTMF_CHARS_UPDOWN = "0123456789ABCDabcd#* " +DTMF_CODE_CHARS = "ABCD*# " +DTMF_DECODE_RESPONSE_LIST = ["None", "Ring", "Reply", "Both"] + +KEYACTIONS_LIST = ["None", "Flashlight on/off", "Power select", + "Monitor", "Scan on/off", "VOX on/off", + "Alarm on/off", "FM radio on/off", "Transmit 1750Hz"] + + +# the communication is obfuscated using this fine mechanism +def xorarr(data: bytes): + tbl = [22, 108, 20, 230, 46, 145, 13, 64, 33, 53, 213, 64, 19, 3, 233, 128] + x = b"" + r = 0 + for byte in data: + x += bytes([byte ^ tbl[r]]) + r = (r+1) % len(tbl) + return x + + +# if this crc was used for communication to AND from the radio, then it +# would be a measure to increase reliability. +# but it's only used towards the radio, so it's for further obfuscation +def calculate_crc16_xmodem(data: bytes): + poly = 0x1021 + crc = 0x0 + for byte in data: + crc = crc ^ (byte << 8) + for i in range(8): + crc = crc << 1 + if (crc & 0x10000): + crc = (crc ^ poly) & 0xFFFF + return crc & 0xFFFF + + +def _send_command(serport, data: bytes): + """Send a command to UV-K5 radio""" + LOG.debug("Sending command (unobfuscated) len=0x%4.4x:\n%s" % + (len(data), util.hexprint(data))) + + crc = calculate_crc16_xmodem(data) + data2 = data + struct.pack("HBB", 0xabcd, len(data), 0) + \ + xorarr(data2) + \ + struct.pack(">H", 0xdcba) + if DEBUG_SHOW_OBFUSCATED_COMMANDS: + LOG.debug("Sending command (obfuscated):\n%s" % util.hexprint(command)) + try: + result = serport.write(command) + except Exception: + raise errors.RadioError("Error writing data to radio") + return result + + +def _receive_reply(serport): + header = serport.read(4) + if len(header) != 4: + LOG.warning("Header short read: [%s] len=%i" % + (util.hexprint(header), len(header))) + raise errors.RadioError("Header short read") + if header[0] != 0xAB or header[1] != 0xCD or header[3] != 0x00: + LOG.warning("Bad response header: %s len=%i" % + (util.hexprint(header), len(header))) + raise errors.RadioError("Bad response header") + + cmd = serport.read(int(header[2])) + if len(cmd) != int(header[2]): + LOG.warning("Body short read: [%s] len=%i" % + (util.hexprint(cmd), len(cmd))) + raise errors.RadioError("Command body short read") + + footer = serport.read(4) + + if len(footer) != 4: + LOG.warning("Footer short read: [%s] len=%i" % + (util.hexprint(footer), len(footer))) + raise errors.RadioError("Footer short read") + + if footer[2] != 0xDC or footer[3] != 0xBA: + LOG.debug( + "Reply before bad response footer (obfuscated)" + "len=0x%4.4x:\n%s" % (len(cmd), util.hexprint(cmd))) + LOG.warning("Bad response footer: %s len=%i" % + (util.hexprint(footer), len(footer))) + raise errors.RadioError("Bad response footer") + + if DEBUG_SHOW_OBFUSCATED_COMMANDS: + LOG.debug("Received reply (obfuscated) len=0x%4.4x:\n%s" % + (len(cmd), util.hexprint(cmd))) + + cmd2 = xorarr(cmd) + + LOG.debug("Received reply (unobfuscated) len=0x%4.4x:\n%s" % + (len(cmd2), util.hexprint(cmd2))) + + return cmd2 + + +def _getstring(data: bytes, begin, maxlen): + tmplen = min(maxlen+1, len(data)) + s = [data[i] for i in range(begin, tmplen)] + for key, val in enumerate(s): + if val < ord(' ') or val > ord('~'): + break + return ''.join(chr(x) for x in s[0:key]) + + +def _sayhello(serport): + hellopacket = b"\x14\x05\x04\x00\x6a\x39\x57\x64" + + tries = 5 + while True: + LOG.debug("Sending hello packet") + _send_command(serport, hellopacket) + o = _receive_reply(serport) + if (o): + break + tries -= 1 + if tries == 0: + LOG.warning("Failed to initialise radio") + raise errors.RadioError("Failed to initialize radio") + firmware = _getstring(o, 4, 16) + LOG.info("Found firmware: %s" % firmware) + return firmware + + +def _readmem(serport, offset, length): + LOG.debug("Sending readmem offset=0x%4.4x len=0x%4.4x" % (offset, length)) + + readmem = b"\x1b\x05\x08\x00" + \ + struct.pack("> 8) & 0xff): + return True + else: + LOG.warning("Bad data from writemem") + raise errors.RadioError("Bad response to writemem") + + +def _resetradio(serport): + resetpacket = b"\xdd\x05\x00\x00" + _send_command(serport, resetpacket) + + +def do_download(radio): + serport = radio.pipe + serport.timeout = 0.5 + status = chirp_common.Status() + status.cur = 0 + status.max = MEM_SIZE + status.msg = "Downloading from radio" + radio.status_fn(status) + + eeprom = b"" + f = _sayhello(serport) + if f: + radio.FIRMWARE_VERSION = f + else: + return False + + addr = 0 + while addr < MEM_SIZE: + o = _readmem(serport, addr, MEM_BLOCK) + status.cur = addr + radio.status_fn(status) + + if o and len(o) == MEM_BLOCK: + eeprom += o + addr += MEM_BLOCK + else: + raise errors.RadioError("Memory download incomplete") + + return memmap.MemoryMapBytes(eeprom) + + +def do_upload(radio): + serport = radio.pipe + serport.timeout = 0.5 + status = chirp_common.Status() + status.cur = 0 + status.max = PROG_SIZE + status.msg = "Uploading to radio" + radio.status_fn(status) + + f = _sayhello(serport) + if f: + radio.FIRMWARE_VERSION = f + else: + return False + + addr = 0 + while addr < PROG_SIZE: + o = radio.get_mmap()[addr:addr+MEM_BLOCK] + _writemem(serport, o, addr) + status.cur = addr + radio.status_fn(status) + if o: + addr += MEM_BLOCK + else: + raise errors.RadioError("Memory upload incomplete") + status.msg = "Uploaded OK" + + _resetradio(serport) + + return True + + +def _find_band(self, hz): + mhz = hz/1000000.0 + if self.FIRMWARE_NOLIMITS: + B = BANDS_NOLIMITS + else: + B = BANDS + + # currently the hacked firmware sets band=1 below 50MHz + if self.FIRMWARE_NOLIMITS and mhz < 50.0: + return 1 + + for a in B: + if mhz >= B[a][0] and mhz <= B[a][1]: + return a + return False + + +@directory.register +class UVK5Radio(chirp_common.CloneModeRadio): + """Quansheng UV-K5""" + VENDOR = "Quansheng" + MODEL = "UV-K5" + BAUD_RATE = 38400 + NEEDS_COMPAT_SERIAL = False + FIRMWARE_VERSION = "" + FIRMWARE_NOLIMITS = False + + def get_prompts(x=None): + rp = chirp_common.RadioPrompts() + rp.experimental = \ + ('This is an experimental driver for the Quansheng UV-K5. ' + 'It may harm your radio, or worse. Use at your own risk.\n\n' + 'Before attempting to do any changes please download' + 'the memory image from the radio with chirp ' + 'and keep it. This can be later used to recover the ' + 'original settings. \n\n' + 'some details are not yet implemented') + rp.pre_download = _( + "1. Turn radio on.\n" + "2. Connect cable to mic/spkr connector.\n" + "3. Make sure connector is firmly connected.\n" + "4. Click OK to download image from device.\n\n" + "It will may not work if you turn on the radio " + "with the cable already attached\n") + rp.pre_upload = _( + "1. Turn radio on.\n" + "2. Connect cable to mic/spkr connector.\n" + "3. Make sure connector is firmly connected.\n" + "4. Click OK to upload the image to device.\n\n" + "It will may not work if you turn on the radio " + "with the cable already attached") + return rp + + # Return information about this radio's features, including + # how many memories it has, what bands it supports, etc + def get_features(self): + rf = chirp_common.RadioFeatures() + rf.has_bank = False + rf.valid_dtcs_codes = DTCS_CODES + rf.has_rx_dtcs = True + rf.has_ctone = True + rf.has_settings = True + rf.has_comment = False + rf.valid_name_length = 10 + rf.valid_power_levels = UVK5_POWER_LEVELS + rf.valid_special_chans = list(SPECIALS.keys()) + + # hack so we can input any frequency, + # the 0.1 and 0.01 steps don't work unfortunately + rf.valid_tuning_steps = [0.01, 0.1, 1.0] + STEPS + + rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] + rf.valid_cross_modes = ["Tone->Tone", "Tone->DTCS", "DTCS->Tone", + "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS"] + + rf.valid_characters = chirp_common.CHARSET_ASCII + rf.valid_modes = ["FM", "NFM", "AM", "NAM"] + rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] + + rf.valid_skips = [""] + + # This radio supports memories 1-200, 201-214 are the VFO memories + rf.memory_bounds = (1, 200) + + # This is what the BK4819 chip supports + # Will leave it in a comment, might be useful someday + # rf.valid_bands = [(18000000, 620000000), + # (840000000, 1300000000) + # ] + rf.valid_bands = [] + for a in BANDS: + rf.valid_bands.append( + (int(BANDS[a][0]*1000000), int(BANDS[a][1]*1000000))) + return rf + + # Do a download of the radio from the serial port + def sync_in(self): + self._mmap = do_download(self) + self.process_mmap() + + # Do an upload of the radio to the serial port + def sync_out(self): + do_upload(self) + + # Convert the raw byte array into a memory object structure + def process_mmap(self): + self._memobj = bitwise.parse(MEM_FORMAT, self._mmap) + + # Return a raw representation of the memory object, which + # is very helpful for development + def get_raw_memory(self, number): + return repr(self._memobj.channel[number-1]) + + def validate_memory(self, mem): + msgs = super().validate_memory(mem) + + # find tx frequency + if mem.duplex == '-': + txfreq = mem.freq - mem.offset + elif mem.duplex == '+': + txfreq = mem.freq + mem.offset + else: + txfreq = mem.freq + + # find band + band = _find_band(self, txfreq) + if band is False: + msg = "Transmit frequency %.4fMHz is not supported by this radio" \ + % (txfreq/1000000.0) + msgs.append(chirp_common.ValidationWarning(msg)) + + band = _find_band(self, mem.freq) + if band is False: + msg = "The frequency %.4fMHz is not supported by this radio" \ + % (mem.freq/1000000.0) + msgs.append(chirp_common.ValidationWarning(msg)) + + return msgs + + def _set_tone(self, mem, _mem): + ((txmode, txtone, txpol), + (rxmode, rxtone, rxpol)) = chirp_common.split_tone_encode(mem) + + if txmode == "Tone": + txtoval = CTCSS_TONES.index(txtone) + txmoval = 0b01 + elif txmode == "DTCS": + txmoval = txpol == "R" and 0b11 or 0b10 + txtoval = DTCS_CODES.index(txtone) + else: + txmoval = 0 + txtoval = 0 + + if rxmode == "Tone": + rxtoval = CTCSS_TONES.index(rxtone) + rxmoval = 0b01 + elif rxmode == "DTCS": + rxmoval = rxpol == "R" and 0b11 or 0b10 + rxtoval = DTCS_CODES.index(rxtone) + else: + rxmoval = 0 + rxtoval = 0 + + _mem.rxcodeflag = rxmoval + _mem.txcodeflag = txmoval + _mem.unknown1 = 0 + _mem.unknown2 = 0 + _mem.rxcode = rxtoval + _mem.txcode = txtoval + + def _get_tone(self, mem, _mem): + rxtype = _mem.rxcodeflag + txtype = _mem.txcodeflag + rx_tmode = TMODES[rxtype] + tx_tmode = TMODES[txtype] + + rx_tone = tx_tone = None + + if tx_tmode == "Tone": + if _mem.txcode < len(CTCSS_TONES): + tx_tone = CTCSS_TONES[_mem.txcode] + else: + tx_tone = 0 + tx_tmode = "" + elif tx_tmode == "DTCS": + if _mem.txcode < len(DTCS_CODES): + tx_tone = DTCS_CODES[_mem.txcode] + else: + tx_tone = 0 + tx_tmode = "" + + if rx_tmode == "Tone": + if _mem.rxcode < len(CTCSS_TONES): + rx_tone = CTCSS_TONES[_mem.rxcode] + else: + rx_tone = 0 + rx_tmode = "" + elif rx_tmode == "DTCS": + if _mem.rxcode < len(DTCS_CODES): + rx_tone = DTCS_CODES[_mem.rxcode] + else: + rx_tone = 0 + rx_tmode = "" + + tx_pol = txtype == 0x03 and "R" or "N" + rx_pol = rxtype == 0x03 and "R" or "N" + + chirp_common.split_tone_decode(mem, (tx_tmode, tx_tone, tx_pol), + (rx_tmode, rx_tone, rx_pol)) + + # Extract a high-level memory object from the low-level memory map + # This is called to populate a memory in the UI + def get_memory(self, number2): + + mem = chirp_common.Memory() + + if isinstance(number2, str): + number = SPECIALS[number2] + mem.extd_number = number2 + else: + number = number2 - 1 + + mem.number = number + 1 + + _mem = self._memobj.channel[number] + + tmpcomment = "" + + is_empty = False + # We'll consider any blank (i.e. 0MHz frequency) to be empty + if (_mem.freq == 0xffffffff) or (_mem.freq == 0): + is_empty = True + + tmpscn = SCANLIST_LIST[0] + + # We'll also look at the channel attributes if a memory has them + if number < 200: + _mem3 = self._memobj.channel_attributes[number] + # free memory bit + if _mem3.is_free > 0: + is_empty = True + # scanlists + if _mem3.is_scanlist1 > 0 and _mem3.is_scanlist2 > 0: + tmpscn = SCANLIST_LIST[3] # "1+2" + elif _mem3.is_scanlist1 > 0: + tmpscn = SCANLIST_LIST[1] # "1" + elif _mem3.is_scanlist2 > 0: + tmpscn = SCANLIST_LIST[2] # "2" + + if is_empty: + mem.empty = True + # set some sane defaults: + mem.power = UVK5_POWER_LEVELS[2] + mem.extra = RadioSettingGroup("Extra", "extra") + rs = RadioSetting("bclo", "BCLO", RadioSettingValueBoolean(False)) + mem.extra.append(rs) + rs = RadioSetting("frev", "FreqRev", + RadioSettingValueBoolean(False)) + mem.extra.append(rs) + rs = RadioSetting("pttid", "PTTID", RadioSettingValueList( + PTTID_LIST, PTTID_LIST[0])) + mem.extra.append(rs) + rs = RadioSetting("dtmfdecode", "DTMF decode", + RadioSettingValueBoolean(False)) + mem.extra.append(rs) + rs = RadioSetting("scrambler", "Scrambler", RadioSettingValueList( + SCRAMBLER_LIST, SCRAMBLER_LIST[0])) + mem.extra.append(rs) + + rs = RadioSetting("scanlists", "Scanlists", RadioSettingValueList( + SCANLIST_LIST, SCANLIST_LIST[0])) + mem.extra.append(rs) + + # actually the step and duplex are overwritten by chirp based on + # bandplan. they are here to document sane defaults for IARU r1 + # mem.tuning_step = 25.0 + # mem.duplex = "off" + + return mem + + if number > 199: + mem.name = VFO_CHANNEL_NAMES[number-200] + mem.immutable = ["name", "scanlists"] + else: + _mem2 = self._memobj.channelname[number] + for char in _mem2.name: + if str(char) == "\xFF" or str(char) == "\x00": + break + mem.name += str(char) + mem.name = mem.name.rstrip() + + # Convert your low-level frequency to Hertz + mem.freq = int(_mem.freq)*10 + mem.offset = int(_mem.offset)*10 + + if (mem.offset == 0): + mem.duplex = '' + else: + if _mem.shift == FLAGS1_OFFSET_MINUS: + mem.duplex = '-' + elif _mem.shift == FLAGS1_OFFSET_PLUS: + mem.duplex = '+' + else: + mem.duplex = '' + + # tone data + self._get_tone(mem, _mem) + + # mode + if _mem.enable_am > 0: + if _mem.bandwidth > 0: + mem.mode = "NAM" + else: + mem.mode = "AM" + else: + if _mem.bandwidth > 0: + mem.mode = "NFM" + else: + mem.mode = "FM" + + # tuning step + tstep = _mem.step & 0x7 + if tstep < len(STEPS): + mem.tuning_step = STEPS[tstep] + else: + mem.tuning_step = 2.5 + + # power + if _mem.txpower == POWER_HIGH: + mem.power = UVK5_POWER_LEVELS[2] + elif _mem.txpower == POWER_MEDIUM: + mem.power = UVK5_POWER_LEVELS[1] + else: + mem.power = UVK5_POWER_LEVELS[0] + + # We'll consider any blank (i.e. 0MHz frequency) to be empty + if (_mem.freq == 0xffffffff) or (_mem.freq == 0): + mem.empty = True + else: + mem.empty = False + + mem.extra = RadioSettingGroup("Extra", "extra") + + # BCLO + is_bclo = bool(_mem.bclo > 0) + rs = RadioSetting("bclo", "BCLO", RadioSettingValueBoolean(is_bclo)) + mem.extra.append(rs) + tmpcomment += "BCLO:"+(is_bclo and "ON" or "off")+" " + + # Frequency reverse - whatever that means, don't see it in the manual + is_frev = bool(_mem.freq_reverse > 0) + rs = RadioSetting("frev", "FreqRev", RadioSettingValueBoolean(is_frev)) + mem.extra.append(rs) + tmpcomment += "FreqReverse:"+(is_frev and "ON" or "off")+" " + + # PTTID + pttid = _mem.dtmf_pttid + rs = RadioSetting("pttid", "PTTID", RadioSettingValueList( + PTTID_LIST, PTTID_LIST[pttid])) + mem.extra.append(rs) + tmpcomment += "PTTid:"+PTTID_LIST[pttid]+" " + + # DTMF DECODE + is_dtmf = bool(_mem.dtmf_decode > 0) + rs = RadioSetting("dtmfdecode", "DTMF decode", + RadioSettingValueBoolean(is_dtmf)) + mem.extra.append(rs) + tmpcomment += "DTMFdecode:"+(is_dtmf and "ON" or "off")+" " + + # Scrambler + if _mem.scrambler & 0x0f < len(SCRAMBLER_LIST): + enc = _mem.scrambler & 0x0f + else: + enc = 0 + + rs = RadioSetting("scrambler", "Scrambler", RadioSettingValueList( + SCRAMBLER_LIST, SCRAMBLER_LIST[enc])) + mem.extra.append(rs) + tmpcomment += "Scrambler:"+SCRAMBLER_LIST[enc]+" " + + rs = RadioSetting("scanlists", "Scanlists", RadioSettingValueList( + SCANLIST_LIST, tmpscn)) + mem.extra.append(rs) + + return mem + + def set_settings(self, settings): + _mem = self._memobj + for element in settings: + if not isinstance(element, RadioSetting): + self.set_settings(element) + continue + + # basic settings + + # call channel + if element.get_name() == "call_channel": + _mem.call_channel = int(element.value)-1 + + # squelch + if element.get_name() == "squelch": + _mem.squelch = int(element.value) + # TOT + if element.get_name() == "tot": + _mem.max_talk_time = int(element.value) + + # NOAA autoscan + if element.get_name() == "noaa_autoscan": + _mem.noaa_autoscan = element.value and 1 or 0 + + # VOX switch + if element.get_name() == "vox_switch": + _mem.vox_switch = element.value and 1 or 0 + + # vox level + if element.get_name() == "vox_level": + _mem.vox_level = int(element.value)-1 + + # mic gain + if element.get_name() == "mic_gain": + _mem.mic_gain = int(element.value) + + # Channel display mode + if element.get_name() == "channel_display_mode": + _mem.channel_display_mode = CHANNELDISP_LIST.index( + str(element.value)) + + # Crossband receiving/transmitting + if element.get_name() == "crossband": + _mem.crossband = CROSSBAND_LIST.index(str(element.value)) + + # Battery Save + if element.get_name() == "battery_save": + _mem.battery_save = BATSAVE_LIST.index(str(element.value)) + # Dual Watch + if element.get_name() == "dualwatch": + _mem.dual_watch = DUALWATCH_LIST.index(str(element.value)) + + # Backlight auto mode + if element.get_name() == "backlight_auto_mode": + _mem.backlight_auto_mode = \ + BACKLIGHT_LIST.index(str(element.value)) + + # Tail tone elimination + if element.get_name() == "tail_note_elimination": + _mem.tail_note_elimination = element.value and 1 or 0 + + # VFO Open + if element.get_name() == "vfo_open": + _mem.vfo_open = element.value and 1 or 0 + + # Beep control + if element.get_name() == "beep_control": + _mem.beep_control = element.value and 1 or 0 + + # Scan resume mode + if element.get_name() == "scan_resume_mode": + _mem.scan_resume_mode = SCANRESUME_LIST.index( + str(element.value)) + + # Keypad lock + if element.get_name() == "key_lock": + _mem.key_lock = element.value and 1 or 0 + + # Auto keypad lock + if element.get_name() == "auto_keypad_lock": + _mem.auto_keypad_lock = element.value and 1 or 0 + + # Power on display mode + if element.get_name() == "welcome_mode": + _mem.power_on_dispmode = WELCOME_LIST.index(str(element.value)) + + # Keypad Tone + if element.get_name() == "keypad_tone": + _mem.keypad_tone = KEYPADTONE_LIST.index(str(element.value)) + + # Language + if element.get_name() == "language": + _mem.language = LANGUAGE_LIST.index(str(element.value)) + + # Alarm mode + if element.get_name() == "alarm_mode": + _mem.alarm_mode = ALARMMODE_LIST.index(str(element.value)) + + # Reminding of end of talk + if element.get_name() == "reminding_of_end_talk": + _mem.reminding_of_end_talk = REMENDOFTALK_LIST.index( + str(element.value)) + + # Repeater tail tone elimination + if element.get_name() == "repeater_tail_elimination": + _mem.repeater_tail_elimination = RTE_LIST.index( + str(element.value)) + + # Logo string 1 + if element.get_name() == "logo1": + b = str(element.value).rstrip("\x20\xff\x00")+"\x00"*12 + _mem.logo_line1 = b[0:12]+"\x00\xff\xff\xff" + + # Logo string 2 + if element.get_name() == "logo2": + b = str(element.value).rstrip("\x20\xff\x00")+"\x00"*12 + _mem.logo_line2 = b[0:12]+"\x00\xff\xff\xff" + + # unlock settings + + # FLOCK + if element.get_name() == "flock": + _mem.int_flock = FLOCK_LIST.index(str(element.value)) + + # 350TX + if element.get_name() == "350tx": + _mem.int_350tx = element.value and 1 or 0 + + # 200TX + if element.get_name() == "200tx": + _mem.int_200tx = element.value and 1 or 0 + + # 500TX + if element.get_name() == "500tx": + _mem.int_500tx = element.value and 1 or 0 + + # 350EN + if element.get_name() == "350en": + _mem.int_350en = element.value and 1 or 0 + + # SCREN + if element.get_name() == "scren": + _mem.int_scren = element.value and 1 or 0 + + # fm radio + for i in range(1, 21): + freqname = "FM_" + str(i) + if element.get_name() == freqname: + val = str(element.value).strip() + try: + val2 = int(float(val)*10) + except Exception: + val2 = 0xffff + + if val2 < FMMIN*10 or val2 > FMMAX*10: + val2 = 0xffff +# raise errors.InvalidValueError( +# "FM radio frequency should be a value " +# "in the range %.1f - %.1f" % (FMMIN , FMMAX)) + _mem.fmfreq[i-1] = val2 + + # dtmf settings + if element.get_name() == "dtmf_side_tone": + _mem.dtmf_settings.side_tone = \ + element.value and 1 or 0 + + if element.get_name() == "dtmf_separate_code": + _mem.dtmf_settings.separate_code = str(element.value) + + if element.get_name() == "dtmf_group_call_code": + _mem.dtmf_settings.group_call_code = element.value + + if element.get_name() == "dtmf_decode_response": + _mem.dtmf_settings.decode_response = \ + DTMF_DECODE_RESPONSE_LIST.index(str(element.value)) + + if element.get_name() == "dtmf_auto_reset_time": + _mem.dtmf_settings.auto_reset_time = \ + int(int(element.value)/10) + + if element.get_name() == "dtmf_preload_time": + _mem.dtmf_settings.preload_time = \ + int(int(element.value)/10) + + if element.get_name() == "dtmf_first_code_persist_time": + _mem.dtmf_settings.first_code_persist_time = \ + int(int(element.value)/10) + + if element.get_name() == "dtmf_hash_persist_time": + _mem.dtmf_settings.hash_persist_time = \ + int(int(element.value)/10) + + if element.get_name() == "dtmf_code_persist_time": + _mem.dtmf_settings.code_persist_time = \ + int(int(element.value)/10) + + if element.get_name() == "dtmf_code_interval_time": + _mem.dtmf_settings.code_interval_time = \ + int(int(element.value)/10) + + if element.get_name() == "dtmf_permit_remote_kill": + _mem.dtmf_settings.permit_remote_kill = \ + element.value and 1 or 0 + + if element.get_name() == "dtmf_dtmf_local_code": + k = str(element.value).rstrip("\x20\xff\x00") + "\x00"*3 + _mem.dtmf_settings_numbers.dtmf_local_code = k[0:3] + + if element.get_name() == "dtmf_dtmf_up_code": + k = str(element.value).strip("\x20\xff\x00") + "\x00"*16 + _mem.dtmf_settings_numbers.dtmf_up_code = k[0:16] + + if element.get_name() == "dtmf_dtmf_down_code": + k = str(element.value).rstrip("\x20\xff\x00") + "\x00"*16 + _mem.dtmf_settings_numbers.dtmf_down_code = k[0:16] + + if element.get_name() == "dtmf_kill_code": + k = str(element.value).strip("\x20\xff\x00") + "\x00"*5 + _mem.dtmf_settings_numbers.kill_code = k[0:5] + + if element.get_name() == "dtmf_revive_code": + k = str(element.value).strip("\x20\xff\x00") + "\x00"*5 + _mem.dtmf_settings_numbers.revive_code = k[0:5] + + # dtmf contacts + for i in range(1, 17): + varname = "DTMF_" + str(i) + if element.get_name() == varname: + k = str(element.value).rstrip("\x20\xff\x00") + "\x00"*8 + _mem.dtmfcontact[i-1].name = k[0:8] + + varnumname = "DTMFNUM_" + str(i) + if element.get_name() == varnumname: + k = str(element.value).rstrip("\x20\xff\x00") + "\xff"*3 + _mem.dtmfcontact[i-1].number = k[0:3] + + # scanlist stuff + if element.get_name() == "scanlist_default": + val = (int(element.value) == 2) and 1 or 0 + _mem.scanlist_default = val + + if element.get_name() == "scanlist1_priority_scan": + _mem.scanlist1_priority_scan = \ + element.value and 1 or 0 + + if element.get_name() == "scanlist2_priority_scan": + _mem.scanlist2_priority_scan = \ + element.value and 1 or 0 + + if element.get_name() == "scanlist1_priority_ch1" or \ + element.get_name() == "scanlist1_priority_ch2" or \ + element.get_name() == "scanlist2_priority_ch1" or \ + element.get_name() == "scanlist2_priority_ch2": + + val = int(element.value) + + if val > 200 or val < 1: + val = 0xff + else: + val -= 1 + + if element.get_name() == "scanlist1_priority_ch1": + _mem.scanlist1_priority_ch1 = val + if element.get_name() == "scanlist1_priority_ch2": + _mem.scanlist1_priority_ch2 = val + if element.get_name() == "scanlist2_priority_ch1": + _mem.scanlist2_priority_ch1 = val + if element.get_name() == "scanlist2_priority_ch2": + _mem.scanlist2_priority_ch2 = val + + if element.get_name() == "key1_shortpress_action": + _mem.key1_shortpress_action = KEYACTIONS_LIST.index( + str(element.value)) + + if element.get_name() == "key1_longpress_action": + _mem.key1_longpress_action = KEYACTIONS_LIST.index( + str(element.value)) + + if element.get_name() == "key2_shortpress_action": + _mem.key2_shortpress_action = KEYACTIONS_LIST.index( + str(element.value)) + + if element.get_name() == "key2_longpress_action": + _mem.key2_longpress_action = KEYACTIONS_LIST.index( + str(element.value)) + + def get_settings(self): + _mem = self._memobj + basic = RadioSettingGroup("basic", "Basic Settings") + keya = RadioSettingGroup("keya", "Programmable keys") + dtmf = RadioSettingGroup("dtmf", "DTMF Settings") + dtmfc = RadioSettingGroup("dtmfc", "DTMF Contacts") + scanl = RadioSettingGroup("scn", "Scan Lists") + unlock = RadioSettingGroup("unlock", "Unlock Settings") + fmradio = RadioSettingGroup("fmradio", "FM Radio") + + roinfo = RadioSettingGroup("roinfo", "Driver information") + + top = RadioSettings( + basic, keya, dtmf, dtmfc, scanl, unlock, fmradio, roinfo) + + # Programmable keys + tmpval = int(_mem.key1_shortpress_action) + if tmpval >= len(KEYACTIONS_LIST): + tmpval = 0 + rs = RadioSetting("key1_shortpress_action", "Side key 1 short press", + RadioSettingValueList( + KEYACTIONS_LIST, KEYACTIONS_LIST[tmpval])) + keya.append(rs) + + tmpval = int(_mem.key1_longpress_action) + if tmpval >= len(KEYACTIONS_LIST): + tmpval = 0 + rs = RadioSetting("key1_longpress_action", "Side key 1 long press", + RadioSettingValueList( + KEYACTIONS_LIST, KEYACTIONS_LIST[tmpval])) + keya.append(rs) + + tmpval = int(_mem.key2_shortpress_action) + if tmpval >= len(KEYACTIONS_LIST): + tmpval = 0 + rs = RadioSetting("key2_shortpress_action", "Side key 2 short press", + RadioSettingValueList( + KEYACTIONS_LIST, KEYACTIONS_LIST[tmpval])) + keya.append(rs) + + tmpval = int(_mem.key2_longpress_action) + if tmpval >= len(KEYACTIONS_LIST): + tmpval = 0 + rs = RadioSetting("key2_longpress_action", "Side key 2 long press", + RadioSettingValueList( + KEYACTIONS_LIST, KEYACTIONS_LIST[tmpval])) + keya.append(rs) + + # DTMF settings + tmppr = bool(_mem.dtmf_settings.side_tone > 0) + rs = RadioSetting( + "dtmf_side_tone", + "DTMF Sidetone", + RadioSettingValueBoolean(tmppr)) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings.separate_code) + if tmpval not in DTMF_CODE_CHARS: + tmpval = '*' + val = RadioSettingValueString(1, 1, tmpval) + val.set_charset(DTMF_CODE_CHARS) + rs = RadioSetting("dtmf_separate_code", "Separate Code", val) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings.group_call_code) + if tmpval not in DTMF_CODE_CHARS: + tmpval = '#' + val = RadioSettingValueString(1, 1, tmpval) + val.set_charset(DTMF_CODE_CHARS) + rs = RadioSetting("dtmf_group_call_code", "Group Call Code", val) + dtmf.append(rs) + + tmpval = _mem.dtmf_settings.decode_response + if tmpval >= len(DTMF_DECODE_RESPONSE_LIST): + tmpval = 0 + rs = RadioSetting("dtmf_decode_response", "Decode Response", + RadioSettingValueList( + DTMF_DECODE_RESPONSE_LIST, + DTMF_DECODE_RESPONSE_LIST[tmpval])) + dtmf.append(rs) + + tmpval = _mem.dtmf_settings.auto_reset_time + if tmpval > 60 or tmpval < 5: + tmpval = 5 + rs = RadioSetting("dtmf_auto_reset_time", + "Auto reset time (s)", + RadioSettingValueInteger(5, 60, tmpval)) + dtmf.append(rs) + + tmpval = int(_mem.dtmf_settings.preload_time) + if tmpval > 100 or tmpval < 3: + tmpval = 30 + tmpval *= 10 + rs = RadioSetting("dtmf_preload_time", + "Pre-load time (ms)", + RadioSettingValueInteger(30, 1000, tmpval, 10)) + dtmf.append(rs) + + tmpval = int(_mem.dtmf_settings.first_code_persist_time) + if tmpval > 100 or tmpval < 3: + tmpval = 30 + tmpval *= 10 + rs = RadioSetting("dtmf_first_code_persist_time", + "First code persist time (ms)", + RadioSettingValueInteger(30, 1000, tmpval, 10)) + dtmf.append(rs) + + tmpval = int(_mem.dtmf_settings.hash_persist_time) + if tmpval > 100 or tmpval < 3: + tmpval = 30 + tmpval *= 10 + rs = RadioSetting("dtmf_hash_persist_time", + "#/* persist time (ms)", + RadioSettingValueInteger(30, 1000, tmpval, 10)) + dtmf.append(rs) + + tmpval = int(_mem.dtmf_settings.code_persist_time) + if tmpval > 100 or tmpval < 3: + tmpval = 30 + tmpval *= 10 + rs = RadioSetting("dtmf_code_persist_time", + "Code persist time (ms)", + RadioSettingValueInteger(30, 1000, tmpval, 10)) + dtmf.append(rs) + + tmpval = int(_mem.dtmf_settings.code_interval_time) + if tmpval > 100 or tmpval < 3: + tmpval = 30 + tmpval *= 10 + rs = RadioSetting("dtmf_code_interval_time", + "Code interval time (ms)", + RadioSettingValueInteger(30, 1000, tmpval, 10)) + dtmf.append(rs) + + tmpval = bool(_mem.dtmf_settings.permit_remote_kill > 0) + rs = RadioSetting( + "dtmf_permit_remote_kill", + "Permit remote kill", + RadioSettingValueBoolean(tmpval)) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings_numbers.dtmf_local_code).upper().strip( + "\x00\xff\x20") + for i in tmpval: + if i in DTMF_CHARS_ID: + continue + else: + tmpval = "103" + break + val = RadioSettingValueString(3, 3, tmpval) + val.set_charset(DTMF_CHARS_ID) + rs = RadioSetting("dtmf_dtmf_local_code", + "Local code (3 chars 0-9 ABCD)", val) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings_numbers.dtmf_up_code).upper().strip( + "\x00\xff\x20") + for i in tmpval: + if i in DTMF_CHARS_UPDOWN or i == "": + continue + else: + tmpval = "123" + break + val = RadioSettingValueString(1, 16, tmpval) + val.set_charset(DTMF_CHARS_UPDOWN) + rs = RadioSetting("dtmf_dtmf_up_code", + "Up code (1-16 chars 0-9 ABCD*#)", val) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings_numbers.dtmf_down_code).upper().strip( + "\x00\xff\x20") + for i in tmpval: + if i in DTMF_CHARS_UPDOWN: + continue + else: + tmpval = "456" + break + val = RadioSettingValueString(1, 16, tmpval) + val.set_charset(DTMF_CHARS_UPDOWN) + rs = RadioSetting("dtmf_dtmf_down_code", + "Down code (1-16 chars 0-9 ABCD*#)", val) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings_numbers.kill_code).upper().strip( + "\x00\xff\x20") + for i in tmpval: + if i in DTMF_CHARS_KILL: + continue + else: + tmpval = "77777" + break + if not len(tmpval) == 5: + tmpval = "77777" + val = RadioSettingValueString(5, 5, tmpval) + val.set_charset(DTMF_CHARS_KILL) + rs = RadioSetting("dtmf_kill_code", + "Kill code (5 chars 0-9 ABCD)", val) + dtmf.append(rs) + + tmpval = str(_mem.dtmf_settings_numbers.revive_code).upper().strip( + "\x00\xff\x20") + for i in tmpval: + if i in DTMF_CHARS_KILL: + continue + else: + tmpval = "88888" + break + if not len(tmpval) == 5: + tmpval = "88888" + val = RadioSettingValueString(5, 5, tmpval) + val.set_charset(DTMF_CHARS_KILL) + rs = RadioSetting("dtmf_revive_code", + "Revive code (5 chars 0-9 ABCD)", val) + dtmf.append(rs) + + val = RadioSettingValueString(0, 80, + "All DTMF Contacts are 3 codes " + "(valid: 0-9 * # ABCD), " + "or an empty string") + val.set_mutable(False) + rs = RadioSetting("dtmf_descr1", "DTMF Contacts", val) + dtmfc.append(rs) + + for i in range(1, 17): + varname = "DTMF_"+str(i) + varnumname = "DTMFNUM_"+str(i) + vardescr = "DTMF Contact "+str(i)+" name" + varinumdescr = "DTMF Contact "+str(i)+" number" + + cntn = str(_mem.dtmfcontact[i-1].name).strip("\x20\x00\xff") + cntnum = str(_mem.dtmfcontact[i-1].number).strip("\x20\x00\xff") + + val = RadioSettingValueString(0, 8, cntn) + rs = RadioSetting(varname, vardescr, val) + dtmfc.append(rs) + + val = RadioSettingValueString(0, 3, cntnum) + val.set_charset(DTMF_CHARS) + rs = RadioSetting(varnumname, varinumdescr, val) + dtmfc.append(rs) + + # scanlists + if _mem.scanlist_default == 1: + tmpsc = 2 + else: + tmpsc = 1 + rs = RadioSetting("scanlist_default", + "Default scanlist", + RadioSettingValueInteger(1, 2, tmpsc)) + scanl.append(rs) + + tmppr = bool((_mem.scanlist1_priority_scan & 1) > 0) + rs = RadioSetting( + "scanlist1_priority_scan", + "Scanlist 1 priority channel scan", + RadioSettingValueBoolean(tmppr)) + scanl.append(rs) + + tmpch = _mem.scanlist1_priority_ch1 + 1 + if tmpch > 200: + tmpch = 0 + rs = RadioSetting("scanlist1_priority_ch1", + "Scanlist 1 priority channel 1 (0 - off)", + RadioSettingValueInteger(0, 200, tmpch)) + scanl.append(rs) + + tmpch = _mem.scanlist1_priority_ch2 + 1 + if tmpch > 200: + tmpch = 0 + rs = RadioSetting("scanlist1_priority_ch2", + "Scanlist 1 priority channel 2 (0 - off)", + RadioSettingValueInteger(0, 200, tmpch)) + scanl.append(rs) + + tmppr = bool((_mem.scanlist2_priority_scan & 1) > 0) + rs = RadioSetting( + "scanlist2_priority_scan", + "Scanlist 2 priority channel scan", + RadioSettingValueBoolean(tmppr)) + scanl.append(rs) + + tmpch = _mem.scanlist2_priority_ch1 + 1 + if tmpch > 200: + tmpch = 0 + rs = RadioSetting("scanlist2_priority_ch1", + "Scanlist 2 priority channel 1 (0 - off)", + RadioSettingValueInteger(0, 200, tmpch)) + scanl.append(rs) + + tmpch = _mem.scanlist2_priority_ch2 + 1 + if tmpch > 200: + tmpch = 0 + rs = RadioSetting("scanlist2_priority_ch2", + "Scanlist 2 priority channel 2 (0 - off)", + RadioSettingValueInteger(0, 200, tmpch)) + scanl.append(rs) + + # basic settings + + # call channel + tmpc = _mem.call_channel+1 + if tmpc > 200: + tmpc = 1 + rs = RadioSetting("call_channel", "One key call channel", + RadioSettingValueInteger(1, 200, tmpc)) + basic.append(rs) + + # squelch + tmpsq = _mem.squelch + if tmpsq > 9: + tmpsq = 1 + rs = RadioSetting("squelch", "Squelch", + RadioSettingValueInteger(0, 9, tmpsq)) + basic.append(rs) + + # TOT + tmptot = _mem.max_talk_time + if tmptot > 10: + tmptot = 10 + rs = RadioSetting( + "tot", + "Max talk time [min]", + RadioSettingValueInteger(0, 10, tmptot)) + basic.append(rs) + + # NOAA autoscan + rs = RadioSetting( + "noaa_autoscan", + "NOAA Autoscan", RadioSettingValueBoolean( + bool(_mem.noaa_autoscan > 0))) + basic.append(rs) + + # VOX switch + rs = RadioSetting( + "vox_switch", + "VOX enabled", RadioSettingValueBoolean( + bool(_mem.vox_switch > 0))) + basic.append(rs) + + # VOX Level + tmpvox = _mem.vox_level+1 + if tmpvox > 10: + tmpvox = 10 + rs = RadioSetting("vox_level", "VOX Level", + RadioSettingValueInteger(1, 10, tmpvox)) + basic.append(rs) + + # Mic gain + tmpmicgain = _mem.mic_gain + if tmpmicgain > 4: + tmpmicgain = 4 + rs = RadioSetting("mic_gain", "Mic Gain", + RadioSettingValueInteger(0, 4, tmpmicgain)) + basic.append(rs) + + # Channel display mode + tmpchdispmode = _mem.channel_display_mode + if tmpchdispmode >= len(CHANNELDISP_LIST): + tmpchdispmode = 0 + rs = RadioSetting( + "channel_display_mode", + "Channel display mode", + RadioSettingValueList( + CHANNELDISP_LIST, + CHANNELDISP_LIST[tmpchdispmode])) + basic.append(rs) + + # Crossband receiving/transmitting + tmpcross = _mem.crossband + if tmpcross >= len(CROSSBAND_LIST): + tmpcross = 0 + rs = RadioSetting( + "crossband", + "Cross-band receiving/transmitting", + RadioSettingValueList( + CROSSBAND_LIST, + CROSSBAND_LIST[tmpcross])) + basic.append(rs) + + # Battery save + tmpbatsave = _mem.battery_save + if tmpbatsave >= len(BATSAVE_LIST): + tmpbatsave = BATSAVE_LIST.index("1:4") + rs = RadioSetting( + "battery_save", + "Battery Save", + RadioSettingValueList( + BATSAVE_LIST, + BATSAVE_LIST[tmpbatsave])) + basic.append(rs) + + # Dual watch + tmpdual = _mem.dual_watch + if tmpdual >= len(DUALWATCH_LIST): + tmpdual = 0 + rs = RadioSetting("dualwatch", "Dual Watch", RadioSettingValueList( + DUALWATCH_LIST, DUALWATCH_LIST[tmpdual])) + basic.append(rs) + + # Backlight auto mode + tmpback = _mem.backlight_auto_mode + if tmpback >= len(BACKLIGHT_LIST): + tmpback = 0 + rs = RadioSetting("backlight_auto_mode", + "Backlight auto mode", + RadioSettingValueList( + BACKLIGHT_LIST, + BACKLIGHT_LIST[tmpback])) + basic.append(rs) + + # Tail tone elimination + rs = RadioSetting( + "tail_note_elimination", + "Tail tone elimination", + RadioSettingValueBoolean( + bool(_mem.tail_note_elimination > 0))) + basic.append(rs) + + # VFO open + rs = RadioSetting("vfo_open", "VFO open", + RadioSettingValueBoolean(bool(_mem.vfo_open > 0))) + basic.append(rs) + + # Beep control + rs = RadioSetting( + "beep_control", + "Beep control", + RadioSettingValueBoolean(bool(_mem.beep_control > 0))) + basic.append(rs) + + # Scan resume mode + tmpscanres = _mem.scan_resume_mode + if tmpscanres >= len(SCANRESUME_LIST): + tmpscanres = 0 + rs = RadioSetting( + "scan_resume_mode", + "Scan resume mode", + RadioSettingValueList( + SCANRESUME_LIST, + SCANRESUME_LIST[tmpscanres])) + basic.append(rs) + + # Keypad locked + rs = RadioSetting( + "key_lock", + "Keypad lock", + RadioSettingValueBoolean(bool(_mem.key_lock > 0))) + basic.append(rs) + + # Auto keypad lock + rs = RadioSetting( + "auto_keypad_lock", + "Auto keypad lock", + RadioSettingValueBoolean(bool(_mem.auto_keypad_lock > 0))) + basic.append(rs) + + # Power on display mode + tmpdispmode = _mem.power_on_dispmode + if tmpdispmode >= len(WELCOME_LIST): + tmpdispmode = 0 + rs = RadioSetting( + "welcome_mode", + "Power on display mode", + RadioSettingValueList( + WELCOME_LIST, + WELCOME_LIST[tmpdispmode])) + basic.append(rs) + + # Keypad Tone + tmpkeypadtone = _mem.keypad_tone + if tmpkeypadtone >= len(KEYPADTONE_LIST): + tmpkeypadtone = 0 + rs = RadioSetting("keypad_tone", "Keypad tone", RadioSettingValueList( + KEYPADTONE_LIST, KEYPADTONE_LIST[tmpkeypadtone])) + basic.append(rs) + + # Language + tmplanguage = _mem.language + if tmplanguage >= len(LANGUAGE_LIST): + tmplanguage = 0 + rs = RadioSetting("language", "Language", RadioSettingValueList( + LANGUAGE_LIST, LANGUAGE_LIST[tmplanguage])) + basic.append(rs) + + # Alarm mode + tmpalarmmode = _mem.alarm_mode + if tmpalarmmode >= len(ALARMMODE_LIST): + tmpalarmmode = 0 + rs = RadioSetting("alarm_mode", "Alarm mode", RadioSettingValueList( + ALARMMODE_LIST, ALARMMODE_LIST[tmpalarmmode])) + basic.append(rs) + + # Reminding of end of talk + tmpalarmmode = _mem.reminding_of_end_talk + if tmpalarmmode >= len(REMENDOFTALK_LIST): + tmpalarmmode = 0 + rs = RadioSetting( + "reminding_of_end_talk", + "Reminding of end of talk", + RadioSettingValueList( + REMENDOFTALK_LIST, + REMENDOFTALK_LIST[tmpalarmmode])) + basic.append(rs) + + # Repeater tail tone elimination + tmprte = _mem.repeater_tail_elimination + if tmprte >= len(RTE_LIST): + tmprte = 0 + rs = RadioSetting( + "repeater_tail_elimination", + "Repeater tail tone elimination", + RadioSettingValueList(RTE_LIST, RTE_LIST[tmprte])) + basic.append(rs) + + # Logo string 1 + logo1 = str(_mem.logo_line1).strip("\x20\x00\xff") + "\x00" + logo1 = _getstring(logo1.encode('ascii', errors='ignore'), 0, 12) + rs = RadioSetting("logo1", "Logo string 1 (12 characters)", + RadioSettingValueString(0, 12, logo1)) + basic.append(rs) + + # Logo string 2 + logo2 = str(_mem.logo_line2).strip("\x20\x00\xff") + "\x00" + logo2 = _getstring(logo2.encode('ascii', errors='ignore'), 0, 12) + rs = RadioSetting("logo2", "Logo string 2 (12 characters)", + RadioSettingValueString(0, 12, logo2)) + basic.append(rs) + + # FM radio + for i in range(1, 21): + freqname = "FM_"+str(i) + fmfreq = _mem.fmfreq[i-1]/10.0 + if fmfreq < FMMIN or fmfreq > FMMAX: + rs = RadioSetting(freqname, freqname, + RadioSettingValueString(0, 5, "")) + else: + rs = RadioSetting(freqname, freqname, + RadioSettingValueString(0, 5, str(fmfreq))) + + fmradio.append(rs) + + # unlock settings + + # F-LOCK + tmpflock = _mem.int_flock + if tmpflock >= len(FLOCK_LIST): + tmpflock = 0 + rs = RadioSetting( + "flock", "F-LOCK", + RadioSettingValueList(FLOCK_LIST, FLOCK_LIST[tmpflock])) + unlock.append(rs) + + # 350TX + rs = RadioSetting("350tx", "350TX - unlock 350-400MHz TX", + RadioSettingValueBoolean( + bool(_mem.int_350tx > 0))) + unlock.append(rs) + + # 200TX + rs = RadioSetting("200tx", "200TX - unlock 174-350MHz TX", + RadioSettingValueBoolean( + bool(_mem.int_200tx > 0))) + unlock.append(rs) + + # 500TX + rs = RadioSetting("500tx", "500TX - unlock 500-600MHz TX", + RadioSettingValueBoolean( + bool(_mem.int_500tx > 0))) + unlock.append(rs) + + # 350EN + rs = RadioSetting("350en", "350EN - unlock 350-400MHz RX", + RadioSettingValueBoolean( + bool(_mem.int_350en > 0))) + unlock.append(rs) + + # SCREEN + rs = RadioSetting("scren", "SCREN - scrambler enable", + RadioSettingValueBoolean( + bool(_mem.int_scren > 0))) + unlock.append(rs) + + # readonly info + # Firmware + if self.FIRMWARE_VERSION == "": + firmware = "To get the firmware version please download" + "the image from the radio first" + else: + firmware = self.FIRMWARE_VERSION + + val = RadioSettingValueString(0, 128, firmware) + val.set_mutable(False) + rs = RadioSetting("fw_ver", "Firmware Version", val) + roinfo.append(rs) + + # TODO: remove showing the driver version when it's in mainline chirp + # Driver version + val = RadioSettingValueString(0, 128, DRIVER_VERSION) + val.set_mutable(False) + rs = RadioSetting("driver_ver", "Driver version", val) + roinfo.append(rs) + + # No limits version for hacked firmware + val = RadioSettingValueBoolean(self.FIRMWARE_NOLIMITS) + val.set_mutable(False) + rs = RadioSetting("nolimits", "Limits disabled for modified firmware", + val) + roinfo.append(rs) + + return top + + # Store details about a high-level memory to the memory map + # This is called when a user edits a memory in the UI + def set_memory(self, mem): + number = mem.number-1 + + # Get a low-level memory object mapped to the image + _mem = self._memobj.channel[number] + _mem4 = self._memobj + # empty memory + if mem.empty: + _mem.set_raw("\xFF" * 16) + if number < 200: + _mem2 = self._memobj.channelname[number] + _mem2.set_raw("\xFF" * 16) + _mem4.channel_attributes[number].is_scanlist1 = 0 + _mem4.channel_attributes[number].is_scanlist2 = 0 + _mem4.channel_attributes[number].unknown1 = 0 + _mem4.channel_attributes[number].unknown2 = 0 + _mem4.channel_attributes[number].is_free = 1 + _mem4.channel_attributes[number].band = 0x7 + return mem + + # clean the channel memory, restore some bits if it was used before + if _mem.get_raw()[0] == "\xff": + # this was an empty memory + _mem.set_raw("\x00" * 16) + else: + # this memory was't empty, save some bits that we don't know the + # meaning of, or that we don't support yet + prev_0a = _mem.get_raw(asbytes=True)[0x0a] & SAVE_MASK_0A + prev_0b = _mem.get_raw(asbytes=True)[0x0b] & SAVE_MASK_0B + prev_0c = _mem.get_raw(asbytes=True)[0x0c] & SAVE_MASK_0C + prev_0d = _mem.get_raw(asbytes=True)[0x0d] & SAVE_MASK_0D + prev_0e = _mem.get_raw(asbytes=True)[0x0e] & SAVE_MASK_0E + prev_0f = _mem.get_raw(asbytes=True)[0x0f] & SAVE_MASK_0F + _mem.set_raw("\x00" * 10 + + chr(prev_0a) + chr(prev_0b) + chr(prev_0c) + + chr(prev_0d) + chr(prev_0e) + chr(prev_0f)) + + if number < 200: + _mem4.channel_attributes[number].is_scanlist1 = 0 + _mem4.channel_attributes[number].is_scanlist2 = 0 + _mem4.channel_attributes[number].unknown1 = 0 + _mem4.channel_attributes[number].unknown2 = 0 + _mem4.channel_attributes[number].is_free = 1 + _mem4.channel_attributes[number].band = 0x7 + + # find band + band = _find_band(self, mem.freq) + + # mode + if mem.mode == "NFM": + _mem.bandwidth = 1 + _mem.enable_am = 0 + elif mem.mode == "FM": + _mem.bandwidth = 0 + _mem.enable_am = 0 + elif mem.mode == "NAM": + _mem.bandwidth = 1 + _mem.enable_am = 1 + elif mem.mode == "AM": + _mem.bandwidth = 0 + _mem.enable_am = 1 + + # frequency/offset + _mem.freq = mem.freq/10 + _mem.offset = mem.offset/10 + + if mem.duplex == "off" or mem.duplex == "": + _mem.offset = 0 + _mem.shift = 0 + elif mem.duplex == '-': + _mem.shift = FLAGS1_OFFSET_MINUS + elif mem.duplex == '+': + _mem.shift = FLAGS1_OFFSET_PLUS + + # set band + if number < 200: + _mem4.channel_attributes[number].is_free = 0 + _mem4.channel_attributes[number].band = band + + # channels >200 are the 14 VFO chanells and don't have names + if number < 200: + _mem2 = self._memobj.channelname[number] + tag = mem.name.ljust(10) + "\x00"*6 + _mem2.name = tag # Store the alpha tag + + # tone data + self._set_tone(mem, _mem) + + # step + _mem.step = STEPS.index(mem.tuning_step) + + # tx power + if str(mem.power) == str(UVK5_POWER_LEVELS[2]): + _mem.txpower = POWER_HIGH + elif str(mem.power) == str(UVK5_POWER_LEVELS[1]): + _mem.txpower = POWER_MEDIUM + else: + _mem.txpower = POWER_LOW + + for setting in mem.extra: + sname = setting.get_name() + svalue = setting.value.get_value() + + if sname == "bclo": + _mem.bclo = svalue and 1 or 0 + + if sname == "pttid": + _mem.dtmf_pttid = PTTID_LIST.index(svalue) + + if sname == "frev": + _mem.freq_reverse = svalue and 1 or 0 + + if sname == "dtmfdecode": + _mem.dtmf_decode = svalue and 1 or 0 + + if sname == "scrambler": + _mem.scrambler = ( + _mem.scrambler & 0xf0) | SCRAMBLER_LIST.index(svalue) + + if number < 200 and sname == "scanlists": + if svalue == "1": + _mem4.channel_attributes[number].is_scanlist1 = 1 + _mem4.channel_attributes[number].is_scanlist2 = 0 + elif svalue == "2": + _mem4.channel_attributes[number].is_scanlist1 = 0 + _mem4.channel_attributes[number].is_scanlist2 = 1 + elif svalue == "1+2": + _mem4.channel_attributes[number].is_scanlist1 = 1 + _mem4.channel_attributes[number].is_scanlist2 = 1 + else: + _mem4.channel_attributes[number].is_scanlist1 = 0 + _mem4.channel_attributes[number].is_scanlist2 = 0 + + return mem + + +@directory.register +class UVK5Radio_nolimit(UVK5Radio): + VENDOR = "Quansheng" + MODEL = "UV-K5 (modified firmware)" + VARIANT = "nolimits" + FIRMWARE_NOLIMITS = True + + def get_features(self): + rf = UVK5Radio.get_features(self) + # This is what the BK4819 chip supports + rf.valid_bands = [(18000000, 620000000), + (840000000, 1300000000) + ] + return rf diff --git a/chirp/locale/de.po b/chirp/locale/de.po index 990555c38..67aad085d 100644 --- a/chirp/locale/de.po +++ b/chirp/locale/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2012-10-02 22:11+0100\n" "Last-Translator: Benjamin, HB9EUK \n" "Language-Team: German\n" @@ -200,7 +200,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -213,7 +213,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -244,7 +244,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -257,7 +257,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -378,7 +378,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -387,7 +387,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -414,7 +414,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -426,7 +426,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -482,7 +482,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -492,7 +492,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -538,7 +538,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -547,7 +547,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -557,7 +557,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -575,7 +575,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -585,7 +585,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -596,6 +596,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -631,7 +652,7 @@ msgstr "" msgid "An error has occurred" msgstr "Ein Fehler ist aufgetreten" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -727,12 +748,12 @@ msgstr "" msgid "Cloning" msgstr "Klonen" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Download vom Gerät" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Upload zum Gerät" @@ -754,11 +775,11 @@ msgstr "Vergleiche Rohspeicher" msgid "Comment" msgstr "Kommentar" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Beendet" @@ -781,7 +802,7 @@ msgstr "" msgid "Cross mode" msgstr "Cross Mode" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -849,7 +870,7 @@ msgstr "Aktiviert" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -867,7 +888,7 @@ msgstr "" msgid "Download from radio" msgstr "Download vom Gerät" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Download vom Gerät" @@ -913,7 +934,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -927,11 +948,11 @@ msgstr "Lösche Speicher {loc}" msgid "Error applying settings" msgstr "Fehler beim Setzen der Speicher" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 #, fuzzy msgid "Experimental driver" msgstr "Weiter mit dem experimentellen Treiber?" @@ -1009,7 +1030,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1018,7 +1039,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1029,9 +1050,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1050,7 +1071,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1077,7 +1098,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1086,7 +1107,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1116,7 +1137,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1125,7 +1146,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1134,7 +1155,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1143,9 +1164,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1155,7 +1176,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1195,7 +1216,7 @@ msgstr "Zeige RAW Speicher" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1326,7 +1347,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1357,7 +1378,7 @@ msgstr "" msgid "Mode" msgstr "Mode" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Model" @@ -1380,7 +1401,7 @@ msgstr "Module laden" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1529,7 +1550,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1544,7 +1565,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1567,11 +1588,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Port" @@ -1614,12 +1635,12 @@ msgstr "" msgid "Radio" msgstr "Gerät" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Abrufen der Speicherbank" @@ -1833,7 +1854,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1882,12 +1903,12 @@ msgstr "ToneSql" msgid "Tuning Step" msgstr "Abstimmungsschritt" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1927,11 +1948,11 @@ msgstr "Keine Änderungen bei diesem Modell möglich" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1977,7 +1998,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Hersteller" @@ -2003,7 +2024,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/el.po b/chirp/locale/el.po index 54acd394b..b2978210d 100644 --- a/chirp/locale/el.po +++ b/chirp/locale/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2023-02-11 15:12+0200\n" "Last-Translator: Sokratis Alichanidis \n" "Language-Team: Greek\n" @@ -202,7 +202,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -215,7 +215,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -246,7 +246,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -259,7 +259,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -380,7 +380,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -389,7 +389,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -416,7 +416,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -428,7 +428,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -484,7 +484,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -494,7 +494,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -540,7 +540,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -549,7 +549,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -559,7 +559,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -577,7 +577,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -587,7 +587,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -598,6 +598,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -634,7 +655,7 @@ msgstr "Ραδιοερασιτέχνη" msgid "An error has occurred" msgstr "Παρουσιάστηκε ένα σφάλμα" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "Εφαρμογή ρυθμίσεων" @@ -730,11 +751,11 @@ msgstr "" msgid "Cloning" msgstr "Αντιγραφή" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 msgid "Cloning from radio" msgstr "Λήψη από πομποδέκτη" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 msgid "Cloning to radio" msgstr "Αποστολή σε πομποδέκτη" @@ -755,11 +776,11 @@ msgstr "Διαγραφή %i Μνημών" msgid "Comment" msgstr "Σχόλιο" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "Επικοινωνία με πομποδέκτη" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 msgid "Complete" msgstr "Ολοκληρωμένη" @@ -781,7 +802,7 @@ msgstr "Χώρα" msgid "Cross mode" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "Προσαρμοσμένη..." @@ -849,7 +870,7 @@ msgstr "" msgid "Distance" msgstr "Απόσταση" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "Να μην ερωτηθώ ξανά για %s" @@ -866,7 +887,7 @@ msgstr "Λήψη" msgid "Download from radio" msgstr "Λήψη Από Πομποδέκτη" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 msgid "Download instructions" msgstr "Οδηγίες λήψης" @@ -910,7 +931,7 @@ msgstr "Εισάγετε συχνότητα εκπομπής (MHz)" msgid "Enter a new name for bank %s:" msgstr "Εισάγετε ένα νέο όνομα για την ομάδα μνημών %s:" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "Εισάγετε προσαρμοσμένη θύρα:" @@ -923,11 +944,11 @@ msgstr "Διεγράφη η μνήμη %s" msgid "Error applying settings" msgstr "Σφάλμα εφαρμογής ρυθμίσεων" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "Σφάλμα επικοινωνίας με τον πομποδέκτη" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "Πειραματικός οδηγός" @@ -1000,7 +1021,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1009,7 +1030,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1020,9 +1041,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1041,7 +1062,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1068,7 +1089,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1077,7 +1098,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1107,7 +1128,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1116,7 +1137,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1125,7 +1146,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1134,9 +1155,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1146,7 +1167,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1185,7 +1206,7 @@ msgstr "Μετάβαση σε Μνήμη" msgid "Goto Memory:" msgstr "Μετάβαση σε Μνήμη:" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "Βοήθεια..." @@ -1316,7 +1337,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "Φόρτωση ρυθμίσεων" @@ -1347,7 +1368,7 @@ msgstr "Η μνήμη {num} δεν βρίσκεται στην ομάδα μνη msgid "Mode" msgstr "Λειτουργία" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Μοντέλο" @@ -1368,7 +1389,7 @@ msgstr "Module" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "Βρέθηκαν περισσότερες από μία θύρες: %s" @@ -1511,7 +1532,7 @@ msgstr "" "Παρακαλούμε βεβαιωθείτε ότι έχετε κλείσει το CHIRP πριν εγκαταστήσετε την " "νέα έκδοση!" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1526,7 +1547,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1549,11 +1570,11 @@ msgstr "" msgid "Please wait" msgstr "Παρακαλώ περιμένετε" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "Συνδέστε το καλώδιο σας και πατήστε OK" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Θύρα" @@ -1594,12 +1615,12 @@ msgstr "DTCS Λήψης" msgid "Radio" msgstr "Πομποδέκτης" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "Ο πομποδέκτης δεν επιβεβαίωσε το μπλοκ %i" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 msgid "Radio information" msgstr "Πληροφορίες πομποδέκτη" @@ -1805,7 +1826,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1859,12 +1880,12 @@ msgstr "Τόνος Φίμωσης" msgid "Tuning Step" msgstr "Βήμα συντονισμού" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "Έυρεση θυρών USB" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1903,11 +1924,11 @@ msgstr "Πατήστε enter για καταχώρηση στη μνήμη" msgid "United States" msgstr "Ηνωμένες Πολιτείες" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "Αποσυνδέστε το καλώδιο σας (αν χρειάζεται) και μετά πατήστε OK" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "Οδηγίες αποστολής" @@ -1952,7 +1973,7 @@ msgstr "Η τιμή πρέπει να έιναι ακριβώς %i δεκαδι msgid "Value must be zero or greater" msgstr "Η τιμή πρέπει να είναι μηδέν ή μεγαλύτερη" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Προμηθευτής" @@ -1977,7 +1998,7 @@ msgstr "Καλωσήρθατε" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "Το καλώδιο σας φαίνεται να είανι στη θύρα:" diff --git a/chirp/locale/en_US.po b/chirp/locale/en_US.po index 8a6a4db16..14d3a0e1a 100644 --- a/chirp/locale/en_US.po +++ b/chirp/locale/en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2011-11-29 16:07-0800\n" "Last-Translator: Dan Smith \n" "Language-Team: English\n" @@ -198,7 +198,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -211,7 +211,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -242,7 +242,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -255,7 +255,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -376,7 +376,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -385,7 +385,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -412,7 +412,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -424,7 +424,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -480,7 +480,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -490,7 +490,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -536,7 +536,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -545,7 +545,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -555,7 +555,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -573,7 +573,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -583,7 +583,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -594,6 +594,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -629,7 +650,7 @@ msgstr "" msgid "An error has occurred" msgstr "" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -724,12 +745,12 @@ msgstr "" msgid "Cloning" msgstr "" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Download From Radio" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Upload To Radio" @@ -751,11 +772,11 @@ msgstr "Diff raw memories" msgid "Comment" msgstr "" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 msgid "Complete" msgstr "" @@ -778,7 +799,7 @@ msgstr "" msgid "Cross mode" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -845,7 +866,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -863,7 +884,7 @@ msgstr "" msgid "Download from radio" msgstr "Download From Radio" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Download From Radio" @@ -907,7 +928,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -920,11 +941,11 @@ msgstr "E_xchange" msgid "Error applying settings" msgstr "" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -999,7 +1020,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1008,7 +1029,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1019,9 +1040,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1040,7 +1061,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1067,7 +1088,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1076,7 +1097,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1106,7 +1127,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1115,7 +1136,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1124,7 +1145,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1133,9 +1154,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1145,7 +1166,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1185,7 +1206,7 @@ msgstr "Show raw memory" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1315,7 +1336,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1346,7 +1367,7 @@ msgstr "" msgid "Mode" msgstr "" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "" @@ -1366,7 +1387,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1512,7 +1533,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1527,7 +1548,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1550,11 +1571,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "" @@ -1596,12 +1617,12 @@ msgstr "" msgid "Radio" msgstr "_Radio" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 msgid "Radio information" msgstr "" @@ -1811,7 +1832,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1858,12 +1879,12 @@ msgstr "" msgid "Tuning Step" msgstr "" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1902,11 +1923,11 @@ msgstr "" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1952,7 +1973,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "" @@ -1978,7 +1999,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/es.po b/chirp/locale/es.po index 986100aaa..1739e3dd3 100644 --- a/chirp/locale/es.po +++ b/chirp/locale/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2023-06-22 15:48-0400\n" "Last-Translator: MELERIX\n" "Language-Team: \n" @@ -301,7 +301,7 @@ msgstr "" "4. Después de cliquear Aceptar,\n" " presiona la tecla [C](SEND) para enviar la imagen.\n" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -324,7 +324,7 @@ msgstr "" "para\n" " enviar la imagen.\n" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -375,7 +375,7 @@ msgstr "" " (\"CLONE\" aparecerá en la pantalla).\n" "4. Presiona la tecla [MODE] (\"-WAIT-\" aparecerá en la LCD).\n" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -397,7 +397,7 @@ msgstr "" " aparecerá.\n" "6. Presiona la tecla [LOW(ACC)] (\"--RX--\" aparecerá en la pantalla).\n" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -595,7 +595,7 @@ msgstr "" "4. Presiona el interruptor [MONI] (\"WAIT\" aparecerá en la LCD).\n" "5. Presiona Aceptar.\n" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -610,7 +610,7 @@ msgstr "" "4. Después de cliquear Aceptar, presiona la tecla [BAND] para enviar " "la imagen.\n" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -653,7 +653,7 @@ msgstr "" " (\"CLONE\" aparecerá en la pantalla).\n" "4. Presiona la tecla [V/M] (\"CLONE WAIT\" aparecerá en la LCD).\n" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -674,7 +674,7 @@ msgstr "" "[PTT]\n" " por un segundo para enviar la imagen.\n" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -766,7 +766,7 @@ msgstr "" " mientras enciendes la radio.\n" "4. Presiona la tecla [D/MR(MW)] (\"--WAIT--\" aparecerá en la LCD).\n" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -783,7 +783,7 @@ msgstr "" "5. Asegúrate de que la radio esté sintonizada a un canal sin actividad.\n" "6. Cliquea Aceptar para descargar la imagen desde el dispositivo.\n" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -857,7 +857,7 @@ msgstr "" "3. Prepara la radio para clonar.\n" "4. Presiona la tecla para recibir la imagen.\n" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -873,7 +873,7 @@ msgstr "" "4. Después de cliquear Aceptar, presiona la tecla [SET] para enviar " "la imagen.\n" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -890,7 +890,7 @@ msgstr "" "4. Presiona la tecla [DISP/SS]\n" " (\"R\" aparecerá en la parte inferior izquierda de la LCD).\n" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -919,7 +919,7 @@ msgstr "" " (\"CLONE\" aparecerá en la pantalla).\n" "5. Presiona la tecla [moni] (\"-RX-\" aparecerá en la LCD).\n" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -936,7 +936,7 @@ msgstr "" " de vuelta la batería (\"ADMS\" aparecerá en la pantalla).\n" "5. Después de cliquear Aceptar, presiona la tecla [BAND].\n" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -956,6 +956,41 @@ msgstr "" "cliquea \n" " Aceptar " +#: ../drivers/uvk5.py:636 +#, fuzzy +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" +"1. Apaga la radio.\n" +"2. Conecta el cable al conector mic/spkr.\n" +"3. Asegúrate de que el conector esté firmemente conectado.\n" +"4. Enciende la radio.\n" +"5. Asegúrate de que la radio esté sintonizada a un canal sin actividad.\n" +"6. Cliquea Aceptar para cargar la imagen al dispositivo.\n" + +#: ../drivers/uvk5.py:643 +#, fuzzy +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" +"1. Apaga la radio.\n" +"2. Conecta el cable al conector mic/spkr.\n" +"3. Asegúrate de que el conector esté firmemente conectado.\n" +"4. Enciende la radio.\n" +"5. Asegúrate de que la radio esté sintonizada a un canal sin actividad.\n" +"6. Cliquea Aceptar para cargar la imagen al dispositivo.\n" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -992,7 +1027,7 @@ msgstr "Aficionado" msgid "An error has occurred" msgstr "Ha ocurrido un error" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "Aplicando ajustes" @@ -1096,11 +1131,11 @@ msgstr "Clonado completado, comprobando por bytes espurios" msgid "Cloning" msgstr "Clonando" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 msgid "Cloning from radio" msgstr "Clonando desde radio" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 msgid "Cloning to radio" msgstr "Clonando a radio" @@ -1121,11 +1156,11 @@ msgstr "Agrupar %i memorias" msgid "Comment" msgstr "Comentario" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "Comunicarse con la radio" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 msgid "Complete" msgstr "Completado" @@ -1149,7 +1184,7 @@ msgstr "País" msgid "Cross mode" msgstr "Modo cruzado" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "Personalizado..." @@ -1216,7 +1251,7 @@ msgstr "Desahbilitado" msgid "Distance" msgstr "Distancia" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "No preguntar de nuevo para %s" @@ -1233,7 +1268,7 @@ msgstr "Descargar" msgid "Download from radio" msgstr "Descargar desde radio" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 msgid "Download instructions" msgstr "Descargar instrucciones" @@ -1276,7 +1311,7 @@ msgstr "Ingresar frecuencia TX (MHz)" msgid "Enter a new name for bank %s:" msgstr "Ingresa un nuevo nombre para el banco %s:" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "Ingresar puerto personalizado:" @@ -1289,11 +1324,11 @@ msgstr "Memoria borrada %s" msgid "Error applying settings" msgstr "Error aplicando ajustes" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "Error comunicándose con la radio" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "Controlador experimental" @@ -1376,7 +1411,7 @@ msgstr "" "en la cabeza de la radio!\n" "3 - Desconecta tu cable de interfaz\n" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1390,7 +1425,7 @@ msgstr "" "3 - Enciende tu radio, volumen @ 50%\n" "4 - Radio > Descargar desde radio\n" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1408,9 +1443,9 @@ msgstr "" "5 - ¡Desconecta el cable de interfaz! ¡De lo contrario no habrá\n" " audio del lado derecho!\n" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1439,7 +1474,7 @@ msgstr "" "3 - Enciende tu radio (desbloquéala si está protegida por contraseña)\n" "4 - Cliquea Aceptar para iniciar\n" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1481,7 +1516,7 @@ msgstr "" "en la cabeza de la radio!\n" "3 - Desconecta tu cable de interfaz\n" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1495,7 +1530,7 @@ msgstr "" "3 - Enciende tu radio, volumen @ 50%\n" "4 - Radio > Cargar a radio\n" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1543,7 +1578,7 @@ msgstr "" "3 - Enciende tu radio (desbloquéala si está protegida por contraseña)\n" "4 - Cliquea Aceptar para iniciar\n" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1557,7 +1592,7 @@ msgstr "" "3 - Enciende tu radio\n" "4 - Cliquea Aceptar para iniciar\n" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1571,7 +1606,7 @@ msgstr "" "3 - Enciende tu radio\n" "4 - Haz la descarga de tus datos de radio\n" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1585,9 +1620,9 @@ msgstr "" "3 - Enciende tu radio\n" "4 - Haz la descarga de tus datos de radio\n" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1602,7 +1637,7 @@ msgstr "" "3 - Enciende tu radio\n" "4 - Haz la carga de tus datos de radio\n" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1646,7 +1681,7 @@ msgstr "Ir a memoria" msgid "Goto Memory:" msgstr "Ir a memoria:" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "Ayúdame..." @@ -1780,7 +1815,7 @@ msgstr "" "fuente es como darles acceso directo a tu computador y a todo en este! " "¿Proceder a pesar de este riesgo?" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "Cargando ajustes" @@ -1810,7 +1845,7 @@ msgstr "Memoria {num} no en banco {bank}" msgid "Mode" msgstr "Modo" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Modelo" @@ -1830,7 +1865,7 @@ msgstr "Módulo cargado" msgid "Module loaded successfully" msgstr "Módulo cargado exitosamente" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "Más de un puerto encontrado: %s" @@ -1975,7 +2010,7 @@ msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" "¡Por favor asegúrate de salir de CHIRP antes de instalar la nueva versión!" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -2001,7 +2036,7 @@ msgstr "" "Después de clonar remueve el cable y apaga y enciende tu radio para\n" "entrar en modo normal.\n" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -2036,11 +2071,11 @@ msgstr "" msgid "Please wait" msgstr "Por favor espera" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "Conecta tu cable y luego haz clic en ACEPTAR" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Puerto" @@ -2081,12 +2116,12 @@ msgstr "RX DTCS" msgid "Radio" msgstr "Radio" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "La radio no reconoció el bloque %i" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 msgid "Radio information" msgstr "Información de radio" @@ -2324,7 +2359,7 @@ msgstr "" "Este es un controlador beta de etapa temprana - cargar bajo tu propio " "riesgo\n" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -2379,12 +2414,12 @@ msgstr "Silenciador de tono" msgid "Tuning Step" msgstr "Paso de sintonización" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "Buscador de puertos USB" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -2428,11 +2463,11 @@ msgstr "No se puede establecer %s en esta memoria" msgid "United States" msgstr "Estados Unidos" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "Desconecta tu cable (si es necesario) y entonces haz clic en ACEPTAR" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "Cargar instrucciones" @@ -2477,7 +2512,7 @@ msgstr "Valor debe ser exactamente %i dígitos decimales" msgid "Value must be zero or greater" msgstr "Valor debe ser cero o superior" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Vendedor" @@ -2502,7 +2537,7 @@ msgstr "Bienvenido" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "¿Quieres que CHIRP instale un icono en el escritorio para ti?" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "Tu cable parece estar en puerto:" diff --git a/chirp/locale/fr.po b/chirp/locale/fr.po index ee1f76257..fa333a57e 100644 --- a/chirp/locale/fr.po +++ b/chirp/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2014-04-05 22:18+0100\n" "Last-Translator: Matthieu Lapadu-Hargues \n" "Language-Team: French\n" @@ -200,7 +200,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -213,7 +213,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -244,7 +244,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -257,7 +257,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -378,7 +378,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -387,7 +387,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -414,7 +414,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -426,7 +426,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -482,7 +482,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -492,7 +492,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -538,7 +538,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -547,7 +547,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -557,7 +557,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -575,7 +575,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -585,7 +585,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -596,6 +596,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -631,7 +652,7 @@ msgstr "" msgid "An error has occurred" msgstr "Une erreur s'est produite" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -727,12 +748,12 @@ msgstr "" msgid "Cloning" msgstr "Clonage" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Telecharger depuis la radio - Lire" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Telecharger vers la radio - Ecrire" @@ -754,11 +775,11 @@ msgstr "Comparaison memoires brutes" msgid "Comment" msgstr "Commentaire" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Termine" @@ -782,7 +803,7 @@ msgstr "" msgid "Cross mode" msgstr "Cross mode" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -849,7 +870,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -867,7 +888,7 @@ msgstr "" msgid "Download from radio" msgstr "Telecharger depuis la radio - Lire" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Telecharger depuis la radio - Lire" @@ -912,7 +933,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -926,11 +947,11 @@ msgstr "Effacer la memoire {loc}" msgid "Error applying settings" msgstr "Erreur ecriture memoire" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -1005,7 +1026,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1014,7 +1035,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1025,9 +1046,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1046,7 +1067,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1073,7 +1094,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1082,7 +1103,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1112,7 +1133,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1121,7 +1142,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1130,7 +1151,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1139,9 +1160,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1151,7 +1172,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1191,7 +1212,7 @@ msgstr "Afficher les donnees de memoires brutes" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1324,7 +1345,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1355,7 +1376,7 @@ msgstr "" msgid "Mode" msgstr "Mode" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Modele" @@ -1376,7 +1397,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1524,7 +1545,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1539,7 +1560,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1562,11 +1583,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Port" @@ -1608,12 +1629,12 @@ msgstr "" msgid "Radio" msgstr "Radio" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Recuperation des information de banque" @@ -1825,7 +1846,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1874,12 +1895,12 @@ msgstr "ToneSql" msgid "Tuning Step" msgstr "Pas" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1919,11 +1940,11 @@ msgstr "Impossible de realiser des changements pour ce modele" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1969,7 +1990,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Fabricant" @@ -1995,7 +2016,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/hu.po b/chirp/locale/hu.po index 64370f523..e8e653132 100644 --- a/chirp/locale/hu.po +++ b/chirp/locale/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2015-01-28 13:47+0100\n" "Last-Translator: Attila Joubert \n" "Language-Team: English\n" @@ -199,7 +199,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -212,7 +212,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -243,7 +243,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -256,7 +256,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -377,7 +377,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -386,7 +386,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -413,7 +413,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -425,7 +425,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -481,7 +481,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -491,7 +491,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -537,7 +537,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -546,7 +546,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -556,7 +556,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -574,7 +574,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -584,7 +584,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -595,6 +595,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -630,7 +651,7 @@ msgstr "" msgid "An error has occurred" msgstr "Hiba történt" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -726,12 +747,12 @@ msgstr "" msgid "Cloning" msgstr "Klónozás" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Letöltés a rádióról" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Feltöltés a rádióra" @@ -753,11 +774,11 @@ msgstr "Memóriasorok összehasonlítása" msgid "Comment" msgstr "Megjegyzés" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Befejeződött" @@ -780,7 +801,7 @@ msgstr "" msgid "Cross mode" msgstr "Kereszt-üzem" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -849,7 +870,7 @@ msgstr "Engedélyezve" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -867,7 +888,7 @@ msgstr "" msgid "Download from radio" msgstr "Letöltés a rádióról" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "{name} Utasítások" @@ -913,7 +934,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -927,11 +948,11 @@ msgstr "A(z) {loc}. memóriahely törlése" msgid "Error applying settings" msgstr "Hiba a(z) %s érték beállításakor" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 #, fuzzy msgid "Experimental driver" msgstr "Folytassam kísérleti driver-rel?" @@ -1009,7 +1030,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1018,7 +1039,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1029,9 +1050,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1050,7 +1071,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1077,7 +1098,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1086,7 +1107,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1116,7 +1137,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1125,7 +1146,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1134,7 +1155,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1143,9 +1164,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1155,7 +1176,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1197,7 +1218,7 @@ msgstr "ez a memória" msgid "Goto Memory:" msgstr "ez a memória" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1329,7 +1350,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1360,7 +1381,7 @@ msgstr "" msgid "Mode" msgstr "Mód" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Modell" @@ -1383,7 +1404,7 @@ msgstr "Modul betöltése" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1532,7 +1553,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1547,7 +1568,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1570,11 +1591,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Port" @@ -1618,12 +1639,12 @@ msgstr "RX DTCS kód" msgid "Radio" msgstr "Rádió" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "%s információk lekérése" @@ -1837,7 +1858,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1886,12 +1907,12 @@ msgstr "ToneSql" msgid "Tuning Step" msgstr "Lépésköz" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1931,11 +1952,11 @@ msgstr "Ennél a modellnél nem változtatható" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 #, fuzzy msgid "Upload instructions" msgstr "{instructions}" @@ -1982,7 +2003,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Gyártó" @@ -2008,7 +2029,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/it.po b/chirp/locale/it.po index beb9ed174..c337a4f57 100644 --- a/chirp/locale/it.po +++ b/chirp/locale/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2014-11-08 17:58+0100\n" "Last-Translator: Dan Smith \n" "Language-Team: English\n" @@ -199,7 +199,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -212,7 +212,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -243,7 +243,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -256,7 +256,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -377,7 +377,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -386,7 +386,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -413,7 +413,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -425,7 +425,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -481,7 +481,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -491,7 +491,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -537,7 +537,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -546,7 +546,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -556,7 +556,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -574,7 +574,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -584,7 +584,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -595,6 +595,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -630,7 +651,7 @@ msgstr "" msgid "An error has occurred" msgstr "Si e' verificato un errore" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -726,12 +747,12 @@ msgstr "" msgid "Cloning" msgstr "Programmazione" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Leggi da Radio" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Scrivi su Radio" @@ -753,11 +774,11 @@ msgstr "Diff memorie Raw" msgid "Comment" msgstr "Commento" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Completato" @@ -781,7 +802,7 @@ msgstr "" msgid "Cross mode" msgstr "Cross Mode" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -848,7 +869,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -866,7 +887,7 @@ msgstr "" msgid "Download from radio" msgstr "Leggi da Radio" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Leggi da Radio" @@ -911,7 +932,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -925,11 +946,11 @@ msgstr "Cancellazione memoria {loc}" msgid "Error applying settings" msgstr "Errore di scrittura della memoria" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -1004,7 +1025,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1013,7 +1034,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1024,9 +1045,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1045,7 +1066,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1072,7 +1093,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1081,7 +1102,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1111,7 +1132,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1120,7 +1141,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1129,7 +1150,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1138,9 +1159,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1150,7 +1171,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1190,7 +1211,7 @@ msgstr "Mostra memorie Raw" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1323,7 +1344,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1354,7 +1375,7 @@ msgstr "" msgid "Mode" msgstr "Modulazione" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Modello" @@ -1375,7 +1396,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1523,7 +1544,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1538,7 +1559,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1561,11 +1582,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Porta" @@ -1607,12 +1628,12 @@ msgstr "" msgid "Radio" msgstr "Radio" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Recupero informazioni bank" @@ -1825,7 +1846,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1874,12 +1895,12 @@ msgstr "ToneSql" msgid "Tuning Step" msgstr "Step sintonia" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1919,11 +1940,11 @@ msgstr "Impossibile effettuare modifiche su questo modello" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1969,7 +1990,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Produttore" @@ -1995,7 +2016,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/nl.po b/chirp/locale/nl.po index c84c58652..773eeb6ac 100644 --- a/chirp/locale/nl.po +++ b/chirp/locale/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2012-03-18 12:01+0100\n" "Last-Translator: Michael Tel \n" "Language-Team: Dutch\n" @@ -199,7 +199,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -212,7 +212,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -243,7 +243,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -256,7 +256,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -377,7 +377,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -386,7 +386,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -413,7 +413,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -425,7 +425,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -481,7 +481,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -491,7 +491,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -537,7 +537,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -546,7 +546,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -556,7 +556,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -574,7 +574,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -584,7 +584,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -595,6 +595,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -630,7 +651,7 @@ msgstr "" msgid "An error has occurred" msgstr "Er is een fout opgetreden" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -726,12 +747,12 @@ msgstr "" msgid "Cloning" msgstr "Klonen" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Download van radio" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Naar radio uploaden" @@ -753,11 +774,11 @@ msgstr "Verschillen ruwe kanalen" msgid "Comment" msgstr "Opmerking" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Volbracht" @@ -781,7 +802,7 @@ msgstr "" msgid "Cross mode" msgstr "Cross-mode" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -848,7 +869,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -866,7 +887,7 @@ msgstr "" msgid "Download from radio" msgstr "Download van radio" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Download van radio" @@ -911,7 +932,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -925,11 +946,11 @@ msgstr "Wis kanaal {loc}" msgid "Error applying settings" msgstr "Fout bij het instellen van het geheugen" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -1004,7 +1025,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1013,7 +1034,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1024,9 +1045,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1045,7 +1066,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1072,7 +1093,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1081,7 +1102,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1111,7 +1132,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1120,7 +1141,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1129,7 +1150,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1138,9 +1159,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1150,7 +1171,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1190,7 +1211,7 @@ msgstr "Toon ruw kanaal" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1323,7 +1344,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1354,7 +1375,7 @@ msgstr "" msgid "Mode" msgstr "Mode" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Model" @@ -1375,7 +1396,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1523,7 +1544,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1538,7 +1559,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1561,11 +1582,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Poort" @@ -1607,12 +1628,12 @@ msgstr "" msgid "Radio" msgstr "Radio" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Informatie van de bank ophalen" @@ -1824,7 +1845,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1873,12 +1894,12 @@ msgstr "Toon squelch" msgid "Tuning Step" msgstr "Kanaal-afstand" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1918,11 +1939,11 @@ msgstr "Niet in staat om wijzigingen voor dit model te maken" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1968,7 +1989,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Merk" @@ -1994,7 +2015,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/pl.po b/chirp/locale/pl.po index 669ae4e56..c2574e9c9 100644 --- a/chirp/locale/pl.po +++ b/chirp/locale/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2011-12-07 11:35+0100\n" "Last-Translator: Grzegorz Błoński-Kubiak \n" "Language-Team: Polish\n" @@ -199,7 +199,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -212,7 +212,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -243,7 +243,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -256,7 +256,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -377,7 +377,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -386,7 +386,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -413,7 +413,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -425,7 +425,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -481,7 +481,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -491,7 +491,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -537,7 +537,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -546,7 +546,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -556,7 +556,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -574,7 +574,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -584,7 +584,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -595,6 +595,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -630,7 +651,7 @@ msgstr "" msgid "An error has occurred" msgstr "Wystąpił błąd" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -727,12 +748,12 @@ msgstr "" msgid "Cloning" msgstr "Klonowanie" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Pobierz z urządzenia" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Wyślij do urządzenia" @@ -754,11 +775,11 @@ msgstr "Porównaj surowe pamięci" msgid "Comment" msgstr "" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Ukończono pomyślnie" @@ -783,7 +804,7 @@ msgstr "" msgid "Cross mode" msgstr "Tryb krzyżowy" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -853,7 +874,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -871,7 +892,7 @@ msgstr "" msgid "Download from radio" msgstr "Pobierz z urządzenia" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Pobierz z urządzenia" @@ -916,7 +937,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -930,11 +951,11 @@ msgstr "Kasowanie pamięci {loc}" msgid "Error applying settings" msgstr "Błąd ustawiania pamięci" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -1009,7 +1030,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1018,7 +1039,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1029,9 +1050,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1050,7 +1071,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1077,7 +1098,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1086,7 +1107,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1116,7 +1137,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1125,7 +1146,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1134,7 +1155,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1143,9 +1164,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1155,7 +1176,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1195,7 +1216,7 @@ msgstr "Pokaż surową pamięć" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1330,7 +1351,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1362,7 +1383,7 @@ msgstr "" msgid "Mode" msgstr "Tryb" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 #, fuzzy msgid "Model" msgstr "Tryb" @@ -1384,7 +1405,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1532,7 +1553,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1547,7 +1568,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1570,11 +1591,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Port" @@ -1617,12 +1638,12 @@ msgstr "" msgid "Radio" msgstr "_Urządzenie" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Pobieranie listy banków pamięci" @@ -1836,7 +1857,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1885,12 +1906,12 @@ msgstr "Blokada tonu" msgid "Tuning Step" msgstr "Krok strojenia" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1930,11 +1951,11 @@ msgstr "Nie potrafię wprowadzić zmian w tym modelu" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1980,7 +2001,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Producent" @@ -2006,7 +2027,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/pt_BR.po b/chirp/locale/pt_BR.po index 5def1e306..a5430a948 100644 --- a/chirp/locale/pt_BR.po +++ b/chirp/locale/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2013-03-30 22:04-0300\n" "Last-Translator: Crezivando \n" "Language-Team: Language pt-BR\n" @@ -198,7 +198,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -211,7 +211,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -242,7 +242,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -255,7 +255,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -376,7 +376,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -385,7 +385,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -412,7 +412,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -424,7 +424,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -480,7 +480,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -490,7 +490,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -536,7 +536,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -545,7 +545,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -555,7 +555,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -573,7 +573,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -583,7 +583,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -594,6 +594,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -629,7 +650,7 @@ msgstr "" msgid "An error has occurred" msgstr "Ocorreu um erro" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -725,12 +746,12 @@ msgstr "" msgid "Cloning" msgstr "Clonando" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Descarregar a partir do Rdio" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Carregar para o Rdio" @@ -752,11 +773,11 @@ msgstr "Diff Mem msgid "Comment" msgstr "Comentrio" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Concludo" @@ -780,7 +801,7 @@ msgstr "" msgid "Cross mode" msgstr "Modo Cross" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -847,7 +868,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -865,7 +886,7 @@ msgstr "" msgid "Download from radio" msgstr "Descarregar a partir do Rdio" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Descarregar a partir do Rdio" @@ -910,7 +931,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -924,11 +945,11 @@ msgstr "Apagando mem msgid "Error applying settings" msgstr "Erro gravando memria" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -1003,7 +1024,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1012,7 +1033,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1023,9 +1044,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1044,7 +1065,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1071,7 +1092,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1080,7 +1101,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1110,7 +1131,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1119,7 +1140,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1128,7 +1149,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1137,9 +1158,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1149,7 +1170,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1189,7 +1210,7 @@ msgstr "Mostrar Mem msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1322,7 +1343,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1353,7 +1374,7 @@ msgstr "" msgid "Mode" msgstr "Modo" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Modelo" @@ -1374,7 +1395,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1522,7 +1543,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1537,7 +1558,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1560,11 +1581,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Porta" @@ -1606,12 +1627,12 @@ msgstr "" msgid "Radio" msgstr "Rdio" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Recuperando informaes do banco" @@ -1823,7 +1844,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1872,12 +1893,12 @@ msgstr "TomSql" msgid "Tuning Step" msgstr "Tune Step" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1917,11 +1938,11 @@ msgstr "Incapaz de efetuar altera msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1967,7 +1988,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Fornecedor" @@ -1993,7 +2014,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/ru.po b/chirp/locale/ru.po index 83024e20d..a7d8dfaba 100644 --- a/chirp/locale/ru.po +++ b/chirp/locale/ru.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -190,7 +190,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -203,7 +203,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -234,7 +234,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -247,7 +247,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -368,7 +368,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -377,7 +377,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -404,7 +404,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -416,7 +416,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -472,7 +472,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -482,7 +482,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -528,7 +528,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -537,7 +537,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -547,7 +547,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -565,7 +565,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -575,7 +575,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -586,6 +586,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -621,7 +642,7 @@ msgstr "" msgid "An error has occurred" msgstr "Ошибка" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -717,12 +738,12 @@ msgstr "" msgid "Cloning" msgstr "Загрузка" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Чтение из станции" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Запись в станцию" @@ -744,11 +765,11 @@ msgstr "Diff raw memories" msgid "Comment" msgstr "Комментарий" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Завершено" @@ -773,7 +794,7 @@ msgstr "" msgid "Cross mode" msgstr "Кроссрежим" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -843,7 +864,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -861,7 +882,7 @@ msgstr "" msgid "Download from radio" msgstr "Чтение из станции" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Чтение из станции" @@ -906,7 +927,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -920,11 +941,11 @@ msgstr "Стирание памяти {loc}" msgid "Error applying settings" msgstr "Ошибка установки памяти" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -999,7 +1020,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1008,7 +1029,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1019,9 +1040,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1040,7 +1061,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1067,7 +1088,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1076,7 +1097,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1106,7 +1127,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1115,7 +1136,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1124,7 +1145,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1133,9 +1154,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1145,7 +1166,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1185,7 +1206,7 @@ msgstr "Show Raw Memory\t" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1318,7 +1339,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1350,7 +1371,7 @@ msgstr "" msgid "Mode" msgstr "Режим" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Модель" @@ -1371,7 +1392,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1520,7 +1541,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1535,7 +1556,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1558,11 +1579,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Порт" @@ -1605,12 +1626,12 @@ msgstr "" msgid "Radio" msgstr "Станция" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Получение информации" @@ -1823,7 +1844,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1872,12 +1893,12 @@ msgstr "ТонШПД" msgid "Tuning Step" msgstr "Шаг" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1917,11 +1938,11 @@ msgstr "Невозможно внести изменения в эту моде msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1967,7 +1988,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Изготовитель" @@ -1993,7 +2014,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/tr_TR.po b/chirp/locale/tr_TR.po index aea187686..1a7e5f8be 100644 --- a/chirp/locale/tr_TR.po +++ b/chirp/locale/tr_TR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2023-03-11 18:37+0300\n" "Last-Translator: Abdullah YILMAZ (TA1AUB) \n" "Language-Team: TURKISH\n" @@ -288,7 +288,7 @@ msgstr "" "4. TAMAM'ı tıkladıktan sonra, imajı göndermek için [C](GÖNDER) tuşuna " "basın.\n" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -309,7 +309,7 @@ msgstr "" "6. Tamam'a tıkladıktan sonra, imajı göndermek için \"sol\" [V/M] " "tuşuna basın.\n" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -359,7 +359,7 @@ msgstr "" " (ekranda \"CLONE\" görünecektir).\n" "4. [MODE] tuşuna basın (ekranda \"CLONE WAIT\" görünecektir).\n" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -379,7 +379,7 @@ msgstr "" "\"CLONE\" yazısı belirecektir.\n" "6. [LOW(ACC)] tuşuna basın (ekranda \"--RX--\" görünecektir).\n" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -571,7 +571,7 @@ msgstr "" "4. [MONI] tuşuna basın (ekranda \"WAIT\" görünecektir).\n" "5. TAMAM'a basın.\n" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -586,7 +586,7 @@ msgstr "" "4. TAMAM'ı tıkladıktan sonra, imajı göndermek için [BAND] tuşuna " "basın.\n" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -629,7 +629,7 @@ msgstr "" " (ekranda \"CLONE\" görünecektir).\n" "4. [V/M] tuşuna basın (ekranda \"CLONE WAIT\" görünecektir).\n" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -649,7 +649,7 @@ msgstr "" "6. TAMAM'ı tıkladıktan sonra, imaj göndermek için [PTT] tuşunu bir " "saniye basılı tutun.\n" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -738,7 +738,7 @@ msgstr "" "3. Telsizi açarken [MHz], [LOW] ve [D/MR] tuşlarını basılı tutun.\n" "4. [D/MR(MW)] tuşuna basın (ekranda \"--WAIT--\" görünecektir).\n" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -754,7 +754,7 @@ msgstr "" "5. Telsizin etkin olmayan kanala ayarlandığından emin olun.\n" "6. İmajı cihazdan indirmek için TAMAM'a tıklayın.\n" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -826,7 +826,7 @@ msgstr "" "3. Telsizi klon için hazırlayın.\n" "4. İmajı almak için tuşuna basın.\n" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -841,7 +841,7 @@ msgstr "" "4. TAMAM'ı tıkladıktan sonra, imajı göndermek için [SET] tuşuna " "basın.\n" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -857,7 +857,7 @@ msgstr "" "4. [DISP/SS] tuşuna basın\n" " (LCD'nin sol alt köşesinde \"R\" görünecektir).\n" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -887,7 +887,7 @@ msgstr "" " (ekranda \"CLONE\" görünecektir).\n" "5. [moni] tuşuna basın (ekranda \"-RX-\" görünecektir).\n" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -903,7 +903,7 @@ msgstr "" "ekranda görünecektir).\n" "5. Tamam'a tıkladıktan sonra, [BAND] tuşuna basın.\n" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -921,6 +921,41 @@ msgstr "" "5. [MODE] tuşuna basın (LCD'de \"-WAIT-\" görünecektir). Sonra TAMAM " " tıklayın" +#: ../drivers/uvk5.py:636 +#, fuzzy +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" +"1. Telsizi kapatın.\n" +"2. Kabloyu mic/spkr konektörüne bağlayın.\n" +"3. Konektörün sıkıca bağlandığından emin olun.\n" +"4. Telsizi açın.\n" +"5. Telsizin etkin olmayan kanala ayarlandığından emin olun.\n" +"6. İmajı cihaza yüklemek için TAMAM'a tıklayın.\n" + +#: ../drivers/uvk5.py:643 +#, fuzzy +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" +"1. Telsizi kapatın.\n" +"2. Kabloyu mic/spkr konektörüne bağlayın.\n" +"3. Konektörün sıkıca bağlandığından emin olun.\n" +"4. Telsizi açın.\n" +"5. Telsizin etkin olmayan kanala ayarlandığından emin olun.\n" +"6. İmajı cihaza yüklemek için TAMAM'a tıklayın.\n" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -957,7 +992,7 @@ msgstr "Amatör" msgid "An error has occurred" msgstr "Bir hata oluştu" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "Ayarlar uygulanıyor" @@ -1059,11 +1094,11 @@ msgstr "Klon tamamlandı, sahte baytlar kontrol ediliyor" msgid "Cloning" msgstr "Klonlanıyor" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 msgid "Cloning from radio" msgstr "Telsizden klonlama" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 msgid "Cloning to radio" msgstr "Telsize klonlama" @@ -1084,11 +1119,11 @@ msgstr "%i kaydı sırala" msgid "Comment" msgstr "Yorum" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "Telsiz ile iletişim" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 msgid "Complete" msgstr "Tamamla" @@ -1113,7 +1148,7 @@ msgstr "Ülke" msgid "Cross mode" msgstr "Çapraz mod" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "Özel..." @@ -1181,7 +1216,7 @@ msgstr "devre dışı bırakıldı" msgid "Distance" msgstr "Mesafe" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "%s için tekrar sorma" @@ -1198,7 +1233,7 @@ msgstr "İndir" msgid "Download from radio" msgstr "Telsizden indir" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 msgid "Download instructions" msgstr "İndirme talimatları" @@ -1242,7 +1277,7 @@ msgstr "TX Frekansını girin (MHz)" msgid "Enter a new name for bank %s:" msgstr "Banka %s için yeni bir ad girin:" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "Özel bağlantı noktasını girin:" @@ -1255,11 +1290,11 @@ msgstr "%s kaydı silindi" msgid "Error applying settings" msgstr "Ayarlar uygulanırken hata oluştu" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "Telsizle iletişim hatası" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "Deneysel sürücü" @@ -1340,7 +1375,7 @@ msgstr "" "2 - Telsiz > Telsizden İndir: Telsiz kafasında herhangi bir ayar yapmayın!\n" "3 - Arayüz kablonuzu çıkarın\n" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1354,7 +1389,7 @@ msgstr "" "3 - Telsizinizi açın, ses seviyesi @ %50\n" "4 - Telsiz > Telsizden İndir\n" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1371,9 +1406,9 @@ msgstr "" "4 - Telsiz > Telsizden İndir\n" "5 - Arayüz kablosunu çıkarın! Aksi takdirde, sağ taraf sesi olmayacaktır!\n" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1402,7 +1437,7 @@ msgstr "" "3 - Telsizinizi açın (şifre korumalıysa engelini kaldırın)\n" "4 - Başlatmak için TAMAM'a tıklayın.\n" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1442,7 +1477,7 @@ msgstr "" "2 - Telsiz > Telsize yükle: Telsiz kafasında herhangi bir ayar yapmayın!\n" "3 - Arayüz kablonuzu çıkarın\n" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1456,7 +1491,7 @@ msgstr "" "3 - Telsizinizi açın, ses seviyesi @ %50\n" "4 - Telsiz > Telsize yükle\n" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1503,7 +1538,7 @@ msgstr "" "3 - Telsizinizi açın (şifre korumalıysa engelini kaldırın)\n" "4 - Başlatmak için TAMAM'a tıklayın.\n" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1517,7 +1552,7 @@ msgstr "" "3 - Telsizinizi açın (şifre korumalıysa engelini kaldırın)\n" "4 - Başlatmak için TAMAM'a tıklayın.\n" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1531,7 +1566,7 @@ msgstr "" "3 - Telsizinizi açın\n" "4 - Telsiz verilerinizin indirilmesini gerçekleştirin\n" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1545,9 +1580,9 @@ msgstr "" "3 - Telsizinizi açın\n" "4 - Telsiz verilerinizin indirmesini gerçekleştirin\n" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1562,7 +1597,7 @@ msgstr "" "3 - Telsizinizi açın\n" "4 - Telsiz verilerinizin yüklemesini gerçekleştirin\n" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1606,7 +1641,7 @@ msgstr "Kayda Git" msgid "Goto Memory:" msgstr "Kayda Git:" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "Bana Yardım Et..." @@ -1743,7 +1778,7 @@ msgstr "" "doğrudan erişim sağlamasına olanak sağlayabilir! Bu riske rağmen devam " "edilsin mi?" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "Ayarlar yükleniyor" @@ -1773,7 +1808,7 @@ msgstr "{num} kaydı {bank} bankasında değil" msgid "Mode" msgstr "Mod" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Model" @@ -1793,7 +1828,7 @@ msgstr "Modül Yüklendi" msgid "Module loaded successfully" msgstr "Modül başarıyla yüklendi" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "Birden fazla bağlantı noktası bulundu: %s" @@ -1940,7 +1975,7 @@ msgstr "Yapıştırılan kayıt, %i kaydının üzerine yazacak" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "Lütfen yeni sürümü yüklemeden önce CHIRP'den çıktığınızdan emin olun!" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1966,7 +2001,7 @@ msgstr "" "Klonladıktan sonra kabloyu çıkarın ve normal moda geçmek için telsizinizi " "kapatıp açın.\n" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -2001,11 +2036,11 @@ msgstr "" msgid "Please wait" msgstr "Lütfen bekleyin" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "Kablonuzu takın ve ardından Tamam'a tıklayın" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Port" @@ -2046,12 +2081,12 @@ msgstr "RX DTCS" msgid "Radio" msgstr "Telsiz" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "Telsiz %i bloğunu onaylamadı" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 msgid "Radio information" msgstr "Telsiz bilgisi" @@ -2279,7 +2314,7 @@ msgstr "Bu erken aşama beta sürücüsüdür\n" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "Bu, erken aşamadaki bir beta sürücüsüdür - yükleme riski size aittir\n" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -2333,12 +2368,12 @@ msgstr "Ton Susturucu" msgid "Tuning Step" msgstr "Ayarlama Adımı" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "USB Portu Bulucu" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -2382,11 +2417,11 @@ msgstr "%s bu sistemde gösterilemiyor" msgid "United States" msgstr "Amerika Birleşik Devletleri" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "(gerekirse) Kablonuzu çıkarın ve ardından Tamam'ı tıklayın" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "Yükleme talimatları" @@ -2431,7 +2466,7 @@ msgstr "Değer tam olarak %i ondalık basamak olmalıdır" msgid "Value must be zero or greater" msgstr "Değer sıfır veya daha büyük olmalıdır" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Tedarikçi" @@ -2456,7 +2491,7 @@ msgstr "Hoşgeldiniz" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "Kablonuz bağlantı noktasında görünüyor:" diff --git a/chirp/locale/uk_UA.po b/chirp/locale/uk_UA.po index b1367762f..ea8f09578 100644 --- a/chirp/locale/uk_UA.po +++ b/chirp/locale/uk_UA.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2015-11-30 10:36+0200\n" "Last-Translator: laser \n" "Language-Team: laser \n" @@ -198,7 +198,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -211,7 +211,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -242,7 +242,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -255,7 +255,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -376,7 +376,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -385,7 +385,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -412,7 +412,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -424,7 +424,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -480,7 +480,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -490,7 +490,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -536,7 +536,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -545,7 +545,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -555,7 +555,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -573,7 +573,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -583,7 +583,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -594,6 +594,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -629,7 +650,7 @@ msgstr "" msgid "An error has occurred" msgstr "Сталася помилка" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -725,12 +746,12 @@ msgstr "" msgid "Cloning" msgstr "Клонування" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "Скопіювати з радіостанції" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "Записати в радіостанцію" @@ -752,11 +773,11 @@ msgstr "Порівняти Raw пам'ять" msgid "Comment" msgstr "Коментар" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "Завершено" @@ -781,7 +802,7 @@ msgstr "" msgid "Cross mode" msgstr "Кросрежим" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -851,7 +872,7 @@ msgstr "" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -869,7 +890,7 @@ msgstr "" msgid "Download from radio" msgstr "Скопіювати з радіостанції" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "Скопіювати з радіостанції" @@ -914,7 +935,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -928,11 +949,11 @@ msgstr "Стирання пам'яті {loc}" msgid "Error applying settings" msgstr "Помилка настройки пам'яті" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 msgid "Experimental driver" msgstr "" @@ -1007,7 +1028,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1016,7 +1037,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1027,9 +1048,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1048,7 +1069,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1075,7 +1096,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1084,7 +1105,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1114,7 +1135,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1123,7 +1144,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1132,7 +1153,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1141,9 +1162,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1153,7 +1174,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1193,7 +1214,7 @@ msgstr "Показати Raw пам'ять" msgid "Goto Memory:" msgstr "" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 msgid "Help Me..." msgstr "" @@ -1326,7 +1347,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1358,7 +1379,7 @@ msgstr "" msgid "Mode" msgstr "Режим" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "Модель" @@ -1379,7 +1400,7 @@ msgstr "" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1528,7 +1549,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1543,7 +1564,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1566,11 +1587,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "Порт" @@ -1613,12 +1634,12 @@ msgstr "" msgid "Radio" msgstr "Радіостанція" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "Отримання інформації банку" @@ -1831,7 +1852,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1880,12 +1901,12 @@ msgstr "ToneSql" msgid "Tuning Step" msgstr "Крок настройки" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1925,11 +1946,11 @@ msgstr "Не вдається внести зміни до цієї моделі msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 msgid "Upload instructions" msgstr "" @@ -1975,7 +1996,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "Виробник" @@ -2001,7 +2022,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/chirp/locale/zh_CN.po b/chirp/locale/zh_CN.po index 96457a591..7b3e84c8f 100644 --- a/chirp/locale/zh_CN.po +++ b/chirp/locale/zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: CHIRP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-21 15:28-0700\n" +"POT-Creation-Date: 2023-06-26 18:46-0700\n" "PO-Revision-Date: 2022-06-04 02:01+0800\n" "Last-Translator: DuckSoft, BH2UEP \n" "Language: zh_CN\n" @@ -197,7 +197,7 @@ msgid "" " press the [C](SEND) key to send image.\n" msgstr "" -#: ../drivers/ft7800.py:839 +#: ../drivers/ft7800.py:838 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -210,7 +210,7 @@ msgid "" " send image.\n" msgstr "" -#: ../drivers/ft7800.py:849 +#: ../drivers/ft7800.py:848 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -241,7 +241,7 @@ msgid "" "4. Press the [MODE] key (\"-WAIT-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft7800.py:287 +#: ../drivers/ft7800.py:286 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -254,7 +254,7 @@ msgid "" "6. Press the [LOW(ACC)] key (\"--RX--\" will appear on the display).\n" msgstr "" -#: ../drivers/ft7800.py:276 +#: ../drivers/ft7800.py:275 msgid "" "1. Turn radio off.\n" "2. Connect cable to DATA jack.\n" @@ -375,7 +375,7 @@ msgid "" "5. Press OK.\n" msgstr "" -#: ../drivers/vx6.py:369 ../drivers/vx3.py:374 +#: ../drivers/vx6.py:369 ../drivers/vx3.py:373 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -384,7 +384,7 @@ msgid "" "4. After clicking OK, press the [BAND] key to send image.\n" msgstr "" -#: ../drivers/vx6.py:376 ../drivers/vx3.py:381 +#: ../drivers/vx6.py:376 ../drivers/vx3.py:380 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -411,7 +411,7 @@ msgid "" "4. Press the [V/M] key (\"CLONE WAIT\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft60.py:355 +#: ../drivers/ft60.py:354 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -423,7 +423,7 @@ msgid "" " for one second to send image.\n" msgstr "" -#: ../drivers/ft60.py:364 +#: ../drivers/ft60.py:363 msgid "" "1. Turn radio off.\n" "2. Connect cable to MIC/SP jack.\n" @@ -479,7 +479,7 @@ msgid "" "4. Press the [D/MR(MW)] key (\"--WAIT--\" will appear on the LCD).\n" msgstr "" -#: ../drivers/uv5r.py:777 +#: ../drivers/uv5r.py:743 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -489,7 +489,7 @@ msgid "" "6. Click OK to download image from device.\n" msgstr "" -#: ../drivers/uv5r.py:785 +#: ../drivers/uv5r.py:751 msgid "" "1. Turn radio off.\n" "2. Connect cable to mic/spkr connector.\n" @@ -535,7 +535,7 @@ msgid "" "4. Press the key to receive the image.\n" msgstr "" -#: ../drivers/ft90.py:196 +#: ../drivers/ft90.py:195 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -544,7 +544,7 @@ msgid "" "4. After clicking OK, press the [SET] key to send image.\n" msgstr "" -#: ../drivers/ft90.py:203 +#: ../drivers/ft90.py:202 msgid "" "1. Turn radio off.\n" "2. Connect mic and hold [ACC] on mic while powering on.\n" @@ -554,7 +554,7 @@ msgid "" " (\"R\" will appear on the lower left of LCD).\n" msgstr "" -#: ../drivers/bj9900.py:106 +#: ../drivers/bj9900.py:102 msgid "" "1. Turn radio off.\n" "2. Remove front head.\n" @@ -572,7 +572,7 @@ msgid "" "5. Press the [moni] key (\"-RX-\" will appear on the LCD).\n" msgstr "" -#: ../drivers/ft70.py:552 +#: ../drivers/ft70.py:551 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -582,7 +582,7 @@ msgid "" "5. After clicking OK, press the [BAND] key.\n" msgstr "" -#: ../drivers/ft70.py:560 +#: ../drivers/ft70.py:559 msgid "" "1. Turn radio on.\n" "2. Connect cable to DATA terminal.\n" @@ -593,6 +593,27 @@ msgid "" " click Then" msgstr "" +#: ../drivers/uvk5.py:636 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to download image from device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already " +"attached\n" +msgstr "" + +#: ../drivers/uvk5.py:643 +msgid "" +"1. Turn radio on.\n" +"2. Connect cable to mic/spkr connector.\n" +"3. Make sure connector is firmly connected.\n" +"4. Click OK to upload the image to device.\n" +"\n" +"It will may not work if you turn on the radio with the cable already attached" +msgstr "" + #: ../wxui/main.py:1685 msgid "" "A new CHIRP version is available. Please visit the website as soon as " @@ -628,7 +649,7 @@ msgstr "" msgid "An error has occurred" msgstr "发生错误" -#: ../wxui/clone.py:109 +#: ../wxui/clone.py:111 msgid "Applying settings" msgstr "" @@ -724,12 +745,12 @@ msgstr "" msgid "Cloning" msgstr "正在复制" -#: ../drivers/bj9900.py:137 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 +#: ../drivers/bj9900.py:133 ../drivers/ft450d.py:442 ../drivers/ft817.py:343 #, fuzzy msgid "Cloning from radio" msgstr "从电台下载" -#: ../drivers/bj9900.py:164 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 +#: ../drivers/bj9900.py:160 ../drivers/ft450d.py:471 ../drivers/ft817.py:381 #, fuzzy msgid "Cloning to radio" msgstr "上传到电台" @@ -752,11 +773,11 @@ msgstr "对比原始存储" msgid "Comment" msgstr "备注" -#: ../wxui/clone.py:215 +#: ../wxui/clone.py:217 msgid "Communicate with radio" msgstr "" -#: ../wxui/clone.py:117 +#: ../wxui/clone.py:119 #, fuzzy msgid "Complete" msgstr "已完成" @@ -779,7 +800,7 @@ msgstr "" msgid "Cross mode" msgstr "收发使用不同亚音频" -#: ../wxui/clone.py:319 ../wxui/clone.py:394 +#: ../wxui/clone.py:36 msgid "Custom..." msgstr "" @@ -849,7 +870,7 @@ msgstr "已启用" msgid "Distance" msgstr "" -#: ../wxui/clone.py:165 +#: ../wxui/clone.py:167 #, python-format msgid "Do not prompt again for %s" msgstr "" @@ -867,7 +888,7 @@ msgstr "" msgid "Download from radio" msgstr "从电台下载" -#: ../wxui/clone.py:502 +#: ../wxui/clone.py:512 #, fuzzy msgid "Download instructions" msgstr "显示指引" @@ -913,7 +934,7 @@ msgstr "" msgid "Enter a new name for bank %s:" msgstr "" -#: ../wxui/clone.py:395 +#: ../wxui/clone.py:405 msgid "Enter custom port:" msgstr "" @@ -927,11 +948,11 @@ msgstr "正在擦除存储 {loc}" msgid "Error applying settings" msgstr "设置值有误:%s" -#: ../wxui/clone.py:439 +#: ../wxui/clone.py:449 msgid "Error communicating with radio" msgstr "" -#: ../wxui/clone.py:470 +#: ../wxui/clone.py:480 #, fuzzy msgid "Experimental driver" msgstr "继续使用不稳定的驱动?" @@ -1009,7 +1030,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:533 +#: ../drivers/th_uv8000.py:525 msgid "" "Follow these instructions to download the radio memory:\n" "1 - Turn off your radio\n" @@ -1018,7 +1039,7 @@ msgid "" "4 - Radio > Download from radio\n" msgstr "" -#: ../drivers/ic2730.py:313 +#: ../drivers/ic2730.py:312 msgid "" "Follow these instructions to download your config:\n" "1 - Turn off your radio\n" @@ -1029,9 +1050,9 @@ msgid "" " no right-side audio!\n" msgstr "" -#: ../drivers/mursv1.py:343 ../drivers/baofeng_wp970i.py:326 +#: ../drivers/mursv1.py:342 ../drivers/baofeng_wp970i.py:325 #: ../drivers/btech.py:689 ../drivers/gmrsuv1.py:392 -#: ../drivers/tdxone_tdq8a.py:456 ../drivers/uv6r.py:342 +#: ../drivers/tdxone_tdq8a.py:455 ../drivers/uv6r.py:342 #: ../drivers/uv5x3.py:418 ../drivers/gmrsv2.py:364 ../drivers/bf_t1.py:483 msgid "" "Follow these instructions to download your info:\n" @@ -1050,7 +1071,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:344 +#: ../drivers/tk760.py:343 msgid "" "Follow these instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1077,7 +1098,7 @@ msgid "" "3 - Disconnect your interface cable\n" msgstr "" -#: ../drivers/th_uv8000.py:539 +#: ../drivers/th_uv8000.py:531 msgid "" "Follow these instructions to upload the radio memory:\n" "1 - Turn off your radio\n" @@ -1086,7 +1107,7 @@ msgid "" "4 - Radio > Upload to radio\n" msgstr "" -#: ../drivers/ic2730.py:321 +#: ../drivers/ic2730.py:320 msgid "" "Follow these instructions to upload your config:\n" "1 - Turn off your radio\n" @@ -1116,7 +1137,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/tk760.py:350 +#: ../drivers/tk760.py:349 msgid "" "Follow these instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1125,7 +1146,7 @@ msgid "" "4 - Click OK to start\n" msgstr "" -#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:522 +#: ../drivers/vgc.py:599 ../drivers/lt725uv.py:497 msgid "" "Follow this instructions to download your info:\n" "1 - Turn off your radio\n" @@ -1134,7 +1155,7 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/tk270.py:341 +#: ../drivers/tk270.py:340 msgid "" "Follow this instructions to read your radio:\n" "1 - Turn off your radio\n" @@ -1143,9 +1164,9 @@ msgid "" "4 - Do the download of your radio data\n" msgstr "" -#: ../drivers/vgc.py:605 ../drivers/mursv1.py:349 -#: ../drivers/baofeng_wp970i.py:332 ../drivers/gmrsuv1.py:398 -#: ../drivers/lt725uv.py:528 ../drivers/tdxone_tdq8a.py:462 +#: ../drivers/vgc.py:605 ../drivers/mursv1.py:348 +#: ../drivers/baofeng_wp970i.py:331 ../drivers/gmrsuv1.py:398 +#: ../drivers/lt725uv.py:503 ../drivers/tdxone_tdq8a.py:461 #: ../drivers/uv6r.py:348 ../drivers/uv5x3.py:424 ../drivers/gmrsv2.py:370 msgid "" "Follow this instructions to upload your info:\n" @@ -1155,7 +1176,7 @@ msgid "" "4 - Do the upload of your radio data\n" msgstr "" -#: ../drivers/tk270.py:347 +#: ../drivers/tk270.py:346 msgid "" "Follow this instructions to write your radio:\n" "1 - Turn off your radio\n" @@ -1197,7 +1218,7 @@ msgstr "该存储" msgid "Goto Memory:" msgstr "该存储" -#: ../wxui/clone.py:319 ../wxui/clone.py:401 +#: ../wxui/clone.py:35 #, fuzzy msgid "Help Me..." msgstr "在线帮助..." @@ -1330,7 +1351,7 @@ msgid "" "despite this risk?" msgstr "" -#: ../wxui/clone.py:111 +#: ../wxui/clone.py:113 msgid "Loading settings" msgstr "" @@ -1361,7 +1382,7 @@ msgstr "" msgid "Mode" msgstr "制式" -#: ../wxui/clone.py:243 +#: ../wxui/clone.py:246 msgid "Model" msgstr "型号" @@ -1384,7 +1405,7 @@ msgstr "模块" msgid "Module loaded successfully" msgstr "" -#: ../wxui/clone.py:366 +#: ../wxui/clone.py:374 #, python-format msgid "More than one port found: %s" msgstr "" @@ -1533,7 +1554,7 @@ msgstr "" msgid "Please be sure to quit CHIRP before installing the new version!" msgstr "" -#: ../drivers/ftlx011.py:303 +#: ../drivers/ftlx011.py:302 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1548,7 +1569,7 @@ msgid "" "get into normal mode.\n" msgstr "" -#: ../drivers/ftlx011.py:294 +#: ../drivers/ftlx011.py:293 msgid "" "Please follow this steps carefully:\n" "1 - Turn on your radio\n" @@ -1571,11 +1592,11 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../wxui/clone.py:344 +#: ../wxui/clone.py:351 msgid "Plug in your cable and then click OK" msgstr "" -#: ../wxui/clone.py:236 +#: ../wxui/clone.py:239 msgid "Port" msgstr "端口" @@ -1619,12 +1640,12 @@ msgstr "DTCS 接收代码" msgid "Radio" msgstr "电台" -#: ../drivers/ft60.py:86 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 +#: ../drivers/ft60.py:85 ../drivers/ft450d.py:495 ../drivers/ft817.py:408 #, python-format msgid "Radio did not ack block %i" msgstr "" -#: ../wxui/clone.py:494 ../wxui/clone.py:559 +#: ../wxui/clone.py:504 ../wxui/clone.py:569 #, fuzzy msgid "Radio information" msgstr "{information}" @@ -1836,7 +1857,7 @@ msgstr "" msgid "This is an early stage beta driver - upload at your own risk\n" msgstr "" -#: ../drivers/bj9900.py:112 +#: ../drivers/bj9900.py:108 msgid "" "This is experimental support for BJ-9900 which is still under development.\n" "Please ensure you have a good backup with OEM software.\n" @@ -1885,12 +1906,12 @@ msgstr "接收亚音频" msgid "Tuning Step" msgstr "调谐间隔" -#: ../wxui/clone.py:338 ../wxui/clone.py:345 ../wxui/clone.py:356 -#: ../wxui/clone.py:363 ../wxui/clone.py:367 +#: ../wxui/clone.py:345 ../wxui/clone.py:352 ../wxui/clone.py:363 +#: ../wxui/clone.py:371 ../wxui/clone.py:375 msgid "USB Port Finder" msgstr "" -#: ../wxui/clone.py:354 +#: ../wxui/clone.py:361 msgid "" "Unable to determine port for your cable. Check your drivers and connections." msgstr "" @@ -1930,11 +1951,11 @@ msgstr "无法变更此型号电台" msgid "United States" msgstr "" -#: ../wxui/clone.py:337 +#: ../wxui/clone.py:344 msgid "Unplug your cable (if needed) and then click OK" msgstr "" -#: ../wxui/clone.py:574 +#: ../wxui/clone.py:584 #, fuzzy msgid "Upload instructions" msgstr "{instructions}" @@ -1981,7 +2002,7 @@ msgstr "" msgid "Value must be zero or greater" msgstr "" -#: ../wxui/clone.py:239 +#: ../wxui/clone.py:242 msgid "Vendor" msgstr "厂商" @@ -2007,7 +2028,7 @@ msgstr "" msgid "Would you like CHIRP to install a desktop icon for you?" msgstr "" -#: ../wxui/clone.py:361 +#: ../wxui/clone.py:369 msgid "Your cable appears to be on port:" msgstr "" diff --git a/tests/Python3_Driver_Testing.md b/tests/Python3_Driver_Testing.md index a488f8dcf..217015289 100644 --- a/tests/Python3_Driver_Testing.md +++ b/tests/Python3_Driver_Testing.md @@ -233,6 +233,8 @@ | QYT_KT8900R | [Implied by BTECH_UV-2501+220](#user-content-BTECH_UV-2501+220) | 11-Nov-2022 | Yes | 0.13% | | QYT_KT980PLUS | [Implied by BTECH_UV-25X2](#user-content-BTECH_UV-25X2) | 11-Nov-2022 | Yes | 0.09% | | Quansheng_TG-UV2+ | [Reported working](https://chirp.danplanet.com/issues/10398) | 26-Feb-2023 | Yes | 0.05% | +| Quansheng_UV-K5 | [@sq5bpf](https://github.com/sq5bpf) | 29-May-2023 | Yes | | +| Quansheng_UV-K5_modified_firmware_nolimits | [@sq5bpf](https://github.com/sq5bpf) | 29-May-2023 | Yes | | | RT_Systems_CSV | | | | | | Radioddity_DB25-G | [@KC9HI](https://github.com/KC9HI) | 11-Nov-2022 | Yes | 0.17% | | Radioddity_GA-2S | [@KC9HI](https://github.com/KC9HI) | 4-Dec-2022 | Yes | 0.19% | @@ -410,11 +412,11 @@ | Zastone_ZT-X6 | [Implied by Retevis_RT22](#user-content-Retevis_RT22) | 9-Dec-2022 | Yes | 0.11% | ## Stats -**Drivers:** 407 +**Drivers:** 409 -**Tested:** 86% (351/56) (93% of usage stats) +**Tested:** 86% (353/56) (93% of usage stats) -**Byte clean:** 89% (366/41) +**Byte clean:** 89% (368/41) ## Meaning of this testing diff --git a/tests/images/Quansheng_UV-K5.img b/tests/images/Quansheng_UV-K5.img new file mode 100644 index 0000000000000000000000000000000000000000..4bdae31aa56a5a779fd1d158f4d308a9c5698d08 GIT binary patch literal 8361 zcmeI0-)j?D6vxj@XOc0tjbg0TvSIBHiDDr$ZEXc#N^5Iko9)kO8-!ponvAy7YP3xh zeGnx+tNVP&=Xd-p z(nNJNa`W9^7}wMwFLqvHym2G4@!&G!x;kWO?-j=N^~g8>`jv4*19I=k?~H>%#^OEac_ze{WGLmHgxfkHp7|PoBcp{xLujiT|=#29N|< z5SGLxfTdEYOcHc&p-K@v0tn7I&Vlr$(cJLKgH|?k$V%I$kL#`bJDe9lMqx)2$Uz?o zT&adNR_&xg?z(7@QPtX5-nq1Q>~e1HktlLRd}0KmmBjLlo_*o4TCo#lRDem!l_yhf zcg?SS9$K$dMwvc`6O`%mI6-;017swuhF$E^r@Hj1E`6#?pX$=5R_a?eg5PilxC7h) z?f`dyJHQ>_4sZv!1K*qjJ>3HXv>#CIu7xt~2b{i%GVKRcyKA9L`vKMNS}4ACv!htu@rVHMnI{9dchMNwhQu8#W`y zH~W2S6t73N_cMY4e@*pTlEbOeyE&0an5J1M6uz+j zx%smE&NJq{?tSb1z!U{RgFc9ZMO0mZJ4DlK_8B1nA=m>$U=Y1UxK7l*VEHPgc0)bU z;w7twU}vo@Yt;rQr!wa8xp(GF8iYgnXnsn|Wm0W}=1*p~srTzAQvJD%(XWqAO^nPX z^O0<%C#uCKI*umWB5cn1q@GDyv00L{BIZImGNaDN`}J(($ZR??txpV$XH}NB;+fRU wG?_ch*5TaP?7_+C!em=~I%UP?l3F{fC1><@qbHmn?2Vin>>ba=Mx(nw0&p9lmH+?% literal 0 HcmV?d00001 diff --git a/tests/images/Quansheng_UV-K5_modified_firmware_nolimits.img b/tests/images/Quansheng_UV-K5_modified_firmware_nolimits.img new file mode 100644 index 0000000000000000000000000000000000000000..4bdae31aa56a5a779fd1d158f4d308a9c5698d08 GIT binary patch literal 8361 zcmeI0-)j?D6vxj@XOc0tjbg0TvSIBHiDDr$ZEXc#N^5Iko9)kO8-!ponvAy7YP3xh zeGnx+tNVP&=Xd-p z(nNJNa`W9^7}wMwFLqvHym2G4@!&G!x;kWO?-j=N^~g8>`jv4*19I=k?~H>%#^OEac_ze{WGLmHgxfkHp7|PoBcp{xLujiT|=#29N|< z5SGLxfTdEYOcHc&p-K@v0tn7I&Vlr$(cJLKgH|?k$V%I$kL#`bJDe9lMqx)2$Uz?o zT&adNR_&xg?z(7@QPtX5-nq1Q>~e1HktlLRd}0KmmBjLlo_*o4TCo#lRDem!l_yhf zcg?SS9$K$dMwvc`6O`%mI6-;017swuhF$E^r@Hj1E`6#?pX$=5R_a?eg5PilxC7h) z?f`dyJHQ>_4sZv!1K*qjJ>3HXv>#CIu7xt~2b{i%GVKRcyKA9L`vKMNS}4ACv!htu@rVHMnI{9dchMNwhQu8#W`y zH~W2S6t73N_cMY4e@*pTlEbOeyE&0an5J1M6uz+j zx%smE&NJq{?tSb1z!U{RgFc9ZMO0mZJ4DlK_8B1nA=m>$U=Y1UxK7l*VEHPgc0)bU z;w7twU}vo@Yt;rQr!wa8xp(GF8iYgnXnsn|Wm0W}=1*p~srTzAQvJD%(XWqAO^nPX z^O0<%C#uCKI*umWB5cn1q@GDyv00L{BIZImGNaDN`}J(($ZR??txpV$XH}NB;+fRU wG?_ch*5TaP?7_+C!em=~I%UP?l3F{fC1><@qbHmn?2Vin>>ba=Mx(nw0&p9lmH+?% literal 0 HcmV?d00001 diff --git a/tests/py3_driver_testers.txt b/tests/py3_driver_testers.txt index 73dd42fea..d9d6177d5 100644 --- a/tests/py3_driver_testers.txt +++ b/tests/py3_driver_testers.txt @@ -196,6 +196,8 @@ Puxing_PX-888K,#10544,09-May-2023 Q-MAC_HF-90_v300_or_earlier,@fthain,9-Mar-2023 Q-MAC_HF-90_v301_or_later,@fthain,9-Mar-2023 Quansheng_TG-UV2+,#10398,26-Feb-2023 +Quansheng_UV-K5,@sq5bpf,29-May-2023 +Quansheng_UV-K5_modified_firmware_nolimits,@sq5bpf,29-May-2023 QYT_KT-8R,@KC9HI,11-Nov-2022 QYT_KT-UV980,+WACCOM_MINI-8900,11-Nov-2022 QYT_KT-WP12,+Anysecu_WP-9900,11-Nov-2022 From 638613e0fc818b9e23be9b1abbf471dc979bb648 Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Mon, 26 Jun 2023 18:25:01 -0700 Subject: [PATCH 2/5] Allow relaxing UV-K5 band limits for modified FW This removes the modified firmware subclass for the UV-K5 and adds a virtual setting that allows relaxing the band checking at runtime for users with modified firmware. It does that by exposing the wider range in the static valid_bands list, and instead enforcing the OEM limits in validate_memory(). If the user toggles the virtual setting, then validate_memory() starts (or stops) honoring the wider set of limits. Note that if the modified firmware adds some sentinel we can use to detect it, we can simply remove this toggle and detect it from the memory or clone conversation itself. Further note that we can persist this setting in image metadata to make it sticky across images (although this patch does not do that). Related to #10478 --- chirp/drivers/uvk5.py | 49 ++++++------------ tests/Python3_Driver_Testing.md | 7 ++- ...sheng_UV-K5_modified_firmware_nolimits.img | Bin 8361 -> 0 bytes tests/py3_driver_testers.txt | 1 - 4 files changed, 19 insertions(+), 38 deletions(-) delete mode 100644 tests/images/Quansheng_UV-K5_modified_firmware_nolimits.img diff --git a/chirp/drivers/uvk5.py b/chirp/drivers/uvk5.py index 99a6327d5..640a6d99c 100644 --- a/chirp/drivers/uvk5.py +++ b/chirp/drivers/uvk5.py @@ -595,15 +595,15 @@ def do_upload(radio): return True -def _find_band(self, hz): +def _find_band(nolimits, hz): mhz = hz/1000000.0 - if self.FIRMWARE_NOLIMITS: + if nolimits: B = BANDS_NOLIMITS else: B = BANDS # currently the hacked firmware sets band=1 below 50MHz - if self.FIRMWARE_NOLIMITS and mhz < 50.0: + if nolimits and mhz < 50.0: return 1 for a in B: @@ -620,7 +620,7 @@ class UVK5Radio(chirp_common.CloneModeRadio): BAUD_RATE = 38400 NEEDS_COMPAT_SERIAL = False FIRMWARE_VERSION = "" - FIRMWARE_NOLIMITS = False + _expanded_limits = False def get_prompts(x=None): rp = chirp_common.RadioPrompts() @@ -679,15 +679,11 @@ def get_features(self): # This radio supports memories 1-200, 201-214 are the VFO memories rf.memory_bounds = (1, 200) - # This is what the BK4819 chip supports - # Will leave it in a comment, might be useful someday - # rf.valid_bands = [(18000000, 620000000), - # (840000000, 1300000000) - # ] rf.valid_bands = [] - for a in BANDS: + for a in BANDS_NOLIMITS: rf.valid_bands.append( - (int(BANDS[a][0]*1000000), int(BANDS[a][1]*1000000))) + (int(BANDS_NOLIMITS[a][0]*1000000), + int(BANDS_NOLIMITS[a][1]*1000000))) return rf # Do a download of the radio from the serial port @@ -720,17 +716,17 @@ def validate_memory(self, mem): txfreq = mem.freq # find band - band = _find_band(self, txfreq) + band = _find_band(self._expanded_limits, txfreq) if band is False: msg = "Transmit frequency %.4fMHz is not supported by this radio" \ % (txfreq/1000000.0) - msgs.append(chirp_common.ValidationWarning(msg)) + msgs.append(chirp_common.ValidationError(msg)) - band = _find_band(self, mem.freq) + band = _find_band(self._expanded_limits, mem.freq) if band is False: msg = "The frequency %.4fMHz is not supported by this radio" \ % (mem.freq/1000000.0) - msgs.append(chirp_common.ValidationWarning(msg)) + msgs.append(chirp_common.ValidationError(msg)) return msgs @@ -1267,6 +1263,10 @@ def set_settings(self, settings): _mem.key2_longpress_action = KEYACTIONS_LIST.index( str(element.value)) + if element.get_name() == "nolimits": + LOG.warning("User expanded band limits") + self._expanded_limits = bool(element.value) + def get_settings(self): _mem = self._memobj basic = RadioSettingGroup("basic", "Basic Settings") @@ -1870,8 +1870,7 @@ def get_settings(self): roinfo.append(rs) # No limits version for hacked firmware - val = RadioSettingValueBoolean(self.FIRMWARE_NOLIMITS) - val.set_mutable(False) + val = RadioSettingValueBoolean(self._expanded_limits) rs = RadioSetting("nolimits", "Limits disabled for modified firmware", val) roinfo.append(rs) @@ -2014,19 +2013,3 @@ def set_memory(self, mem): _mem4.channel_attributes[number].is_scanlist2 = 0 return mem - - -@directory.register -class UVK5Radio_nolimit(UVK5Radio): - VENDOR = "Quansheng" - MODEL = "UV-K5 (modified firmware)" - VARIANT = "nolimits" - FIRMWARE_NOLIMITS = True - - def get_features(self): - rf = UVK5Radio.get_features(self) - # This is what the BK4819 chip supports - rf.valid_bands = [(18000000, 620000000), - (840000000, 1300000000) - ] - return rf diff --git a/tests/Python3_Driver_Testing.md b/tests/Python3_Driver_Testing.md index 217015289..f71f6123a 100644 --- a/tests/Python3_Driver_Testing.md +++ b/tests/Python3_Driver_Testing.md @@ -234,7 +234,6 @@ | QYT_KT980PLUS | [Implied by BTECH_UV-25X2](#user-content-BTECH_UV-25X2) | 11-Nov-2022 | Yes | 0.09% | | Quansheng_TG-UV2+ | [Reported working](https://chirp.danplanet.com/issues/10398) | 26-Feb-2023 | Yes | 0.05% | | Quansheng_UV-K5 | [@sq5bpf](https://github.com/sq5bpf) | 29-May-2023 | Yes | | -| Quansheng_UV-K5_modified_firmware_nolimits | [@sq5bpf](https://github.com/sq5bpf) | 29-May-2023 | Yes | | | RT_Systems_CSV | | | | | | Radioddity_DB25-G | [@KC9HI](https://github.com/KC9HI) | 11-Nov-2022 | Yes | 0.17% | | Radioddity_GA-2S | [@KC9HI](https://github.com/KC9HI) | 4-Dec-2022 | Yes | 0.19% | @@ -412,11 +411,11 @@ | Zastone_ZT-X6 | [Implied by Retevis_RT22](#user-content-Retevis_RT22) | 9-Dec-2022 | Yes | 0.11% | ## Stats -**Drivers:** 409 +**Drivers:** 408 -**Tested:** 86% (353/56) (93% of usage stats) +**Tested:** 86% (352/56) (93% of usage stats) -**Byte clean:** 89% (368/41) +**Byte clean:** 89% (367/41) ## Meaning of this testing diff --git a/tests/images/Quansheng_UV-K5_modified_firmware_nolimits.img b/tests/images/Quansheng_UV-K5_modified_firmware_nolimits.img deleted file mode 100644 index 4bdae31aa56a5a779fd1d158f4d308a9c5698d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8361 zcmeI0-)j?D6vxj@XOc0tjbg0TvSIBHiDDr$ZEXc#N^5Iko9)kO8-!ponvAy7YP3xh zeGnx+tNVP&=Xd-p z(nNJNa`W9^7}wMwFLqvHym2G4@!&G!x;kWO?-j=N^~g8>`jv4*19I=k?~H>%#^OEac_ze{WGLmHgxfkHp7|PoBcp{xLujiT|=#29N|< z5SGLxfTdEYOcHc&p-K@v0tn7I&Vlr$(cJLKgH|?k$V%I$kL#`bJDe9lMqx)2$Uz?o zT&adNR_&xg?z(7@QPtX5-nq1Q>~e1HktlLRd}0KmmBjLlo_*o4TCo#lRDem!l_yhf zcg?SS9$K$dMwvc`6O`%mI6-;017swuhF$E^r@Hj1E`6#?pX$=5R_a?eg5PilxC7h) z?f`dyJHQ>_4sZv!1K*qjJ>3HXv>#CIu7xt~2b{i%GVKRcyKA9L`vKMNS}4ACv!htu@rVHMnI{9dchMNwhQu8#W`y zH~W2S6t73N_cMY4e@*pTlEbOeyE&0an5J1M6uz+j zx%smE&NJq{?tSb1z!U{RgFc9ZMO0mZJ4DlK_8B1nA=m>$U=Y1UxK7l*VEHPgc0)bU z;w7twU}vo@Yt;rQr!wa8xp(GF8iYgnXnsn|Wm0W}=1*p~srTzAQvJD%(XWqAO^nPX z^O0<%C#uCKI*umWB5cn1q@GDyv00L{BIZImGNaDN`}J(($ZR??txpV$XH}NB;+fRU wG?_ch*5TaP?7_+C!em=~I%UP?l3F{fC1><@qbHmn?2Vin>>ba=Mx(nw0&p9lmH+?% diff --git a/tests/py3_driver_testers.txt b/tests/py3_driver_testers.txt index d9d6177d5..1485d6210 100644 --- a/tests/py3_driver_testers.txt +++ b/tests/py3_driver_testers.txt @@ -197,7 +197,6 @@ Q-MAC_HF-90_v300_or_earlier,@fthain,9-Mar-2023 Q-MAC_HF-90_v301_or_later,@fthain,9-Mar-2023 Quansheng_TG-UV2+,#10398,26-Feb-2023 Quansheng_UV-K5,@sq5bpf,29-May-2023 -Quansheng_UV-K5_modified_firmware_nolimits,@sq5bpf,29-May-2023 QYT_KT-8R,@KC9HI,11-Nov-2022 QYT_KT-UV980,+WACCOM_MINI-8900,11-Nov-2022 QYT_KT-WP12,+Anysecu_WP-9900,11-Nov-2022 From 91695523b2e687187caa8020938f7ec115caf168 Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Mon, 26 Jun 2023 18:31:39 -0700 Subject: [PATCH 3/5] Remove UV-K5 development version string This was for use during development but is removed for final inclusion in CHIRP itself. Related to #10478 --- chirp/drivers/uvk5.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/chirp/drivers/uvk5.py b/chirp/drivers/uvk5.py index 640a6d99c..a6497c38f 100644 --- a/chirp/drivers/uvk5.py +++ b/chirp/drivers/uvk5.py @@ -45,9 +45,6 @@ # might be useful for someone debugging some obscure memory issue DEBUG_SHOW_MEMORY_ACTIONS = False -# TODO: remove the driver version when it's in mainline chirp -DRIVER_VERSION = "Quansheng UV-K5 driver v20230626 (c) Jacek Lipkowski SQ5BPF" - MEM_FORMAT = """ #seekto 0x0000; struct { @@ -1862,13 +1859,6 @@ def get_settings(self): rs = RadioSetting("fw_ver", "Firmware Version", val) roinfo.append(rs) - # TODO: remove showing the driver version when it's in mainline chirp - # Driver version - val = RadioSettingValueString(0, 128, DRIVER_VERSION) - val.set_mutable(False) - rs = RadioSetting("driver_ver", "Driver version", val) - roinfo.append(rs) - # No limits version for hacked firmware val = RadioSettingValueBoolean(self._expanded_limits) rs = RadioSetting("nolimits", "Limits disabled for modified firmware", From 93d5373b9927e68c46307942d86184d3a4552eae Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Mon, 26 Jun 2023 18:42:35 -0700 Subject: [PATCH 4/5] Don't override special names on UV-K5 --- chirp/drivers/uvk5.py | 1 - 1 file changed, 1 deletion(-) diff --git a/chirp/drivers/uvk5.py b/chirp/drivers/uvk5.py index a6497c38f..74ab357f9 100644 --- a/chirp/drivers/uvk5.py +++ b/chirp/drivers/uvk5.py @@ -869,7 +869,6 @@ def get_memory(self, number2): return mem if number > 199: - mem.name = VFO_CHANNEL_NAMES[number-200] mem.immutable = ["name", "scanlists"] else: _mem2 = self._memobj.channelname[number] From 18cfb2101f4d33cf1a14f587d4478901a1459331 Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Mon, 26 Jun 2023 18:39:53 -0700 Subject: [PATCH 5/5] Auto-size row labels for long strings This makes us automatically size the row labels after building the memory editor in case the driver has very long special memory labels. Related to #10478 --- chirp/wxui/memedit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/chirp/wxui/memedit.py b/chirp/wxui/memedit.py index b6b24aec3..d8b3cfcfb 100644 --- a/chirp/wxui/memedit.py +++ b/chirp/wxui/memedit.py @@ -1659,6 +1659,7 @@ def update_font(self, refresh=True): self.refresh() wx.CallAfter(self._grid.AutoSizeColumns, setAsMin=False) wx.CallAfter(self._grid.AutoSizeRows, setAsMin=False) + wx.CallAfter(self._grid.SetRowLabelSize, wx.grid.GRID_AUTOSIZE) def cb_copy(self, cut=False): rows = self.get_selected_rows_safe()