diff --git a/i18n/en_US.ts b/i18n/en_US.ts index f8b79a6..4bd1306 100644 --- a/i18n/en_US.ts +++ b/i18n/en_US.ts @@ -44,86 +44,41 @@ Simulate - - - u - - UID 4 or 7 bytes. If not specified, the UID 4B from emulator memory will be used - - - --atqa - - Provide explicit ATQA (2 bytes) - - - --sak - - - - - n - - Automatically exit simulation after <numreads> blocks have been read by reader. 0 = infinite - - - i - - Interactive, means that console will not be returned until simulation finishes or is aborted - - - x - - Crack, performs the 'reader attack', nr/ar attack against a legitimate reader, fishes out the key(s) - - - e - - set keys found from 'reader attack' to emulator memory (implies x(--crack) and i) - - - -v - - verbose output - - - f - - Provide explicit SAK (1 byte) @@ -134,11 +89,6 @@ get UIDs to use for 'reader attack' from file 'f <filename.txt>' (implies x and i) - - - r - - Generate random nonces instead of sequential nonces. Standard reader attack won't work with this option, only moebius attack works @@ -152,21 +102,6 @@ Set Parameter - - - UID: - - - - - ATQA: - - - - - SAK: - - MF_trailerDecoderDialog @@ -180,16 +115,6 @@ Blocks - - - 4 - - - - - 16 - - Trailer Data: @@ -202,124 +127,110 @@ - - Cx0 - - - - - Cx1 - - - - - Cx2 - - - - - Cx3 - - - - + Data Block Permission: - + Block0 - + Block1 - + Block2 - - + + Read - - + + Write - + Increase - + Decrease/Transfer/Restore - + Trailer Block Permission: - - + + KeyA - + Access Bits - - + + KeyB - + Reference: MF1S70YYX_V1 Product data sheet Rev. 3.2 — 23 November 2017 - + Note:the Access Bits usually contains 4 bytes(8 hex symbols), but only the first 3 bytes matters. You can set the 4th byte randomly. - + Invalid! It could make the whole sector blocked irreversibly! - + + Valid - - - - - - + + KeyB cannot serve for authentication + + + + + + + + + Block - + KeyA+B @@ -352,213 +263,213 @@ It could make the whole sector blocked irreversibly! - + Card Type - + MINI 320 - + 1K 1024 - + 2K 2048 - + 4K 4096 - + File - - + + Load - - + + Save - + Data - + Key - + Attack - + Card Info - + Check Default - + Nested - + Hardnested - + Darkside - + Read/Write - + Block: - + Key: - + Key Type: - + List Data - + LF - + other - + Divisor: - + Actural Freq: 125.000kHz - + Trigger threshold: - + Samples to skip: - + Get Config - + Set Config - - + + Data: - + Normal(Require Password) - + Dump - + Restore - + Chinese Magic Card(Without Password) - + Lock UFUID Card - - + + About UID Card - + Set Parameter - + Wipe - - + + Simulate - - + + Clear @@ -603,459 +514,492 @@ It could make the whole sector blocked irreversibly! - - Set Fonts + + + Read One - Read One + Write One - Write One + + Read Selected - - Read Selected - - - - - - + Write Selected - - - + + + Sniff - + Sniff(14a) - + LF Config - + Frequency - - 125k - - - - - 134k - - - - + You might need a modified LF antenna if the freq is not 125k/134k. When setting the freq, the "hw setlfdivisor" will also be called. - + Bits per sample: - + Decimation: - + Averaging: - + Reset - + LF Operation - + Search - + Read and search for valid known tag. - + Read - + Sniff low frequency signal with LF field ON. Use this to get raw data from a tag. - + Tune - + Measure LF antenna tuning. If the antenna voltage has a obvious drop after putting card on the antenna, it is likely that the tag is a LF tag. On Iceman/RRG repo, press the button on PM3 to stop measuring - + Sniff low frequency signal with LF field OFF. Use this to get raw data from a reader or the communication between a tag and a reader. - + T55xx - + Basic Configuration(Page 0 Block 0) - - + + Hex: - - + + Bin: - - + + Get from Data - - + + Set to Data - - + + Locked: - + Master Key: - + Data Bit Rate: - + eXtended Mode: - - + + Modulation: - + PSK Clock Freq: - + Answer on Request: - + One Time Pad: - + Max Block: - + Password: - + Seq. Terminator: - + Seq. Start Marker: - + Fast Downlink: - + Inverse Data: - + Init-Delay: - + Analog Front-End Option(Page 1 Block 3) - + Option Key: - + Soft Modulation: - + Clamp Voltage: - + Modulation Voltage: - + Clock Detection Threshold: - + Gap Detection Threshold: - + Write Dampling: - + Demod Delay: - + Downlink Protocol: - + T55xx Read Config - + Bit Rate: - + Seq. Term. - + Offset: - + Inverted: - + T5577 - + T5555 - + RawCommand - + History: - + ClearHistory - + Send - + ClearOutput - + Settings - + Client - + GUI working directory: - + Preload script path(Reconnect to apply): - + If the client requires some enviroment variables, you can make a script file(*.bat on Windows or *.sh on Linux) to configure them, then put the path of the script there. - + Client working directory(Reconnect to apply): - + On Windows, the client working directory should not be identical to the path of GUI, otherwise the client will use the wrong .dll file. - + Start arguments(Reconnect to apply): - + -f is necessary because the GUI need to handle the output in time. In some cases, the arguments should be set to "-p /dev/<port> -f" or "-p <port> -f". - + config.json - + Different clients require different config files. You can change the content of config file if the command format changes. - + Keep the client active even the PM3 hardware is disconnected.(Experimental) - + + UI + + + + + Opacity: + + + + + Theme: + + + + + + + + Set + + + + + (Restart this app to use new theme) + + + + + Global Font: + + + + + Data Font: + + + + + Command Font: + + + + + Latest Release: + + + + + Report Bugs: + + + + ../data - + <port> -f - + Config file(Reconnect to apply): - + Keep buttons enabled even the client is running or disconnected - - GUI - - - - + Language: - + Choose Language - + (Restart this app to use new language) @@ -1065,15 +1009,15 @@ or the communication between a tag and a reader. - - - - - - - - - + + + + + + + + + Info @@ -1089,14 +1033,14 @@ or the communication between a tag and a reader. - + Not Connected - - - + + + Failed to open @@ -1131,66 +1075,61 @@ or the communication between a tag and a reader. - - Plz select the font of data widget and key widget - - - - + Data must consists of 32 Hex symbols(Whitespace is allowed) - - + + Key must consists of 12 Hex symbols(Whitespace is allowed) - + Plz select the data file: - - - + + + Binary Data Files(*.bin *.dump) - - - + + + All Files(*.*) - + Plz select the key file: - + Plz select the location to save data file: - - - + + + Failed to save to - + Plz select the location to save key file: - - - + + + Binary Key Files(*.bin *.dump) @@ -1205,131 +1144,146 @@ or the communication between a tag and a reader. - - + + Text Data Files(*.txt *.eml) - + Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card. - + Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it. - + There are two versions of Chinese Magic Cards, the Gen1 and the Gen2. - + Gen1: - + also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands. - + Gen2: - + doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands. - + There are some types of Chinese Magic Card Gen2. - + CUID Card: - + the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command. - + (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>) - + FUID Card: - + you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to). - + (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.) - + UFUID Card: - + It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card). - + Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key). - + Plz select the trace file: - + Plz select the location to save trace file: + + + (None) + + + + + Dark + + + + + Light + + External file - - + + Trace Files(*.trc) - - + + Idle - + Stop - + Sec @@ -1339,37 +1293,37 @@ or the communication between a tag and a reader. - + KeyA - + KeyB - + HW Version: - + PM3: - + State: - + Running - + Actural Freq: @@ -1377,56 +1331,52 @@ or the communication between a tag and a reader. Mifare - + + Succeed! - - - - - - - + + + + + + + Info - + Plz provide at least one known key - - + + Failed! - + The Access Bits is invalid! It could make the whole sector blocked irreversibly! Continue to write? - - Succeed! - - - - + Failed to write to these blocks: - + Select them? - + Failed to read card. @@ -1443,21 +1393,6 @@ Continue to write? Target Type: - - - T5555 - - - - - T55x7 - - - - - EM410x - - Read diff --git a/i18n/zh_CN.qm b/i18n/zh_CN.qm index 05dc7be..864746b 100644 Binary files a/i18n/zh_CN.qm and b/i18n/zh_CN.qm differ diff --git a/i18n/zh_CN.ts b/i18n/zh_CN.ts index 7c3f628..5d1c5e5 100644 --- a/i18n/zh_CN.ts +++ b/i18n/zh_CN.ts @@ -44,101 +44,51 @@ Simulate 模拟 - - - u - - UID 4 or 7 bytes. If not specified, the UID 4B from emulator memory will be used 4或7字节的UID,如果不指定,则使用模拟器内存中的4字节UID - - - --atqa - - Provide explicit ATQA (2 bytes) 指定ATQA(2个字节) - - - --sak - - Provide explicit SAK (1 byte) 指定SAK(1个字节) - - - n - - Automatically exit simulation after <numreads> blocks have been read by reader. 0 = infinite 在读卡器读取<n>个块后自动退出模拟,n为0或不指定时永远不退出 - - - i - - Interactive, means that console will not be returned until simulation finishes or is aborted 交互模式,勾选后PM3客户端将在模拟完成或者模拟中断后才可继续使用 - - - x - - Crack, performs the 'reader attack', nr/ar attack against a legitimate reader, fishes out the key(s) 破解,对读卡器进行攻击,通过nr/ar攻击来钓出密码(无卡嗅探) - - - e - - set keys found from 'reader attack' to emulator memory (implies x(--crack) and i) 在获得密码后自动将密码写入模拟器内存(自动勾选x(--crack)和i) - - - -v - - verbose output 更多输出内容 - - - f - - get UIDs to use for 'reader attack' from file 'f <filename.txt>' (implies x and i) 从<filename.txt>当中获取用于破解读卡器的UID(批量模拟)(自动勾选x和i) - - - r - - Generate random nonces instead of sequential nonces. Standard reader attack won't work with this option, only moebius attack works @@ -152,21 +102,6 @@ Set Parameter 设置卡参数 - - - UID: - 卡号: - - - - ATQA: - - - - - SAK: - - MF_trailerDecoderDialog @@ -180,16 +115,6 @@ Blocks 块大小 - - - 4 - - - - - 16 - - Trailer Data: @@ -203,91 +128,71 @@ 手动设置访问情况: - - Cx0 - - - - - Cx1 - - - - - Cx2 - - - - - Cx3 - - - - + Data Block Permission: 数据块访问权限: - + Block0 块0 - + Block1 块1 - + Block2 块2 - - + + Read - - + + Write - + Increase 增加 - + Decrease/Transfer/Restore 减少/从缓冲区写入/读入至缓冲区 - + Trailer Block Permission: Trailer访问权限: - - + + KeyA 密钥A - + Access Bits 控制位 - - + + KeyB 密钥B - + Reference: MF1S70YYX_V1 Product data sheet Rev. 3.2 — 23 November 2017 @@ -296,34 +201,40 @@ MF1S70YYX_V1 Product data sheet Rev. 3.2 — 23 November 2017 - + Note:the Access Bits usually contains 4 bytes(8 hex symbols), but only the first 3 bytes matters. You can set the 4th byte randomly. 注意:Access Bits一般包含4个字节(8个16进制字符),但只有前3个字节决定访问情况,最后一个字节可任意设置。 - + Invalid! It could make the whole sector blocked irreversibly! 无效! 可能导致整个扇区被不可逆转地锁定! - + + Valid 有效 - - - - - - + + KeyB cannot serve for authentication + 密钥B无法用于认证 + + + + + + + + Block - + KeyA+B 密钥A+B @@ -356,173 +267,173 @@ It could make the whole sector blocked irreversibly! 选中密码块 - + Card Type 卡片类型 - + MINI 320 - + 1K 1024 - + 2K 2048 - + 4K 4096 - + File 文件 - - + + Load 加载 - - + + Save 保存 - + Data 数据 - + Key 密钥 - + Attack 破解 - + Card Info 读卡信息 - + Check Default 验证默认密码 - + Nested Nested攻击 - + Hardnested Hardested攻击 - + Darkside Darkside攻击 - + Read/Write 读/写 - + Block: 块: - + Key: 密钥: - + Key Type: 密钥类型: - + List Data 列出嗅探数据 - - + + Data: 数据: - + Normal(Require Password) 普通卡(需要密码) - + Dump Dump命令 - + Restore Restore命令 - + Chinese Magic Card(Without Password) UID卡(不需要密码) - + Lock UFUID Card 锁定UFUID卡 - - + + About UID Card 关于UID卡 - + Set Parameter 设置卡参数 - + Wipe 擦除 - - + + Simulate 模拟 - - + + Clear 清空 @@ -567,129 +478,114 @@ It could make the whole sector blocked irreversibly! Trailer解码 - - Set Fonts - 设置字体 - - - - + + Read One 读取单个块 - - + + Write One 写入单个块 - - - + + + Read Selected 读取选中块 - - - + + + Write Selected 写入选中块 - - - + + + Sniff 嗅探 - + Sniff(14a) 嗅探(14a) - + LF Config 低频配置 - + Frequency 频率 - - 125k - - - - - 134k - - - - + You might need a modified LF antenna if the freq is not 125k/134k. When setting the freq, the "hw setlfdivisor" will also be called. 如果频率不为125k/134k,则原装天线可能不适用。 设置频率后GUI会使用"hw setlfdivisor"改变底层分频系数。 - + Bits per sample: 采样精度(Bits per sample): - + Decimation: 抽取(Decimation): - + Averaging: 平均化(Averaging): - + Reset 重置 - + LF Operation 低频操作 - + Search 搜索 - + Read and search for valid known tag. 读卡并寻找已知类型的卡 - + Read 读取 - + Sniff low frequency signal with LF field ON. Use this to get raw data from a tag. 激活低频电磁场并读取原始信号。 该功能用于获取卡片原始数据。 - + Tune 调谐 - + Measure LF antenna tuning. If the antenna voltage has a obvious drop after putting card on the antenna, it is likely that the tag is a LF tag. On Iceman/RRG repo, press the button on PM3 to stop measuring @@ -698,7 +594,7 @@ On Iceman/RRG repo, press the button on PM3 to stop measuring 在冰人版固件下,如果需要停止测量,请按下PM3侧面的按钮 - + Sniff low frequency signal with LF field OFF. Use this to get raw data from a reader or the communication between a tag and a reader. @@ -707,387 +603,431 @@ or the communication between a tag and a reader. 或者卡片与读卡器的交互过程。 - + T55xx - + Basic Configuration(Page 0 Block 0) 基本配置区(页0 块0) - - + + Hex: 16进制: - - + + Bin: 2进制: - - + + Get from Data 从数据区导入 - - + + Set to Data 导出到数据区 - - + + Locked: 锁定(Locked): - + Master Key: - + Data Bit Rate: 数据比特率(Data Bit Rate): - + eXtended Mode: 扩展模式(eXtended Mode): - - + + Modulation: 调制方式(Modulation): - + PSK Clock Freq: - + Answer on Request: - + One Time Pad: - + Max Block: - + Password: 密码(Password): - + Seq. Terminator: - + Seq. Start Marker: - + Fast Downlink: - + Inverse Data: - + Init-Delay: - + Analog Front-End Option(Page 1 Block 3) 模拟前端选项区(页1 块3) - + Option Key: - + Soft Modulation: - + Clamp Voltage: - + Modulation Voltage: - + Clock Detection Threshold: - + Gap Detection Threshold: - + Write Dampling: - + Demod Delay: - + Downlink Protocol: - + T55xx Read Config T55xx读卡配置区 - + Bit Rate: 比特率(Bit Rate): - + Seq. Term. - + Offset: - + Inverted: - + T5577 - + T5555 - + RawCommand 原始命令 - + History: 命令历史: - + ClearHistory 清空历史 - + Send 发送 - + ClearOutput 清空输出 - + Settings 设置 - + Client 客户端 - + GUI working directory: GUI工作路径: - + ../data - + <port> -f - + Config file(Reconnect to apply): 配置文件(重连后生效): - + + UI + 界面 + + + Language: 语言: - + Choose Language 选择语言 - + (Restart this app to use new language) (重启此程序以使用新语言) - + + Opacity: + 透明度: + + + + Theme: + 主题: + + + + + + + Set + 设置 + + + + (Restart this app to use new theme) + (重启此程序以使用新主题) + + + + Global Font: + 全局字体: + + + + Data Font: + 数据字体: + + + + Command Font: + 命令字体: + + + + Latest Release: + 检查更新: + + + + Report Bugs: + 反馈问题: + + + Keep buttons enabled even the client is running or disconnected 保持所有按钮可点击,即使未连接客户端或有任务正在运行 - + LF 低频 - + other 其它 - + Divisor: 分频系数(Divisor): - + Actural Freq: 125.000kHz 实际频率: 125.000kHz - + Trigger threshold: 触发阈值(Trigger threshold): - + Samples to skip: 跳过前n个采样(Samples to skip): - + Get Config 获取当前配置 - + Set Config 改变当前配置 - + Preload script path(Reconnect to apply): 预加载脚本路径(重连后生效): - + If the client requires some enviroment variables, you can make a script file(*.bat on Windows or *.sh on Linux) to configure them, then put the path of the script there. 如果客户端需要配置环境变量才能正常运行,可以将配置环境变量所需的脚本文件(Windows系统内为*.bat,linux系统内为*.sh)路径填入此处。 - + Client working directory(Reconnect to apply): 客户端工作路径(重连后生效): - + On Windows, the client working directory should not be identical to the path of GUI, otherwise the client will use the wrong .dll file. 在Windows系统中,客户端工作路径与GUI程序所在路径不能相同,否则客户端会使用错误的.dll文件。 - + Start arguments(Reconnect to apply): 启动参数(重连后生效): - + -f is necessary because the GUI need to handle the output in time. In some cases, the arguments should be set to "-p /dev/<port> -f" or "-p <port> -f". -f选项用于使客户端实时返回命令回显,必须添加。部分情况下启动参数需设置为"-p /dev/<port> -f"或"-p <port> -f"。 - Config file path(Reconnect to apply): - 配置文件路径(重连后生效): - - - + config.json - + Different clients require different config files. You can change the content of config file if the command format changes. 不同客户端需要使用不同的配置文件。若命令格式发生改变,你可以尝试手动修改配置文件以适配。 - + Keep the client active even the PM3 hardware is disconnected.(Experimental) 在PM3断开后保持客户端运行(实验性功能) - - - GUI - 图形化界面 - - - - - - - - - - + + + + + + + + + Info 信息 @@ -1103,14 +1043,14 @@ or the communication between a tag and a reader. - + Not Connected 未连接 - - - + + + Failed to open 无法打开 @@ -1155,199 +1095,205 @@ or the communication between a tag and a reader. 部分数据和密码将被清除 - - Plz select the font of data widget and key widget - 请选择数据窗口和密钥窗口的字体 - - - + Data must consists of 32 Hex symbols(Whitespace is allowed) 数据必须由32个十六进制字符组成(中间可含有空格) - - + + Key must consists of 12 Hex symbols(Whitespace is allowed) 密钥必须由12个十六进制字符组成(中间可含有空格) - + Plz select the data file: 请选择数据文件: - - - + + + Binary Data Files(*.bin *.dump) 二进制数据文件(*.bin *.dump) - - - + + + All Files(*.*) 所有文件(*.*) - + Plz select the key file: 请选择密钥文件: - + Plz select the location to save data file: 请选择数据文件保存的位置: - - - + + + Failed to save to 无法保存至 - + Plz select the location to save key file: 请选择密钥文件保存的位置: - - - + + + Binary Key Files(*.bin *.dump) 二进制密码文件(*.bin *.dump) - - + + Text Data Files(*.txt *.eml) 文本数据文件(*.txt *.eml) - Text Key Files(*.txt *.eml) - 文本密码文件(*.txt *.eml) - - - + Normally, the Block 0 of a typical Mifare card, which contains the UID, is locked during the manufacture. Users cannot write anything to Block 0 or set a new UID to a normal Mifare card. 普通Mifare卡的块0无法写入,卡号也不能更改 - + Chinese Magic Cards(aka UID Cards) are some special cards whose Block 0 are writeable. And you can change UID by writing to it. UID卡(在国外叫Chinese Magic Card)的块0可写,卡号可变。 - + There are two versions of Chinese Magic Cards, the Gen1 and the Gen2. 国外把UID卡分为Chinese Magic Card Gen1和Gen2 - + Gen1: - + also called UID card in China. It responses to some backdoor commands so you can access any blocks without password. The Proxmark3 has a bunch of related commands(csetblk, cgetblk, ...) to deal with this type of card, and my GUI also support these commands. 指通常所说的UID卡,可以通过后门指令直接读写块而无需密码,在PM3和此GUI中有特殊命令处理这类卡片 - + Gen2: - + doesn't response to the backdoor commands, which means that a reader cannot detect whether it is a Chinese Magic Card or not by sending backdoor commands. 这个叫法在国内比较罕见,在国外指CUID/FUID/UFUID这类对后门指令不响应的卡(防火墙卡) - + There are some types of Chinese Magic Card Gen2. 以下是Gen2卡的详细介绍 - + CUID Card: CUID卡: - + the Block 0 is writeable, you can write to this block repeatedly by normal wrbl command. 可通过普通的写块命令来写块0,可重复擦写 - + (hf mf wrbl 0 A FFFFFFFFFFFF <the data you want to write>) (hf mf wrbl 0 A FFFFFFFFFFFF <待写入数据>) - + FUID Card: FUID卡: - + you can only write to Block 0 once. After that, it seems like a typical Mifare card(Block 0 cannot be written to). 块0只能写入一次 - + (some readers might try changing the Block 0, which could detect the CUID Card. In that case, you should use FUID card.) (更高级的穿防火墙卡,可以过一些能识别出CUID卡的读卡器) - + UFUID Card: UFUID卡: - + It behaves like a CUID card(or UID card? I'm not sure) before you send some special command to lock it. Once it is locked, you cannot change its Block 0(just like a typical Mifare card). 锁卡前和普通UID/CUID卡一样可以反复读写块0,用特殊命令锁卡后就和FUID卡一样了 - + Seemingly, these Chinese Magic Cards are more easily to be compromised by Nested Attack(it takes little time to get an unknown key). 所有UID卡都似乎更容易被Nested攻击破解 - + Plz select the trace file: 请选择trace文件: - + Plz select the location to save trace file: 请选择trace文件保存的位置: + + + (None) + (无) + + + + Dark + 暗黑 + + + + Light + 明亮 + External file 外部文件 - - + + Trace Files(*.trc) Trace文件(*.trc) - - + + Idle 空闲 - + Stop 停止 - + Sec 扇区 @@ -1357,37 +1303,37 @@ or the communication between a tag and a reader. - + KeyA 密钥A - + KeyB 密钥B - + HW Version: 固件版本: - + PM3: 连接状态: - + State: 运行状态: - + Running 正在运行 - + Actural Freq: 实际频率: @@ -1395,34 +1341,35 @@ or the communication between a tag and a reader. Mifare - + + Succeed! 成功! - - - - - - - + + + + + + + Info 信息 - + Plz provide at least one known key 请至少提供一个已知密码 - - + + Failed! 失败! - + The Access Bits is invalid! It could make the whole sector blocked irreversibly! Continue to write? @@ -1431,22 +1378,17 @@ Continue to write? 确定要写入吗? - - Succeed! - 成功! - - - + Failed to write to these blocks: 写入以下块失败: - + Select them? 选中这些块? - + Failed to read card. 读卡失败。 @@ -1463,21 +1405,6 @@ Continue to write? Target Type: 目标卡片类型: - - - T5555 - - - - - T55x7 - - - - - EM410x - - Read diff --git a/src/common/util.cpp b/src/common/util.cpp index 0130a42..24b5ab4 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -128,7 +128,7 @@ bool Util::chooseLanguage(QSettings* guiSettings, QMainWindow* window) return false; if(langMap[selectedText] == "(ext)") { - QString extPath = QFileDialog::getOpenFileName(nullptr, tr("Select the translation file:")); + QString extPath = QFileDialog::getOpenFileName(window, tr("Select the translation file:")); if(extPath.isEmpty()) return false; diff --git a/src/common/util.h b/src/common/util.h index bda759b..bc43d07 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -59,7 +59,7 @@ public: static ClientType getClientType(); static int rawTabIndex; static QDockWidget* rawDockPtr; - static bool chooseLanguage(QSettings *guiSettings, QMainWindow *window); + static bool chooseLanguage(QSettings *guiSettings, QMainWindow *window = nullptr); public slots: void processOutput(const QString& output); static void setClientType(Util::ClientType clientType); diff --git a/src/main.cpp b/src/main.cpp index 05ab4ef..5e45f45 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,7 +23,6 @@ int main(int argc, char *argv[]) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QApplication a(argc, argv); - MainWindow w; QSettings* settings = new QSettings("GUIsettings.ini", QSettings::IniFormat); settings->setIniCodec("UTF-8"); @@ -36,7 +35,7 @@ int main(int argc, char *argv[]) settings->endGroup(); if(languageName == "") { - if(Util::chooseLanguage(settings, &w)) + if(Util::chooseLanguage(settings)) { settings->beginGroup("language"); languageName = settings->value("name").toString(); @@ -53,11 +52,13 @@ int main(int argc, char *argv[]) } else languageFile = ":/i18n/" + languageName + ".qm"; - QTranslator* translator = new QTranslator(&w); + + // Note that the translator must be created before the application's widgets. + QTranslator* translator = new QTranslator(); if(translator->load(languageFile)) a.installTranslator(translator); else - QMessageBox::information(&w, "Error", "Can't load " + languageFile + " as translation file."); + QMessageBox::information(nullptr, "Error", "Can't load " + languageFile + " as translation file."); QFile* themeFile = new QFile(); QTextStream* themeStream = new QTextStream(); @@ -87,6 +88,7 @@ int main(int argc, char *argv[]) delete settings; settings = nullptr; + MainWindow w; w.initUI(); w.show(); return a.exec(); diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index ca2a943..0b0122d 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -1286,7 +1286,7 @@ - 125k + 125k true @@ -1302,7 +1302,7 @@ - 134k + 134k @@ -3192,7 +3192,7 @@ or the communication between a tag and a reader. - <html><head/><body><p><a href="https://github.com/wh201906/Proxmark3GUI/releases/"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/wh201906/Proxmark3GUI/releases/</span></a></p></body></html> + <html><head/><body><p><a href="https://github.com/wh201906/Proxmark3GUI/releases/"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/wh201906/Proxmark3GUI/releases/</span></a></p></body></html> true @@ -3222,7 +3222,7 @@ or the communication between a tag and a reader. - <html><head/><body><p><a href="https://github.com/wh201906/Proxmark3GUI/issues/"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/wh201906/Proxmark3GUI/issues/</span></a></p></body></html> + <html><head/><body><p><a href="https://github.com/wh201906/Proxmark3GUI/issues/"><span style=" text-decoration: underline; color:#0000ff;">https://github.com/wh201906/Proxmark3GUI/issues/</span></a></p></body></html> true diff --git a/src/ui/mf_sim_simdialog.ui b/src/ui/mf_sim_simdialog.ui index 2fcbf31..4b82bb2 100644 --- a/src/ui/mf_sim_simdialog.ui +++ b/src/ui/mf_sim_simdialog.ui @@ -35,7 +35,7 @@ - u + u @@ -102,7 +102,7 @@ - --atqa + --atqa @@ -169,7 +169,7 @@ - --sak + --sak @@ -236,7 +236,7 @@ - n + n @@ -303,7 +303,7 @@ - i + i @@ -354,7 +354,7 @@ - x + x @@ -405,7 +405,7 @@ - e + e @@ -456,7 +456,7 @@ - f + f @@ -523,7 +523,7 @@ - r + r @@ -574,7 +574,7 @@ - -v + -v diff --git a/src/ui/mf_trailerdecoderdialog.ui b/src/ui/mf_trailerdecoderdialog.ui index 3d3aa63..f79015c 100644 --- a/src/ui/mf_trailerdecoderdialog.ui +++ b/src/ui/mf_trailerdecoderdialog.ui @@ -25,7 +25,7 @@ - 4 + 4 true @@ -35,7 +35,7 @@ - 16 + 16 @@ -131,7 +131,7 @@ - Cx0 + Cx0 @@ -152,7 +152,7 @@ - Cx1 + Cx1 @@ -173,7 +173,7 @@ - Cx2 + Cx2 @@ -194,7 +194,7 @@ - Cx3 + Cx3 @@ -214,84 +214,84 @@ - C10 + C10 - C11 + C11 - C12 + C12 - C13 + C13 - C20 + C20 - C21 + C21 - C22 + C22 - C23 + C23 - C30 + C30 - C31 + C31 - C32 + C32 - C33 + C33 diff --git a/src/ui/mf_uid_parameterdialog.ui b/src/ui/mf_uid_parameterdialog.ui index 15d5129..3b45dab 100644 --- a/src/ui/mf_uid_parameterdialog.ui +++ b/src/ui/mf_uid_parameterdialog.ui @@ -19,7 +19,7 @@ - UID: + UID: @@ -29,7 +29,7 @@ - ATQA: + ATQA: @@ -39,7 +39,7 @@ - SAK: + SAK: diff --git a/src/ui/t55xxtab.ui b/src/ui/t55xxtab.ui index 7ead35a..e25a815 100644 --- a/src/ui/t55xxtab.ui +++ b/src/ui/t55xxtab.ui @@ -29,14 +29,14 @@ - T5555 + T5555 - T55x7 + T55x7 true @@ -61,7 +61,7 @@ - EM410x + EM410x