From a6e89b09fd26f1d046f1b5084e9ada466fda7ffa Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Sat, 11 Jan 2020 13:02:18 +0800 Subject: [PATCH 01/30] New translations Preferences.strings (Chinese Traditional) --- LyricsX/zh-Hant.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/zh-Hant.lproj/Preferences.strings b/LyricsX/zh-Hant.lproj/Preferences.strings index 519dfb69..621bbc8d 100644 --- a/LyricsX/zh-Hant.lproj/Preferences.strings +++ b/LyricsX/zh-Hant.lproj/Preferences.strings @@ -119,7 +119,7 @@ "mo2-3C-gLY.title" = "提前顯示歌詞:"; /* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ -"N08-TS-lqw.title" = "Auto"; +"N08-TS-lqw.title" = "自動切換"; /* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ "NLl-9L-0gZ.title" = "未播放音樂時"; From c36647b4652cb014717788b6b9e9a52a38365d77 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Sat, 11 Jan 2020 13:12:14 +0800 Subject: [PATCH 02/30] New translations Preferences.strings (Chinese Traditional) --- LyricsX/zh-Hant.lproj/Preferences.strings | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/LyricsX/zh-Hant.lproj/Preferences.strings b/LyricsX/zh-Hant.lproj/Preferences.strings index 621bbc8d..af32d02a 100644 --- a/LyricsX/zh-Hant.lproj/Preferences.strings +++ b/LyricsX/zh-Hant.lproj/Preferences.strings @@ -17,7 +17,7 @@ "6FU-j0-FTV.title" = "轉換為正體中文"; /* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "6We-TB-Wfc"; */ -"6We-TB-Wfc.title" = "將歌詞輸入 iTunes:"; +"6We-TB-Wfc.title" = "將歌詞寫入 iTunes 歌曲:"; /* Class = "NSButtonCell"; title = "Automatically"; ObjectID = "7Ax-7T-26K"; */ "7Ax-7T-26K.title" = "自動導入"; @@ -26,7 +26,7 @@ "8JF-Og-z6E.title" = "顯示"; /* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "8Sx-vb-5pB"; */ -"8Sx-vb-5pB.title" = "將歌詞輸入 iTunes:"; +"8Sx-vb-5pB.title" = "將歌詞寫入 iTunes 歌曲:"; /* Class = "NSTextFieldCell"; title = "Font:"; ObjectID = "992-tg-edx"; */ "992-tg-edx.title" = "字型:"; @@ -68,7 +68,7 @@ "EDv-ax-0hI.title" = "讀取同名的歌詞檔案"; /* Class = "NSTextFieldCell"; title = "Here are some experimental features that may not be stable enough, and may be removed in the future."; ObjectID = "g2u-8D-dln"; */ -"g2u-8D-dln.title" = "這裡有一些實驗中的功能,這些功能不會那麼穩定,也有可能在日後被刪除。"; +"g2u-8D-dln.title" = "此處為一些不那麼穩定的實驗功能,日後亦可能被移除使用。"; /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "啟用 Touch Bar 歌詞"; @@ -128,7 +128,7 @@ "oiH-T7-agJ.title" = "協助翻譯 LyricsX"; /* Class = "NSViewController"; title = "Shortcut"; ObjectID = "ppx-ob-WJc"; */ -"ppx-ob-WJc.title" = "快速鍵"; +"ppx-ob-WJc.title" = "快捷鍵"; /* Class = "NSTextFieldCell"; title = "Search result match the exact search term"; ObjectID = "rSD-qR-EXA"; */ "rSD-qR-EXA.title" = "搜尋結果需要完全符合關鍵字"; From 2d06d52ec0b9c85256587a23fc2f130b31c3a9c9 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Sat, 11 Jan 2020 13:22:18 +0800 Subject: [PATCH 03/30] New translations Preferences.strings (Chinese Traditional) --- LyricsX/zh-Hant.lproj/Preferences.strings | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/LyricsX/zh-Hant.lproj/Preferences.strings b/LyricsX/zh-Hant.lproj/Preferences.strings index af32d02a..5f352c00 100644 --- a/LyricsX/zh-Hant.lproj/Preferences.strings +++ b/LyricsX/zh-Hant.lproj/Preferences.strings @@ -14,7 +14,7 @@ "5dp-p5-YmE.title" = "單行模式"; /* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "6FU-j0-FTV"; */ -"6FU-j0-FTV.title" = "轉換為正體中文"; +"6FU-j0-FTV.title" = "轉換為繁體中文"; /* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "6We-TB-Wfc"; */ "6We-TB-Wfc.title" = "將歌詞寫入 iTunes 歌曲:"; @@ -143,22 +143,22 @@ "TB9-Fk-WAX.title" = "顯示歌詞視窗:"; /* Class = "NSButtonCell"; title = "Automatically generate furigana for Japanese lyrics"; ObjectID = "ThQ-vA-Krb"; */ -"ThQ-vA-Krb.title" = "自動為日文歌詞生成日文注音"; +"ThQ-vA-Krb.title" = "日文歌詞自動附註振假名"; /* Class = "NSTextFieldCell"; title = "Text:"; ObjectID = "Txi-D9-jjB"; */ "Txi-D9-jjB.title" = "文字:"; /* Class = "NSTextFieldCell"; title = "Mark as wrong lyrics:"; ObjectID = "uEb-Q5-cda"; */ -"uEb-Q5-cda.title" = "標記為錯誤的歌詞:"; +"uEb-Q5-cda.title" = "標記歌詞錯誤"; /* Class = "NSTextFieldCell"; title = "Background"; ObjectID = "Uer-qJ-3T9"; */ -"Uer-qJ-3T9.title" = "底色"; +"Uer-qJ-3T9.title" = "背景"; /* Class = "NSTextFieldCell"; title = "Hightlight:"; ObjectID = "UfE-QU-Yhm"; */ "UfE-QU-Yhm.title" = "強調:"; /* Class = "NSButtonCell"; title = "Auto launch & quit with music player"; ObjectID = "v63-4a-fPw"; */ -"v63-4a-fPw.title" = "跟隨播放器啟動及結束"; +"v63-4a-fPw.title" = "自動隨著音樂播放器開啟及關閉"; /* Class = "NSTextFieldCell"; title = "Language (Requires Restart):"; ObjectID = "WfA-pe-S5D"; */ "WfA-pe-S5D.title" = "語言 (需要重新啟動):"; @@ -167,7 +167,7 @@ "XHQ-gX-urF.title" = "顯示 / 隱藏選單列歌詞"; /* Class = "NSButtonCell"; title = "Reset"; ObjectID = "XUF-aM-ZmS"; */ -"XUF-aM-ZmS.title" = "重置"; +"XUF-aM-ZmS.title" = "重設"; /* Class = "NSTextFieldCell"; title = "Progress"; ObjectID = "XuN-vs-cgI"; */ "XuN-vs-cgI.title" = "進度"; From 2c5ea792b79c95e169b231989c7d507a366f1262 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Sat, 11 Jan 2020 13:32:01 +0800 Subject: [PATCH 04/30] New translations Main.strings (Chinese Traditional) --- LyricsX/zh-Hant.lproj/Main.strings | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/LyricsX/zh-Hant.lproj/Main.strings b/LyricsX/zh-Hant.lproj/Main.strings index c8ebac71..bb1e5640 100644 --- a/LyricsX/zh-Hant.lproj/Main.strings +++ b/LyricsX/zh-Hant.lproj/Main.strings @@ -2,7 +2,7 @@ "1xI-G4-Fsc.headerCell.title" = "來源"; /* Class = "NSTextFieldCell"; title = "No Lyrics\n\nDrag & Drop to import LRC file"; ObjectID = "aRw-yQ-GNX"; */ -"aRw-yQ-GNX.title" = "沒有歌詞資訊\n\n請拖放來輸入 LRC 檔案"; +"aRw-yQ-GNX.title" = "沒有歌詞資訊\n請將 LRC 檔案拖曳匯入"; /* Class = "NSWindow"; title = "Donate"; ObjectID = "CW0-AL-Z6N"; */ "CW0-AL-Z6N.title" = "贊助"; @@ -53,13 +53,13 @@ "jWT-S5-YXM.headerCell.title" = "歌曲"; /* Class = "NSMenuItem"; title = "Write to iTunes"; ObjectID = "kNl-ZO-aX6"; */ -"kNl-ZO-aX6.title" = "將歌詞輸入 iTunes"; +"kNl-ZO-aX6.title" = "將歌詞寫入 iTunes 歌曲"; /* Class = "NSMenuItem"; title = "Show Lyrics Window"; ObjectID = "kyJ-kV-2Du"; */ "kyJ-kV-2Du.title" = "顯示歌詞視窗"; /* Class = "NSTextFieldCell"; title = "Artist:"; ObjectID = "l8J-1r-dIZ"; */ -"l8J-1r-dIZ.title" = "藝人:"; +"l8J-1r-dIZ.title" = "演唱人:"; /* Class = "NSTextFieldCell"; title = "If you enjoy using LyricsX, and would like to buy me a cup of coffee, as well as help me keep this software going, you can scan QR code below to make a generous donation."; ObjectID = "o52-Z0-lue"; */ "o52-Z0-lue.title" = "如果你 LyricsX 用得還算開心,願意請杯咖啡好讓我可以繼續維護這個軟體的話,你可以掃描下面的 QR code 來贊助我,感謝。"; @@ -74,7 +74,7 @@ "RGl-MT-MQb.title" = "套用"; /* Class = "NSMenuItem"; title = "Quit LyricsX"; ObjectID = "RPR-IV-34T"; */ -"RPR-IV-34T.title" = "結束 LyricsX"; +"RPR-IV-34T.title" = "關閉 LyricsX"; /* Class = "NSMenuItem"; title = "Enable Menu Bar Lyrics"; ObjectID = "Z7d-yp-uRx"; */ "Z7d-yp-uRx.title" = "啟用選單列歌詞"; From 2ba6f81dc616d0602f95194ee306f9f99611cab5 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Mon, 13 Jan 2020 10:22:26 +0800 Subject: [PATCH 05/30] New translations Preferences.strings (French) --- LyricsX/fr.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/fr.lproj/Preferences.strings b/LyricsX/fr.lproj/Preferences.strings index 4e12887c..a32fc09a 100644 --- a/LyricsX/fr.lproj/Preferences.strings +++ b/LyricsX/fr.lproj/Preferences.strings @@ -119,7 +119,7 @@ "mo2-3C-gLY.title" = "Augmenter le décalage des paroles :"; /* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ -"N08-TS-lqw.title" = "Auto"; +"N08-TS-lqw.title" = "Automatique"; /* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ "NLl-9L-0gZ.title" = "Aucune musique jouée"; From 2f97b3f73430def3d16a27d3e6f1b7fc79957064 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Mon, 13 Jan 2020 10:22:27 +0800 Subject: [PATCH 06/30] New translations Localizable.strings (Portuguese) --- LyricsX/Supporting Files/pt.lproj/Localizable.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/Supporting Files/pt.lproj/Localizable.strings b/LyricsX/Supporting Files/pt.lproj/Localizable.strings index 5c1430dc..18a8ad1e 100644 --- a/LyricsX/Supporting Files/pt.lproj/Localizable.strings +++ b/LyricsX/Supporting Files/pt.lproj/Localizable.strings @@ -1,5 +1,5 @@ /* title of download button on the update alert. Download new version of the app. */ -"Download" = "Download"; +"Download" = "Baixar"; /* No comment provided by engineer. */ "Font Fallback: %@" = "Font Fallback: %@"; From ce302e729395bc422c792397e477be12f2eb36bf Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Mon, 13 Jan 2020 10:22:28 +0800 Subject: [PATCH 07/30] New translations Main.strings (Portuguese) --- LyricsX/pt.lproj/Main.strings | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/LyricsX/pt.lproj/Main.strings b/LyricsX/pt.lproj/Main.strings index 6273f403..cf403225 100644 --- a/LyricsX/pt.lproj/Main.strings +++ b/LyricsX/pt.lproj/Main.strings @@ -8,13 +8,13 @@ "CW0-AL-Z6N.title" = "Donate"; /* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "CWo-Qx-2Ut"; */ -"CWo-Qx-2Ut.title" = "Preferences..."; +"CWo-Qx-2Ut.title" = "Preferências..."; /* Class = "NSButton"; ibShadowedToolTip = "Synchronism"; ObjectID = "d5a-4n-6k8"; */ "d5a-4n-6k8.ibShadowedToolTip" = "Synchronism"; /* Class = "NSMenuItem"; title = "Show In Finder"; ObjectID = "DNi-vI-MTr"; */ -"DNi-vI-MTr.title" = "Show In Finder"; +"DNi-vI-MTr.title" = "Exibir No Finder"; /* Class = "NSButtonCell"; title = "Search"; ObjectID = "eb9-fE-Lgq"; */ "eb9-fE-Lgq.title" = "Search"; @@ -23,7 +23,7 @@ "EoO-ld-6Xv.title" = "Donate..."; /* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "FMI-7E-tCo"; */ -"FMI-7E-tCo.title" = "Title:"; +"FMI-7E-tCo.title" = "Título :"; /* Class = "NSMenuItem"; title = "Wrong Lyrics"; ObjectID = "fmS-zv-RcJ"; */ "fmS-zv-RcJ.title" = "Wrong Lyrics"; @@ -41,7 +41,7 @@ "hgd-IJ-u14.title" = "Disable Lyrics for Entire Album"; /* Class = "NSTableColumn"; headerCell.title = "Artist"; ObjectID = "HMU-fa-17B"; */ -"HMU-fa-17B.headerCell.title" = "Artist"; +"HMU-fa-17B.headerCell.title" = "Artista"; /* Class = "NSMenuItem"; title = "Lyrics"; ObjectID = "hxE-X4-sJh"; */ "hxE-X4-sJh.title" = "Lyrics"; @@ -50,22 +50,22 @@ "IFz-XQ-DHf.title" = "Lyrics Offset:"; /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "jWT-S5-YXM"; */ -"jWT-S5-YXM.headerCell.title" = "Title"; +"jWT-S5-YXM.headerCell.title" = "Título"; /* Class = "NSMenuItem"; title = "Write to iTunes"; ObjectID = "kNl-ZO-aX6"; */ -"kNl-ZO-aX6.title" = "Write to iTunes"; +"kNl-ZO-aX6.title" = "Gravar no iTunes"; /* Class = "NSMenuItem"; title = "Show Lyrics Window"; ObjectID = "kyJ-kV-2Du"; */ "kyJ-kV-2Du.title" = "Show Lyrics Window"; /* Class = "NSTextFieldCell"; title = "Artist:"; ObjectID = "l8J-1r-dIZ"; */ -"l8J-1r-dIZ.title" = "Artist:"; +"l8J-1r-dIZ.title" = "Artista :"; /* Class = "NSTextFieldCell"; title = "If you enjoy using LyricsX, and would like to buy me a cup of coffee, as well as help me keep this software going, you can scan QR code below to make a generous donation."; ObjectID = "o52-Z0-lue"; */ "o52-Z0-lue.title" = "If you enjoy using LyricsX, and would like to buy me a cup of coffee, as well as help me keep this software going, you can scan QR code below to make a generous donation."; /* Class = "NSMenuItem"; title = "About LyricsX"; ObjectID = "PdE-VG-JUC"; */ -"PdE-VG-JUC.title" = "About LyricsX"; +"PdE-VG-JUC.title" = "Sobre LyricsX"; /* Class = "NSMenuItem"; title = "Check For Update..."; ObjectID = "Piu-i2-JjD"; */ "Piu-i2-JjD.title" = "Check For Update..."; @@ -74,7 +74,7 @@ "RGl-MT-MQb.title" = "Apply"; /* Class = "NSMenuItem"; title = "Quit LyricsX"; ObjectID = "RPR-IV-34T"; */ -"RPR-IV-34T.title" = "Quit LyricsX"; +"RPR-IV-34T.title" = "Sair do Lyrics%s"; /* Class = "NSMenuItem"; title = "Enable Menu Bar Lyrics"; ObjectID = "Z7d-yp-uRx"; */ "Z7d-yp-uRx.title" = "Enable Menu Bar Lyrics"; From 57b7ef6dff878a8999b9afdc4aebbb9d4ba904c9 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Mon, 13 Jan 2020 10:22:29 +0800 Subject: [PATCH 08/30] New translations Preferences.strings (Portuguese) --- LyricsX/pt.lproj/Preferences.strings | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/LyricsX/pt.lproj/Preferences.strings b/LyricsX/pt.lproj/Preferences.strings index a1cacc8f..7c1448c6 100644 --- a/LyricsX/pt.lproj/Preferences.strings +++ b/LyricsX/pt.lproj/Preferences.strings @@ -2,7 +2,7 @@ "0M7-ao-0jb.title" = "Lyrics saving path:"; /* Class = "NSButtonCell"; title = "Auto"; ObjectID = "0VO-JB-ubq"; */ -"0VO-JB-ubq.title" = "Auto"; +"0VO-JB-ubq.title" = "Automático"; /* Class = "NSTextFieldCell"; title = "Lyrics lines maching following rules will be ignored. Use \"/\" to start a regular expression."; ObjectID = "19E-DG-Q23"; */ "19E-DG-Q23.title" = "Lyrics lines maching following rules will be ignored. Use \"/\" to start a regular expression."; @@ -14,13 +14,13 @@ "5dp-p5-YmE.title" = "One line mode"; /* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "6FU-j0-FTV"; */ -"6FU-j0-FTV.title" = "Traditional Chinese"; +"6FU-j0-FTV.title" = "Chinês Tradicional"; /* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "6We-TB-Wfc"; */ "6We-TB-Wfc.title" = "Write lyrics to iTunes:"; /* Class = "NSButtonCell"; title = "Automatically"; ObjectID = "7Ax-7T-26K"; */ -"7Ax-7T-26K.title" = "Automatically"; +"7Ax-7T-26K.title" = "Automaticamente"; /* Class = "NSViewController"; title = "Display"; ObjectID = "8JF-Og-z6E"; */ "8JF-Og-z6E.title" = "Display"; @@ -32,10 +32,10 @@ "992-tg-edx.title" = "Font:"; /* Class = "NSMenuItem"; title = "Simplified Chinese"; ObjectID = "AiM-vg-FvQ"; */ -"AiM-vg-FvQ.title" = "Simplified Chinese"; +"AiM-vg-FvQ.title" = "Chinês Simplificado"; /* Class = "NSWindow"; title = "Preferences"; ObjectID = "aMb-zX-bzP"; */ -"aMb-zX-bzP.title" = "Preferences"; +"aMb-zX-bzP.title" = "Preferências"; /* Class = "NSButtonCell"; title = "Strict Search"; ObjectID = "As7-rZ-u6c"; */ "As7-rZ-u6c.title" = "Strict Search"; @@ -104,13 +104,13 @@ "kP4-4q-ed9.title" = "Search lyrics:"; /* Class = "NSTabViewItem"; label = "Window"; ObjectID = "LbQ-p9-Zti"; */ -"LbQ-p9-Zti.label" = "Window"; +"LbQ-p9-Zti.label" = "Janela"; /* Class = "NSButtonCell"; title = "Mouse passing by"; ObjectID = "LH4-YZ-Qvs"; */ "LH4-YZ-Qvs.title" = "Mouse passing by"; /* Class = "NSViewController"; title = "Filter"; ObjectID = "lN1-gG-AVq"; */ -"lN1-gG-AVq.title" = "Filter"; +"lN1-gG-AVq.title" = "Filtro"; /* Class = "NSTextFieldCell"; title = "Show / Hide karaoke lyrics:"; ObjectID = "lOc-OP-AcU"; */ "lOc-OP-AcU.title" = "Show / Hide karaoke lyrics:"; @@ -119,16 +119,16 @@ "mo2-3C-gLY.title" = "Increase lyrics offset:"; /* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ -"N08-TS-lqw.title" = "Auto"; +"N08-TS-lqw.title" = "Automático"; /* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ -"NLl-9L-0gZ.title" = "Music is not playing"; +"NLl-9L-0gZ.title" = "Música não está tocando"; /* Class = "NSButtonCell"; title = "Help translate LyricsX"; ObjectID = "oiH-T7-agJ"; */ -"oiH-T7-agJ.title" = "Help translate LyricsX"; +"oiH-T7-agJ.title" = "Ajude a traduzir LyricsX"; /* Class = "NSViewController"; title = "Shortcut"; ObjectID = "ppx-ob-WJc"; */ -"ppx-ob-WJc.title" = "Shortcut"; +"ppx-ob-WJc.title" = "Atalho"; /* Class = "NSTextFieldCell"; title = "Search result match the exact search term"; ObjectID = "rSD-qR-EXA"; */ "rSD-qR-EXA.title" = "Search result match the exact search term"; @@ -146,7 +146,7 @@ "ThQ-vA-Krb.title" = "Automatically generate furigana for Japanese lyrics"; /* Class = "NSTextFieldCell"; title = "Text:"; ObjectID = "Txi-D9-jjB"; */ -"Txi-D9-jjB.title" = "Text:"; +"Txi-D9-jjB.title" = "Texto :"; /* Class = "NSTextFieldCell"; title = "Mark as wrong lyrics:"; ObjectID = "uEb-Q5-cda"; */ "uEb-Q5-cda.title" = "Mark as wrong lyrics:"; @@ -176,4 +176,4 @@ "zhB-kd-WWG.title" = "No Conversion"; /* Class = "NSButtonCell"; title = "Customize TouchBar"; ObjectID = "zQK-i2-2Nc"; */ -"zQK-i2-2Nc.title" = "Customize TouchBar"; +"zQK-i2-2Nc.title" = "Personalizar TouchBar"; From af70cdf5368d4982d85c4dec21e38d9a628396cc Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Mon, 13 Jan 2020 10:22:30 +0800 Subject: [PATCH 09/30] New translations Preferences.strings (Spanish) --- LyricsX/es.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/es.lproj/Preferences.strings b/LyricsX/es.lproj/Preferences.strings index a6d70c59..3c1d7521 100644 --- a/LyricsX/es.lproj/Preferences.strings +++ b/LyricsX/es.lproj/Preferences.strings @@ -119,7 +119,7 @@ "mo2-3C-gLY.title" = "Incrementar el offset de las letras:"; /* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ -"N08-TS-lqw.title" = "Auto"; +"N08-TS-lqw.title" = "Automático"; /* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ "NLl-9L-0gZ.title" = "La música no se está reproduciendo"; From 3ab576d99c43ea1cd5ea179cd25988f5d32b6fbd Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Mon, 17 Feb 2020 14:33:00 +0800 Subject: [PATCH 10/30] New translations Preferences.strings (Chinese Simplified) --- LyricsX/zh-Hans.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/zh-Hans.lproj/Preferences.strings b/LyricsX/zh-Hans.lproj/Preferences.strings index bd7abb7d..0cb4b742 100644 --- a/LyricsX/zh-Hans.lproj/Preferences.strings +++ b/LyricsX/zh-Hans.lproj/Preferences.strings @@ -119,7 +119,7 @@ "mo2-3C-gLY.title" = "增加歌词偏移(歌词提前):"; /* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ -"N08-TS-lqw.title" = "Auto"; +"N08-TS-lqw.title" = "自动选择"; /* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ "NLl-9L-0gZ.title" = "暂停播放时"; From 044874375c04a995d32e4c742a738a24a65411bf Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Mon, 24 Feb 2020 23:06:21 +0800 Subject: [PATCH 11/30] use cx v0.2.0 --- LyricsX.xcodeproj/project.pbxproj | 8 ++--- .../xcshareddata/swiftpm/Package.resolved | 36 +++++-------------- 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/LyricsX.xcodeproj/project.pbxproj b/LyricsX.xcodeproj/project.pbxproj index f09ba797..7aa69eff 100644 --- a/LyricsX.xcodeproj/project.pbxproj +++ b/LyricsX.xcodeproj/project.pbxproj @@ -1389,15 +1389,15 @@ repositoryURL = "https://github.com/cx-org/CXExtensions"; requirement = { kind = upToNextMinorVersion; - minimumVersion = 0.1.1; + minimumVersion = 0.2.0; }; }; BB9C3D8123435A5700860698 /* XCRemoteSwiftPackageReference "MusicPlayer" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/ddddxxx/MusicPlayer"; requirement = { - branch = master; - kind = branch; + kind = upToNextMinorVersion; + minimumVersion = 0.6.3; }; }; BBB03F2B232FB3AF00A3879E /* XCRemoteSwiftPackageReference "GenericID" */ = { @@ -1429,7 +1429,7 @@ repositoryURL = "https://github.com/ddddxxx/LyricsKit.git"; requirement = { kind = upToNextMinorVersion; - minimumVersion = 0.8.0; + minimumVersion = 0.8.2; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 61a7c280..ad2ebe7f 100644 --- a/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,17 +6,8 @@ "repositoryURL": "https://github.com/cx-org/CombineX", "state": { "branch": null, - "revision": "273b580b464f7d6f872cf5319c5785211443cf6f", - "version": "0.1.1" - } - }, - { - "package": "CRuntime", - "repositoryURL": "https://github.com/wickwirew/CRuntime.git", - "state": { - "branch": null, - "revision": "95f911318d8c885f6fc05e971471f94adfd39405", - "version": "2.1.2" + "revision": "6bc3b53533711871cf0d96e50c2a2c733abb4d47", + "version": "0.2.0" } }, { @@ -24,8 +15,8 @@ "repositoryURL": "https://github.com/cx-org/CXExtensions", "state": { "branch": null, - "revision": "9288b4ab076d32277dc43c129ee8c5c2417d39da", - "version": "0.1.1" + "revision": "384ff4dc35e719d187b1bbe424c644b303d05cda", + "version": "0.2.0" } }, { @@ -51,17 +42,17 @@ "repositoryURL": "https://github.com/ddddxxx/LyricsKit.git", "state": { "branch": null, - "revision": "8e256a2385ce7dfa1c1d676a50629a560b479995", - "version": "0.8.1" + "revision": "e3c0acb3c70a4e97093e32685b3e63f52f061404", + "version": "0.8.2" } }, { "package": "MusicPlayer", "repositoryURL": "https://github.com/ddddxxx/MusicPlayer", "state": { - "branch": "master", - "revision": "1cf27e3c56f1cd10a527ba7dea0fac9ac562b151", - "version": null + "branch": null, + "revision": "935e0a92744cc79b1f2c034621092f8aa64cf75f", + "version": "0.6.3" } }, { @@ -91,15 +82,6 @@ "version": "0.2.0" } }, - { - "package": "Runtime", - "repositoryURL": "https://github.com/wickwirew/Runtime.git", - "state": { - "branch": null, - "revision": "61c9776f47d2951bdc562486ad348e5e1ca2e180", - "version": "2.1.1" - } - }, { "package": "Semver", "repositoryURL": "https://github.com/ddddxxx/Semver.git", From 5b65fb862a7801becc931446e3fcb000d71d8d1f Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Wed, 26 Feb 2020 01:47:19 +0800 Subject: [PATCH 12/30] update for CXExtensions v0.2.0 --- LyricsX.xcodeproj/project.pbxproj | 6 ++++++ LyricsX/Component/AppController.swift | 12 ++++++------ .../TouchBarArtworkViewController.swift | 6 +++--- LyricsX/Component/TouchBarLyricsItem.swift | 10 ++++------ ...TouchBarPlaybackControlViewController.swift | 11 +++++------ .../Controller/KaraokeLyricsController.swift | 18 +++++++++--------- .../Controller/LyricsHUDViewController.swift | 6 +++--- LyricsX/Controller/MenuBarLyrics.swift | 10 ++++------ LyricsX/Utility/CombineExtension.swift | 15 +++++++++++++++ 9 files changed, 55 insertions(+), 39 deletions(-) create mode 100644 LyricsX/Utility/CombineExtension.swift diff --git a/LyricsX.xcodeproj/project.pbxproj b/LyricsX.xcodeproj/project.pbxproj index 7aa69eff..0e386cc2 100644 --- a/LyricsX.xcodeproj/project.pbxproj +++ b/LyricsX.xcodeproj/project.pbxproj @@ -139,6 +139,8 @@ BBC1D5911E4C80FC008869EC /* PreferenceDisplayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC1D5901E4C80FC008869EC /* PreferenceDisplayViewController.swift */; }; BBC7C5551E6AE28600E3EC4F /* PreferenceGeneralViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC7C5541E6AE28600E3EC4F /* PreferenceGeneralViewController.swift */; }; BBD03C371E9B2C7200EFB975 /* DragNDropView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD03C361E9B2C7200EFB975 /* DragNDropView.swift */; }; + BBE2A79824041E36004A7E93 /* CombineExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE2A79724041E36004A7E93 /* CombineExtension.swift */; }; + BBE2A79924041E36004A7E93 /* CombineExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE2A79724041E36004A7E93 /* CombineExtension.swift */; }; BBE8FC751F6BEA6200122AFA /* Then.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE8FC741F6BEA6200122AFA /* Then.swift */; }; E91F76EB21211B8D00755698 /* PreferenceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E91F76EA21211B8D00755698 /* PreferenceViewController.swift */; }; E97593E42150F47900D80616 /* Polyfill.swift in Sources */ = {isa = PBXBuildFile; fileRef = E97593E32150F47800D80616 /* Polyfill.swift */; }; @@ -278,6 +280,7 @@ BBD03C361E9B2C7200EFB975 /* DragNDropView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DragNDropView.swift; sourceTree = ""; }; BBD2E35B22B780FC00410259 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Main.strings; sourceTree = ""; }; BBD2E35C22B780FC00410259 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Preferences.strings; sourceTree = ""; }; + BBE2A79724041E36004A7E93 /* CombineExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombineExtension.swift; sourceTree = ""; }; BBE8FC741F6BEA6200122AFA /* Then.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Then.swift; sourceTree = ""; }; E914527F21539BD500BD2220 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = Carthage/Build/Mac/Sparkle.framework; sourceTree = ""; }; E91F76EA21211B8D00755698 /* PreferenceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferenceViewController.swift; sourceTree = ""; }; @@ -448,6 +451,7 @@ E97593E32150F47800D80616 /* Polyfill.swift */, E97593E52150F6FB00D80616 /* IBInspection.swift */, BB9BCEB91E843157001BC54B /* Extension.swift */, + BBE2A79724041E36004A7E93 /* CombineExtension.swift */, BB1B300220E878AE002F1AF8 /* StdExtension.swift */, BB1B2FFC20E8780A002F1AF8 /* CFExtension.swift */, E9EBDA2421115A150019FDF9 /* Observation.swift */, @@ -907,6 +911,7 @@ BB03C8891FDF6FC000FBE0DA /* ChineseConverter+Singleton.swift in Sources */, BB5D4B2D2094A1D700844D9F /* FontSelectTextField.swift in Sources */, BB9BCEBA1E843157001BC54B /* Extension.swift in Sources */, + BBE2A79824041E36004A7E93 /* CombineExtension.swift in Sources */, BBC1D35B1E485BA7002538A2 /* AppController.swift in Sources */, BB0B296A1E7FBA2D00B1D6C9 /* PreferenceFilterViewController.swift in Sources */, BB89089E21ED69410078F522 /* Lyrics+Language.swift in Sources */, @@ -950,6 +955,7 @@ BB50788422014C3900B695C3 /* FontSelectTextField.swift in Sources */, BB50788522014C3900B695C3 /* Extension.swift in Sources */, BB50788622014C3900B695C3 /* AppController.swift in Sources */, + BBE2A79924041E36004A7E93 /* CombineExtension.swift in Sources */, BB50788722014C3900B695C3 /* PreferenceFilterViewController.swift in Sources */, BB50788822014C3900B695C3 /* Lyrics+Language.swift in Sources */, BB0A3AE122803B1D006C2E52 /* TouchBarPlaybackControlViewController.swift in Sources */, diff --git a/LyricsX/Component/AppController.swift b/LyricsX/Component/AppController.swift index 1383a297..628b31f4 100644 --- a/LyricsX/Component/AppController.swift +++ b/LyricsX/Component/AppController.swift @@ -52,15 +52,15 @@ class AppController: NSObject { private override init() { super.init() selectedPlayer.currentTrackWillChange + .signal() .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] _ in - self.currentTrackChanged() - }.store(in: &cancelBag) + .invoke(AppController.currentTrackChanged, weaklyOn: self) + .store(in: &cancelBag) selectedPlayer.playbackStateWillChange + .signal() .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] _ in - self.scheduleCurrentLineCheck() - }.store(in: &cancelBag) + .invoke(AppController.scheduleCurrentLineCheck, weaklyOn: self) + .store(in: &cancelBag) defaultNC.cx.publisher(for: NSWorkspace.didTerminateApplicationNotification, object: nil) .sink { n in diff --git a/LyricsX/Component/TouchBarArtworkViewController.swift b/LyricsX/Component/TouchBarArtworkViewController.swift index 04a2fd09..aed59e75 100644 --- a/LyricsX/Component/TouchBarArtworkViewController.swift +++ b/LyricsX/Component/TouchBarArtworkViewController.swift @@ -21,10 +21,10 @@ class TouchBarArtworkViewController: NSViewController { override func viewDidLoad() { selectedPlayer.currentTrackWillChange + .signal() .receive(on: DispatchQueue.main.cx) - .sink { [unowned self] _ in - self.updateArtworkImage() - }.store(in: &cancelBag) + .invoke(TouchBarArtworkViewController.updateArtworkImage, weaklyOn: self) + .store(in: &cancelBag) updateArtworkImage() } diff --git a/LyricsX/Component/TouchBarLyricsItem.swift b/LyricsX/Component/TouchBarLyricsItem.swift index 0e525210..05e61482 100644 --- a/LyricsX/Component/TouchBarLyricsItem.swift +++ b/LyricsX/Component/TouchBarLyricsItem.swift @@ -35,15 +35,13 @@ class TouchBarLyricsItem: NSCustomTouchBarItem { AppController.shared.$currentLyrics .combineLatest(AppController.shared.$currentLineIndex) .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] lrc, idx in - self.handleLyricsDisplay(lyrics: lrc, index: idx) - } + .invoke(TouchBarLyricsItem.handleLyricsDisplay, weaklyOn: self) .store(in: &cancelBag) } - private func handleLyricsDisplay(lyrics: Lyrics?, index: Int?) { - guard let lyrics = lyrics, - let index = index else { + private func handleLyricsDisplay(event: (lyrics: Lyrics?, index: Int?)) { + guard let lyrics = event.lyrics, + let index = event.index else { DispatchQueue.main.async { self.lyricsTextField.stringValue = "" self.lyricsTextField.removeProgressAnimation() diff --git a/LyricsX/Component/TouchBarPlaybackControlViewController.swift b/LyricsX/Component/TouchBarPlaybackControlViewController.swift index b6540c01..f0f26d23 100644 --- a/LyricsX/Component/TouchBarPlaybackControlViewController.swift +++ b/LyricsX/Component/TouchBarPlaybackControlViewController.swift @@ -34,14 +34,13 @@ class TouchBarPlaybackControlViewController: NSViewController { selectedPlayer.playbackStateWillChange .receive(on: DispatchQueue.main.cx) - .sink { [weak self] state in - self?.updatePlayPauseIcon(isPlaying: state.isPlaying) - }.store(in: &cancelBag) - updatePlayPauseIcon(isPlaying: selectedPlayer.playbackState.isPlaying) + .invoke(TouchBarPlaybackControlViewController.updatePlayPauseIcon, weaklyOn: self) + .store(in: &cancelBag) + updatePlayPauseIcon(state: selectedPlayer.playbackState) } - func updatePlayPauseIcon(isPlaying: Bool) { - let image = isPlaying + func updatePlayPauseIcon(state: PlaybackState) { + let image = state.isPlaying ? NSImage(named: NSImage.touchBarPauseTemplateName) : NSImage(named: NSImage.touchBarPlayTemplateName) segmentedControl?.setImage(image, forSegment: 1) diff --git a/LyricsX/Controller/KaraokeLyricsController.swift b/LyricsX/Controller/KaraokeLyricsController.swift index 75dfc3ee..f0c4f73a 100644 --- a/LyricsX/Controller/KaraokeLyricsController.swift +++ b/LyricsX/Controller/KaraokeLyricsController.swift @@ -43,20 +43,20 @@ class KaraokeLyricsWindowController: NSWindowController { DispatchQueue.main.asyncAfter(deadline: .now() + 3) { self.lyricsView.displayLrc("") AppController.shared.$currentLyrics + .signal() .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] _ in - self.handleLyricsDisplay() - }.store(in: &self.cancelBag) + .invoke(KaraokeLyricsWindowController.handleLyricsDisplay, weaklyOn: self) + .store(in: &self.cancelBag) AppController.shared.$currentLineIndex + .signal() .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] _ in - self.handleLyricsDisplay() - }.store(in: &self.cancelBag) + .invoke(KaraokeLyricsWindowController.handleLyricsDisplay, weaklyOn: self) + .store(in: &self.cancelBag) selectedPlayer.playbackStateWillChange + .signal() .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] _ in - self.handleLyricsDisplay() - }.store(in: &self.cancelBag) + .invoke(KaraokeLyricsWindowController.handleLyricsDisplay, weaklyOn: self) + .store(in: &self.cancelBag) self.observeDefaults(keys: [.PreferBilingualLyrics, .DesktopLyricsOneLineMode]) { [unowned self] in self.handleLyricsDisplay() } diff --git a/LyricsX/Controller/LyricsHUDViewController.swift b/LyricsX/Controller/LyricsHUDViewController.swift index 08b21e76..f0e8ba45 100644 --- a/LyricsX/Controller/LyricsHUDViewController.swift +++ b/LyricsX/Controller/LyricsHUDViewController.swift @@ -61,10 +61,10 @@ class LyricsHUDViewController: NSViewController, NSWindowDelegate, ScrollLyricsV } AppController.shared.$currentLyrics + .signal() .receive(on: DispatchQueue.main.cx) - .sink { [unowned self] _ in - self.lyricsChanged() - }.store(in: &cancelBag) + .invoke(LyricsHUDViewController.lyricsChanged, weaklyOn: self) + .store(in: &cancelBag) AppController.shared.$currentLineIndex .receive(on: DispatchQueue.main.cx) .sink { [unowned self] _ in diff --git a/LyricsX/Controller/MenuBarLyrics.swift b/LyricsX/Controller/MenuBarLyrics.swift index 24599105..1e4b8b1a 100644 --- a/LyricsX/Controller/MenuBarLyrics.swift +++ b/LyricsX/Controller/MenuBarLyrics.swift @@ -37,18 +37,16 @@ class MenuBarLyrics: NSObject { AppController.shared.$currentLyrics .combineLatest(AppController.shared.$currentLineIndex) .receive(on: DispatchQueue.lyricsDisplay.cx) - .sink { [unowned self] lrc, idx in - self.handleLyricsDisplay(lyrics: lrc, index: idx) - } + .invoke(MenuBarLyrics.handleLyricsDisplay, weaklyOn: self) .store(in: &cancelBag) observeNotification(center: workspaceNC, name: NSWorkspace.didActivateApplicationNotification) { [unowned self] _ in self.updateStatusItem() } observeDefaults(keys: [.MenuBarLyricsEnabled, .CombinedMenubarLyrics], options: [.initial]) { [unowned self] in self.updateStatusItem() } } - private func handleLyricsDisplay(lyrics: Lyrics?, index: Int?) { + private func handleLyricsDisplay(event: (lyrics: Lyrics?, index: Int?)) { guard !defaults[.DisableLyricsWhenPaused] || selectedPlayer.playbackState.isPlaying, - let lyrics = lyrics, - let index = index else { + let lyrics = event.lyrics, + let index = event.index else { screenLyrics = "" return } diff --git a/LyricsX/Utility/CombineExtension.swift b/LyricsX/Utility/CombineExtension.swift new file mode 100644 index 00000000..e43634de --- /dev/null +++ b/LyricsX/Utility/CombineExtension.swift @@ -0,0 +1,15 @@ +// +// BasicExtension.swift +// +// This file is part of LyricsX - https://github.com/ddddxxx/LyricsX +// Copyright (C) 2020 Xander Deng. Licensed under GPLv3. +// + +import CXShim + +extension Publisher { + + func signal() -> Publishers.Map { + return self.map { _ in Void() } + } +} From ff1917d080e8a01fb96cbf91fd7165ea7e7015f3 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Wed, 26 Feb 2020 01:48:46 +0800 Subject: [PATCH 13/30] export lyrics UTI --- LyricsX/Supporting Files/Info.plist | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index ea8531b0..8b18d2ff 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -139,5 +139,29 @@ SUFeedURL https://ddddxxx.github.io/LyricsX/appcast.xml + UTExportedTypeDeclarations + + + UTTypeIdentifier + org.lyricsx.lrcx + UTTypeDescription + Lyrics File + UTTypeConformsTo + + public.text + public.data + + UTTypeTagSpecification + + public.filename-extension + + lrcx + lrc + + public.mime-type + text/plain + + + From 110c07e37036c3ecc1e637aca6cf4c19619d41f0 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 17:53:25 +0800 Subject: [PATCH 14/30] New translations Preferences.strings (Japanese) --- LyricsX/ja.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/ja.lproj/Preferences.strings b/LyricsX/ja.lproj/Preferences.strings index 7f92041a..4d08d76b 100644 --- a/LyricsX/ja.lproj/Preferences.strings +++ b/LyricsX/ja.lproj/Preferences.strings @@ -119,7 +119,7 @@ "mo2-3C-gLY.title" = "歌詞のオフセットを増やす:"; /* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ -"N08-TS-lqw.title" = "Auto"; +"N08-TS-lqw.title" = "自動"; /* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ "NLl-9L-0gZ.title" = "一時停止中"; From 772b4e8b98972a535791be06a703abcf40c908c9 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:06:48 +0800 Subject: [PATCH 15/30] New translations Preferences.strings (Japanese) --- LyricsX/ja.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/ja.lproj/Preferences.strings b/LyricsX/ja.lproj/Preferences.strings index 4d08d76b..fd490b2f 100644 --- a/LyricsX/ja.lproj/Preferences.strings +++ b/LyricsX/ja.lproj/Preferences.strings @@ -131,7 +131,7 @@ "ppx-ob-WJc.title" = "ショートカット"; /* Class = "NSTextFieldCell"; title = "Search result match the exact search term"; ObjectID = "rSD-qR-EXA"; */ -"rSD-qR-EXA.title" = "検索結果は正確な検索語と一致にする"; +"rSD-qR-EXA.title" = "キーワードと完全一致にする検索結果のみを表示する"; /* Class = "NSTextFieldCell"; title = "Global offset (ms):"; ObjectID = "slB-q7-1dB"; */ "slB-q7-1dB.title" = "グローバル オフセット (ミリ秒):"; From 07afb76cc6eafc6ed3a643f0410380aa539c82f6 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:06:50 +0800 Subject: [PATCH 16/30] New translations Localizable.strings (Korean) --- .../ko.lproj/Localizable.strings | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 LyricsX/Supporting Files/ko.lproj/Localizable.strings diff --git a/LyricsX/Supporting Files/ko.lproj/Localizable.strings b/LyricsX/Supporting Files/ko.lproj/Localizable.strings new file mode 100644 index 00000000..5c1430dc --- /dev/null +++ b/LyricsX/Supporting Files/ko.lproj/Localizable.strings @@ -0,0 +1,17 @@ +/* title of download button on the update alert. Download new version of the app. */ +"Download" = "Download"; + +/* No comment provided by engineer. */ +"Font Fallback: %@" = "Font Fallback: %@"; + +/* No comment provided by engineer. */ +"OK" = "OK"; + +/* window title */ +"Search Lyrics" = "Search Lyrics"; + +/* No comment provided by engineer. */ +"Touch Bar lyrics is not supported in Mac App Store Version. Please download on GitHub." = "Touch Bar lyrics is not supported in Mac App Store Version. Please download on GitHub."; + +/* alert title */ +"Unable to enable Touch Bar lyrics." = "Unable to enable Touch Bar lyrics."; From 3cdc582c2fd483f5c6074b5466775403227f1dd7 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:06:51 +0800 Subject: [PATCH 17/30] New translations InfoPlist.strings (Korean) --- LyricsX/Supporting Files/ko.lproj/InfoPlist.strings | 1 + 1 file changed, 1 insertion(+) create mode 100644 LyricsX/Supporting Files/ko.lproj/InfoPlist.strings diff --git a/LyricsX/Supporting Files/ko.lproj/InfoPlist.strings b/LyricsX/Supporting Files/ko.lproj/InfoPlist.strings new file mode 100644 index 00000000..56b70e6b --- /dev/null +++ b/LyricsX/Supporting Files/ko.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppleEventsUsageDescription" = "LyricsX needs to know what song you're currently playing, to show lyrics accordingly."; From 9b29f420d1e49f08b01084cfce934a9524ee43bb Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:06:52 +0800 Subject: [PATCH 18/30] New translations Main.strings (Korean) --- LyricsX/ko.lproj/Main.strings | 80 +++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 LyricsX/ko.lproj/Main.strings diff --git a/LyricsX/ko.lproj/Main.strings b/LyricsX/ko.lproj/Main.strings new file mode 100644 index 00000000..6273f403 --- /dev/null +++ b/LyricsX/ko.lproj/Main.strings @@ -0,0 +1,80 @@ +/* Class = "NSTableColumn"; headerCell.title = "Source"; ObjectID = "1xI-G4-Fsc"; */ +"1xI-G4-Fsc.headerCell.title" = "Source"; + +/* Class = "NSTextFieldCell"; title = "No Lyrics\n\nDrag & Drop to import LRC file"; ObjectID = "aRw-yQ-GNX"; */ +"aRw-yQ-GNX.title" = "No Lyrics\n\nDrag & Drop to import LRC file"; + +/* Class = "NSWindow"; title = "Donate"; ObjectID = "CW0-AL-Z6N"; */ +"CW0-AL-Z6N.title" = "Donate"; + +/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "CWo-Qx-2Ut"; */ +"CWo-Qx-2Ut.title" = "Preferences..."; + +/* Class = "NSButton"; ibShadowedToolTip = "Synchronism"; ObjectID = "d5a-4n-6k8"; */ +"d5a-4n-6k8.ibShadowedToolTip" = "Synchronism"; + +/* Class = "NSMenuItem"; title = "Show In Finder"; ObjectID = "DNi-vI-MTr"; */ +"DNi-vI-MTr.title" = "Show In Finder"; + +/* Class = "NSButtonCell"; title = "Search"; ObjectID = "eb9-fE-Lgq"; */ +"eb9-fE-Lgq.title" = "Search"; + +/* Class = "NSMenuItem"; title = "Donate..."; ObjectID = "EoO-ld-6Xv"; */ +"EoO-ld-6Xv.title" = "Donate..."; + +/* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "FMI-7E-tCo"; */ +"FMI-7E-tCo.title" = "Title:"; + +/* Class = "NSMenuItem"; title = "Wrong Lyrics"; ObjectID = "fmS-zv-RcJ"; */ +"fmS-zv-RcJ.title" = "Wrong Lyrics"; + +/* Class = "NSMenuItem"; title = "Enable Karaoke Lyrics"; ObjectID = "GGU-uz-d9h"; */ +"GGU-uz-d9h.title" = "Enable Karaoke Lyrics"; + +/* Class = "NSButton"; ibShadowedToolTip = "Always on top"; ObjectID = "Gza-SX-MCH"; */ +"Gza-SX-MCH.ibShadowedToolTip" = "Always on top"; + +/* Class = "NSMenuItem"; title = "Search Lyrics..."; ObjectID = "h6D-jz-GbI"; */ +"h6D-jz-GbI.title" = "Search Lyrics..."; + +/* Class = "NSMenuItem"; title = "Disable Lyrics for Entire Album"; ObjectID = "hgd-IJ-u14"; */ +"hgd-IJ-u14.title" = "Disable Lyrics for Entire Album"; + +/* Class = "NSTableColumn"; headerCell.title = "Artist"; ObjectID = "HMU-fa-17B"; */ +"HMU-fa-17B.headerCell.title" = "Artist"; + +/* Class = "NSMenuItem"; title = "Lyrics"; ObjectID = "hxE-X4-sJh"; */ +"hxE-X4-sJh.title" = "Lyrics"; + +/* Class = "NSTextFieldCell"; title = "Lyrics Offset:"; ObjectID = "IFz-XQ-DHf"; */ +"IFz-XQ-DHf.title" = "Lyrics Offset:"; + +/* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "jWT-S5-YXM"; */ +"jWT-S5-YXM.headerCell.title" = "Title"; + +/* Class = "NSMenuItem"; title = "Write to iTunes"; ObjectID = "kNl-ZO-aX6"; */ +"kNl-ZO-aX6.title" = "Write to iTunes"; + +/* Class = "NSMenuItem"; title = "Show Lyrics Window"; ObjectID = "kyJ-kV-2Du"; */ +"kyJ-kV-2Du.title" = "Show Lyrics Window"; + +/* Class = "NSTextFieldCell"; title = "Artist:"; ObjectID = "l8J-1r-dIZ"; */ +"l8J-1r-dIZ.title" = "Artist:"; + +/* Class = "NSTextFieldCell"; title = "If you enjoy using LyricsX, and would like to buy me a cup of coffee, as well as help me keep this software going, you can scan QR code below to make a generous donation."; ObjectID = "o52-Z0-lue"; */ +"o52-Z0-lue.title" = "If you enjoy using LyricsX, and would like to buy me a cup of coffee, as well as help me keep this software going, you can scan QR code below to make a generous donation."; + +/* Class = "NSMenuItem"; title = "About LyricsX"; ObjectID = "PdE-VG-JUC"; */ +"PdE-VG-JUC.title" = "About LyricsX"; + +/* Class = "NSMenuItem"; title = "Check For Update..."; ObjectID = "Piu-i2-JjD"; */ +"Piu-i2-JjD.title" = "Check For Update..."; + +/* Class = "NSButtonCell"; title = "Apply"; ObjectID = "RGl-MT-MQb"; */ +"RGl-MT-MQb.title" = "Apply"; + +/* Class = "NSMenuItem"; title = "Quit LyricsX"; ObjectID = "RPR-IV-34T"; */ +"RPR-IV-34T.title" = "Quit LyricsX"; + +/* Class = "NSMenuItem"; title = "Enable Menu Bar Lyrics"; ObjectID = "Z7d-yp-uRx"; */ +"Z7d-yp-uRx.title" = "Enable Menu Bar Lyrics"; From e5e443e11b21c5cf633c9efaec772243942b67b7 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:06:54 +0800 Subject: [PATCH 19/30] New translations Preferences.strings (Korean) --- LyricsX/ko.lproj/Preferences.strings | 179 +++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 LyricsX/ko.lproj/Preferences.strings diff --git a/LyricsX/ko.lproj/Preferences.strings b/LyricsX/ko.lproj/Preferences.strings new file mode 100644 index 00000000..a1cacc8f --- /dev/null +++ b/LyricsX/ko.lproj/Preferences.strings @@ -0,0 +1,179 @@ +/* Class = "NSTextFieldCell"; title = "Lyrics saving path:"; ObjectID = "0M7-ao-0jb"; */ +"0M7-ao-0jb.title" = "Lyrics saving path:"; + +/* Class = "NSButtonCell"; title = "Auto"; ObjectID = "0VO-JB-ubq"; */ +"0VO-JB-ubq.title" = "Auto"; + +/* Class = "NSTextFieldCell"; title = "Lyrics lines maching following rules will be ignored. Use \"/\" to start a regular expression."; ObjectID = "19E-DG-Q23"; */ +"19E-DG-Q23.title" = "Lyrics lines maching following rules will be ignored. Use \"/\" to start a regular expression."; + +/* Class = "NSTextFieldCell"; title = "Lyrics"; ObjectID = "3Bt-md-QNc"; */ +"3Bt-md-QNc.title" = "Lyrics"; + +/* Class = "NSButtonCell"; title = "One line mode"; ObjectID = "5dp-p5-YmE"; */ +"5dp-p5-YmE.title" = "One line mode"; + +/* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "6FU-j0-FTV"; */ +"6FU-j0-FTV.title" = "Traditional Chinese"; + +/* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "6We-TB-Wfc"; */ +"6We-TB-Wfc.title" = "Write lyrics to iTunes:"; + +/* Class = "NSButtonCell"; title = "Automatically"; ObjectID = "7Ax-7T-26K"; */ +"7Ax-7T-26K.title" = "Automatically"; + +/* Class = "NSViewController"; title = "Display"; ObjectID = "8JF-Og-z6E"; */ +"8JF-Og-z6E.title" = "Display"; + +/* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "8Sx-vb-5pB"; */ +"8Sx-vb-5pB.title" = "Write lyrics to iTunes:"; + +/* Class = "NSTextFieldCell"; title = "Font:"; ObjectID = "992-tg-edx"; */ +"992-tg-edx.title" = "Font:"; + +/* Class = "NSMenuItem"; title = "Simplified Chinese"; ObjectID = "AiM-vg-FvQ"; */ +"AiM-vg-FvQ.title" = "Simplified Chinese"; + +/* Class = "NSWindow"; title = "Preferences"; ObjectID = "aMb-zX-bzP"; */ +"aMb-zX-bzP.title" = "Preferences"; + +/* Class = "NSButtonCell"; title = "Strict Search"; ObjectID = "As7-rZ-u6c"; */ +"As7-rZ-u6c.title" = "Strict Search"; + +/* Class = "NSTabViewItem"; label = "Karaoke"; ObjectID = "aUg-eg-K5C"; */ +"aUg-eg-K5C.label" = "Karaoke"; + +/* Class = "NSButtonCell"; title = "Combine menubar icon with menubar lyrics"; ObjectID = "bbd-ra-rSF"; */ +"bbd-ra-rSF.title" = "Combine menubar icon with menubar lyrics"; + +/* Class = "NSTextFieldCell"; title = "Disable lyrics when:"; ObjectID = "bDS-Lb-m34"; */ +"bDS-Lb-m34.title" = "Disable lyrics when:"; + +/* Class = "NSViewController"; title = "Lab"; ObjectID = "bFk-1g-XeL"; */ +"bFk-1g-XeL.title" = "Lab"; + +/* Class = "NSTextFieldCell"; title = "Decrease lyrics offset:"; ObjectID = "bmk-rW-Uot"; */ +"bmk-rW-Uot.title" = "Decrease lyrics offset:"; + +/* Class = "NSButtonCell"; title = "Prefer bilingual lyrics"; ObjectID = "cBB-zn-Hdh"; */ +"cBB-zn-Hdh.title" = "Prefer bilingual lyrics"; + +/* Class = "NSTextFieldCell"; title = "Font:"; ObjectID = "Cmt-it-PXW"; */ +"Cmt-it-PXW.title" = "Font:"; + +/* Class = "NSViewController"; title = "General"; ObjectID = "d5d-dC-DK4"; */ +"d5d-dC-DK4.title" = "General"; + +/* Class = "NSButtonCell"; title = "Load lyrics beside music file"; ObjectID = "EDv-ax-0hI"; */ +"EDv-ax-0hI.title" = "Load lyrics beside music file"; + +/* Class = "NSTextFieldCell"; title = "Here are some experimental features that may not be stable enough, and may be removed in the future."; ObjectID = "g2u-8D-dln"; */ +"g2u-8D-dln.title" = "Here are some experimental features that may not be stable enough, and may be removed in the future."; + +/* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ +"gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; + +/* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ +"h4G-Un-dtm.title" = "Vertical mode"; + +/* Class = "NSTextFieldCell"; title = "Shadow"; ObjectID = "hsu-H9-9Bd"; */ +"hsu-H9-9Bd.title" = "Shadow"; + +/* Class = "NSMenuItem"; title = "Other..."; ObjectID = "HvN-Ou-h1t"; */ +"HvN-Ou-h1t.title" = "Other..."; + +/* Class = "NSMenuItem"; title = "LyricsX (Default)"; ObjectID = "IE7-IT-oPk"; */ +"IE7-IT-oPk.title" = "LyricsX (Default)"; + +/* Class = "NSButtonCell"; title = "Taking a screenshot"; ObjectID = "iMD-Wy-Bm7"; */ +"iMD-Wy-Bm7.title" = "Taking a screenshot"; + +/* Class = "NSButtonCell"; title = "With translation"; ObjectID = "jFb-kX-VbY"; */ +"jFb-kX-VbY.title" = "With translation"; + +/* Class = "NSTextFieldCell"; title = "Auto Chinese conversion:"; ObjectID = "JPB-ag-MN7"; */ +"JPB-ag-MN7.title" = "Auto Chinese conversion:"; + +/* Class = "NSBox"; title = "Preferred music player"; ObjectID = "JYR-Ed-Tax"; */ +"JYR-Ed-Tax.title" = "Preferred music player"; + +/* Class = "NSButtonCell"; title = "Enable lyrics filter"; ObjectID = "kEd-lC-aAH"; */ +"kEd-lC-aAH.title" = "Enable lyrics filter"; + +/* Class = "NSTextFieldCell"; title = "Search lyrics:"; ObjectID = "kP4-4q-ed9"; */ +"kP4-4q-ed9.title" = "Search lyrics:"; + +/* Class = "NSTabViewItem"; label = "Window"; ObjectID = "LbQ-p9-Zti"; */ +"LbQ-p9-Zti.label" = "Window"; + +/* Class = "NSButtonCell"; title = "Mouse passing by"; ObjectID = "LH4-YZ-Qvs"; */ +"LH4-YZ-Qvs.title" = "Mouse passing by"; + +/* Class = "NSViewController"; title = "Filter"; ObjectID = "lN1-gG-AVq"; */ +"lN1-gG-AVq.title" = "Filter"; + +/* Class = "NSTextFieldCell"; title = "Show / Hide karaoke lyrics:"; ObjectID = "lOc-OP-AcU"; */ +"lOc-OP-AcU.title" = "Show / Hide karaoke lyrics:"; + +/* Class = "NSTextFieldCell"; title = "Increase lyrics offset:"; ObjectID = "mo2-3C-gLY"; */ +"mo2-3C-gLY.title" = "Increase lyrics offset:"; + +/* Class = "NSMenuItem"; title = "Auto"; ObjectID = "N08-TS-lqw"; */ +"N08-TS-lqw.title" = "Auto"; + +/* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ +"NLl-9L-0gZ.title" = "Music is not playing"; + +/* Class = "NSButtonCell"; title = "Help translate LyricsX"; ObjectID = "oiH-T7-agJ"; */ +"oiH-T7-agJ.title" = "Help translate LyricsX"; + +/* Class = "NSViewController"; title = "Shortcut"; ObjectID = "ppx-ob-WJc"; */ +"ppx-ob-WJc.title" = "Shortcut"; + +/* Class = "NSTextFieldCell"; title = "Search result match the exact search term"; ObjectID = "rSD-qR-EXA"; */ +"rSD-qR-EXA.title" = "Search result match the exact search term"; + +/* Class = "NSTextFieldCell"; title = "Global offset (ms):"; ObjectID = "slB-q7-1dB"; */ +"slB-q7-1dB.title" = "Global offset (ms):"; + +/* Class = "NSButtonCell"; title = "Draggable"; ObjectID = "T7p-MT-Mrh"; */ +"T7p-MT-Mrh.title" = "Draggable"; + +/* Class = "NSTextFieldCell"; title = "Show lyrics window:"; ObjectID = "TB9-Fk-WAX"; */ +"TB9-Fk-WAX.title" = "Show lyrics window:"; + +/* Class = "NSButtonCell"; title = "Automatically generate furigana for Japanese lyrics"; ObjectID = "ThQ-vA-Krb"; */ +"ThQ-vA-Krb.title" = "Automatically generate furigana for Japanese lyrics"; + +/* Class = "NSTextFieldCell"; title = "Text:"; ObjectID = "Txi-D9-jjB"; */ +"Txi-D9-jjB.title" = "Text:"; + +/* Class = "NSTextFieldCell"; title = "Mark as wrong lyrics:"; ObjectID = "uEb-Q5-cda"; */ +"uEb-Q5-cda.title" = "Mark as wrong lyrics:"; + +/* Class = "NSTextFieldCell"; title = "Background"; ObjectID = "Uer-qJ-3T9"; */ +"Uer-qJ-3T9.title" = "Background"; + +/* Class = "NSTextFieldCell"; title = "Hightlight:"; ObjectID = "UfE-QU-Yhm"; */ +"UfE-QU-Yhm.title" = "Hightlight:"; + +/* Class = "NSButtonCell"; title = "Auto launch & quit with music player"; ObjectID = "v63-4a-fPw"; */ +"v63-4a-fPw.title" = "Auto launch & quit with music player"; + +/* Class = "NSTextFieldCell"; title = "Language (Requires Restart):"; ObjectID = "WfA-pe-S5D"; */ +"WfA-pe-S5D.title" = "Language (Requires Restart):"; + +/* Class = "NSTextFieldCell"; title = "Show / Hide menu bar lyrics:"; ObjectID = "XHQ-gX-urF"; */ +"XHQ-gX-urF.title" = "Show / Hide menu bar lyrics:"; + +/* Class = "NSButtonCell"; title = "Reset"; ObjectID = "XUF-aM-ZmS"; */ +"XUF-aM-ZmS.title" = "Reset"; + +/* Class = "NSTextFieldCell"; title = "Progress"; ObjectID = "XuN-vs-cgI"; */ +"XuN-vs-cgI.title" = "Progress"; + +/* Class = "NSMenuItem"; title = "No Conversion"; ObjectID = "zhB-kd-WWG"; */ +"zhB-kd-WWG.title" = "No Conversion"; + +/* Class = "NSButtonCell"; title = "Customize TouchBar"; ObjectID = "zQK-i2-2Nc"; */ +"zQK-i2-2Nc.title" = "Customize TouchBar"; From 71a9b3c7a43c24cefb957fceeccc2d501bf8ebfe Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:14:01 +0800 Subject: [PATCH 20/30] New translations Preferences.strings (Japanese) --- LyricsX/ja.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/ja.lproj/Preferences.strings b/LyricsX/ja.lproj/Preferences.strings index fd490b2f..c0e67a91 100644 --- a/LyricsX/ja.lproj/Preferences.strings +++ b/LyricsX/ja.lproj/Preferences.strings @@ -5,7 +5,7 @@ "0VO-JB-ubq.title" = "自動設定"; /* Class = "NSTextFieldCell"; title = "Lyrics lines maching following rules will be ignored. Use \"/\" to start a regular expression."; ObjectID = "19E-DG-Q23"; */ -"19E-DG-Q23.title" = "次の規則を満たす歌詞行がフィルタリングされます。 「/ 」を使用して正規表現を有効にします。"; +"19E-DG-Q23.title" = "次の規則を満たす歌詞行が非表示にされます。 先頭に「/」をつけて正規表現にすることができます。"; /* Class = "NSTextFieldCell"; title = "Lyrics"; ObjectID = "3Bt-md-QNc"; */ "3Bt-md-QNc.title" = "歌詞"; From fe04a0ee78652ffe98310e06d721a306876d2ca3 Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:14:02 +0800 Subject: [PATCH 21/30] New translations Main.strings (Japanese) --- LyricsX/ja.lproj/Main.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/ja.lproj/Main.strings b/LyricsX/ja.lproj/Main.strings index 662548f6..0c90b5bc 100644 --- a/LyricsX/ja.lproj/Main.strings +++ b/LyricsX/ja.lproj/Main.strings @@ -62,7 +62,7 @@ "l8J-1r-dIZ.title" = "アーティスト:"; /* Class = "NSTextFieldCell"; title = "If you enjoy using LyricsX, and would like to buy me a cup of coffee, as well as help me keep this software going, you can scan QR code below to make a generous donation."; ObjectID = "o52-Z0-lue"; */ -"o52-Z0-lue.title" = "LyricsX が有用であり、あなたがアプリのメンテナンスをサポートしたいと考えている場合は、以下のQRコードをスキャンして私に寄付することができます。"; +"o52-Z0-lue.title" = "LyricsX が役に立てて、アプリのメンテナンスをサポートしたいと考えている場合は、下記のQRコードをスキャンして私に寄付することができます。"; /* Class = "NSMenuItem"; title = "About LyricsX"; ObjectID = "PdE-VG-JUC"; */ "PdE-VG-JUC.title" = "LyricsX について"; From 6d74875cca74196053d19a1f807c5402515057ab Mon Sep 17 00:00:00 2001 From: ddddxxx Date: Wed, 26 Feb 2020 18:23:08 +0800 Subject: [PATCH 22/30] New translations Preferences.strings (Japanese) --- LyricsX/ja.lproj/Preferences.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LyricsX/ja.lproj/Preferences.strings b/LyricsX/ja.lproj/Preferences.strings index c0e67a91..a4232205 100644 --- a/LyricsX/ja.lproj/Preferences.strings +++ b/LyricsX/ja.lproj/Preferences.strings @@ -50,7 +50,7 @@ "bDS-Lb-m34.title" = "歌詞を非表示:"; /* Class = "NSViewController"; title = "Lab"; ObjectID = "bFk-1g-XeL"; */ -"bFk-1g-XeL.title" = "実験室"; +"bFk-1g-XeL.title" = "ラボ"; /* Class = "NSTextFieldCell"; title = "Decrease lyrics offset:"; ObjectID = "bmk-rW-Uot"; */ "bmk-rW-Uot.title" = "歌詞のオフセットを減らす:"; From 691bd548ba18ed94c19c3cb87e9f9109f008ef02 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Fri, 28 Feb 2020 18:07:13 +0800 Subject: [PATCH 23/30] make labels in "about" window selectable --- LyricsX/Base.lproj/Main.storyboard | 88 +++++++++++++++--------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/LyricsX/Base.lproj/Main.storyboard b/LyricsX/Base.lproj/Main.storyboard index c1b33d2e..81ec8080 100644 --- a/LyricsX/Base.lproj/Main.storyboard +++ b/LyricsX/Base.lproj/Main.storyboard @@ -1,8 +1,8 @@ - + - + @@ -20,7 +20,7 @@ - + @@ -33,7 +33,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -185,7 +185,7 @@ - + @@ -199,7 +199,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -225,7 +225,7 @@ - + @@ -234,7 +234,7 @@ - + @@ -244,7 +244,7 @@ - + @@ -295,7 +295,7 @@ - + @@ -345,7 +345,7 @@ - + @@ -417,7 +417,7 @@ - + @@ -434,13 +434,13 @@ - + - + @@ -649,7 +649,7 @@ IA - + @@ -660,7 +660,7 @@ IA - + @@ -676,7 +676,7 @@ IA - + @@ -684,7 +684,7 @@ IA - + @@ -701,7 +701,7 @@ IA - + @@ -750,7 +750,7 @@ IA - + @@ -761,7 +761,7 @@ IA - + @@ -771,7 +771,7 @@ IA - + @@ -782,7 +782,7 @@ IA - + @@ -792,7 +792,7 @@ IA - + @@ -803,7 +803,7 @@ IA - + @@ -912,7 +912,7 @@ IA - + @@ -1006,14 +1006,14 @@ IA - + - + @@ -1022,14 +1022,14 @@ IA - + - + @@ -1073,14 +1073,14 @@ IA - + - + From 20d28104f048f19ba10a79822eca661ab3e11ab5 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Fri, 28 Feb 2020 18:25:11 +0800 Subject: [PATCH 24/30] add ui for system now playing and swinsian applicaion --- LyricsX/Base.lproj/Preferences.storyboard | 112 +++++++++++++----- .../PreferenceGeneralViewController.swift | 5 +- LyricsX/Supporting Files/Info.plist | 12 +- LyricsX/bi.lproj/Preferences.strings | 3 + LyricsX/de.lproj/Preferences.strings | 3 + LyricsX/en.lproj/Preferences.strings | 3 + LyricsX/es.lproj/Preferences.strings | 3 + LyricsX/fa.lproj/Preferences.strings | 3 + LyricsX/fr.lproj/Preferences.strings | 3 + LyricsX/ja.lproj/Preferences.strings | 3 + LyricsX/pl.lproj/Preferences.strings | 3 + LyricsX/pt.lproj/Preferences.strings | 3 + LyricsX/zh-Hans.lproj/Preferences.strings | 3 + LyricsX/zh-Hant.lproj/Preferences.strings | 3 + 14 files changed, 125 insertions(+), 37 deletions(-) diff --git a/LyricsX/Base.lproj/Preferences.storyboard b/LyricsX/Base.lproj/Preferences.storyboard index 2ae4eef3..f43127be 100644 --- a/LyricsX/Base.lproj/Preferences.storyboard +++ b/LyricsX/Base.lproj/Preferences.storyboard @@ -1,8 +1,8 @@ - + - + @@ -65,23 +65,23 @@ - + - + - + - + + + + + + + + + @@ -247,10 +281,10 @@ - + @@ -446,12 +480,12 @@ - + - + @@ -1329,7 +1363,7 @@ - + + - @@ -1438,10 +1485,14 @@ + + + + @@ -1466,6 +1517,7 @@ + diff --git a/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift b/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift index 565fd2a7..0b03028e 100644 --- a/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift +++ b/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift @@ -16,6 +16,7 @@ class PreferenceGeneralViewController: NSViewController { @IBOutlet weak var preferSpotify: NSButton! @IBOutlet weak var preferVox: NSButton! @IBOutlet weak var preferAudirvana: NSButton! + @IBOutlet weak var preferSwinsian: NSButton! @IBOutlet weak var autoLaunchButton: NSButton! @@ -40,6 +41,8 @@ class PreferenceGeneralViewController: NSViewController { case 3: preferAudirvana.state = .on loadHomonymLrcButton.isEnabled = false + case 4: + preferSwinsian.state = .on default: preferAuto.state = .on autoLaunchButton.isEnabled = false @@ -124,7 +127,7 @@ class PreferenceGeneralViewController: NSViewController { autoLaunchButton.isEnabled = true } - if sender.tag == 1 || sender.tag == 3 { + if sender.tag == 1 || sender.tag == 3 || sender.tag == 4 { loadHomonymLrcButton.isEnabled = false loadHomonymLrcButton.state = .off defaults[.LoadLyricsBesideTrack] = false diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index 8b18d2ff..997e9739 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.5.2-beta.3 CFBundleVersion - 2257 + 2259 Fabric APIKey @@ -43,7 +43,7 @@ LSUIElement LX_BUILD_TIME - 1581144923 + 1582887437 NSAppTransportSecurity NSExceptionDomains @@ -142,15 +142,15 @@ UTExportedTypeDeclarations - UTTypeIdentifier - org.lyricsx.lrcx - UTTypeDescription - Lyrics File UTTypeConformsTo public.text public.data + UTTypeDescription + Lyrics File + UTTypeIdentifier + org.lyricsx.lrcx UTTypeTagSpecification public.filename-extension diff --git a/LyricsX/bi.lproj/Preferences.strings b/LyricsX/bi.lproj/Preferences.strings index a1cacc8f..5dc454fa 100644 --- a/LyricsX/bi.lproj/Preferences.strings +++ b/LyricsX/bi.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Vertical mode"; diff --git a/LyricsX/de.lproj/Preferences.strings b/LyricsX/de.lproj/Preferences.strings index 06fddf79..de01873b 100644 --- a/LyricsX/de.lproj/Preferences.strings +++ b/LyricsX/de.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "TouchBar-Songtexte aktivieren"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Vertikaler Modus"; diff --git a/LyricsX/en.lproj/Preferences.strings b/LyricsX/en.lproj/Preferences.strings index d7b3173d..8b54ce5b 100644 --- a/LyricsX/en.lproj/Preferences.strings +++ b/LyricsX/en.lproj/Preferences.strings @@ -74,6 +74,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Vertical mode"; diff --git a/LyricsX/es.lproj/Preferences.strings b/LyricsX/es.lproj/Preferences.strings index a6d70c59..d2af9998 100644 --- a/LyricsX/es.lproj/Preferences.strings +++ b/LyricsX/es.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Activar letras en la Touch Bar"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Modo vertical"; diff --git a/LyricsX/fa.lproj/Preferences.strings b/LyricsX/fa.lproj/Preferences.strings index eb75108c..292f5e7d 100644 --- a/LyricsX/fa.lproj/Preferences.strings +++ b/LyricsX/fa.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Vertical mode"; diff --git a/LyricsX/fr.lproj/Preferences.strings b/LyricsX/fr.lproj/Preferences.strings index 4e12887c..9e797a4a 100644 --- a/LyricsX/fr.lproj/Preferences.strings +++ b/LyricsX/fr.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Activer les paroles dans la Touch Bar"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Mode vertical"; diff --git a/LyricsX/ja.lproj/Preferences.strings b/LyricsX/ja.lproj/Preferences.strings index 7f92041a..3b2ec8fb 100644 --- a/LyricsX/ja.lproj/Preferences.strings +++ b/LyricsX/ja.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "タッチバー歌詞を有効にする"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "垂直モード"; diff --git a/LyricsX/pl.lproj/Preferences.strings b/LyricsX/pl.lproj/Preferences.strings index f6c4ec01..00fdde0f 100644 --- a/LyricsX/pl.lproj/Preferences.strings +++ b/LyricsX/pl.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Włącz tekst na Touch Bar"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Tryb pionowy"; diff --git a/LyricsX/pt.lproj/Preferences.strings b/LyricsX/pt.lproj/Preferences.strings index a1cacc8f..5dc454fa 100644 --- a/LyricsX/pt.lproj/Preferences.strings +++ b/LyricsX/pt.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Vertical mode"; diff --git a/LyricsX/zh-Hans.lproj/Preferences.strings b/LyricsX/zh-Hans.lproj/Preferences.strings index bd7abb7d..733858b0 100644 --- a/LyricsX/zh-Hans.lproj/Preferences.strings +++ b/LyricsX/zh-Hans.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "启用触控栏歌词"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "竖排模式"; diff --git a/LyricsX/zh-Hant.lproj/Preferences.strings b/LyricsX/zh-Hant.lproj/Preferences.strings index 519dfb69..5de757df 100644 --- a/LyricsX/zh-Hant.lproj/Preferences.strings +++ b/LyricsX/zh-Hant.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "啟用 Touch Bar 歌詞"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "竪排模式"; From 813429639b5c201220b00f41b20d9721153e8ec1 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Fri, 28 Feb 2020 18:59:20 +0800 Subject: [PATCH 25/30] use MusicPlayer v0.6.5 --- LyricsX.xcodeproj/project.pbxproj | 2 +- .../project.xcworkspace/xcshareddata/swiftpm/Package.resolved | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/LyricsX.xcodeproj/project.pbxproj b/LyricsX.xcodeproj/project.pbxproj index 0e386cc2..f1dfb332 100644 --- a/LyricsX.xcodeproj/project.pbxproj +++ b/LyricsX.xcodeproj/project.pbxproj @@ -1403,7 +1403,7 @@ repositoryURL = "https://github.com/ddddxxx/MusicPlayer"; requirement = { kind = upToNextMinorVersion; - minimumVersion = 0.6.3; + minimumVersion = 0.6.5; }; }; BBB03F2B232FB3AF00A3879E /* XCRemoteSwiftPackageReference "GenericID" */ = { diff --git a/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index ad2ebe7f..997ed5d4 100644 --- a/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/LyricsX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -51,8 +51,8 @@ "repositoryURL": "https://github.com/ddddxxx/MusicPlayer", "state": { "branch": null, - "revision": "935e0a92744cc79b1f2c034621092f8aa64cf75f", - "version": "0.6.3" + "revision": "2c56ad6167ebf83dd5861249d6f4fec113e8145b", + "version": "0.6.5" } }, { From 755f85ef9d1d1768006bf0d749f9e978900eb213 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Fri, 28 Feb 2020 19:03:20 +0800 Subject: [PATCH 26/30] fix: IBOutlet --- LyricsX/Base.lproj/Preferences.storyboard | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/LyricsX/Base.lproj/Preferences.storyboard b/LyricsX/Base.lproj/Preferences.storyboard index f43127be..483db034 100644 --- a/LyricsX/Base.lproj/Preferences.storyboard +++ b/LyricsX/Base.lproj/Preferences.storyboard @@ -122,7 +122,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -186,7 +186,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -242,7 +242,7 @@ - + @@ -571,6 +571,7 @@ + From ffa06bc03bf5a4f29a7707043d4c5d2cf33e4919 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Fri, 28 Feb 2020 19:15:33 +0800 Subject: [PATCH 27/30] style --- LyricsX/Base.lproj/Preferences.storyboard | 12 +- LyricsX/Component/AppController.swift | 22 ++-- LyricsX/Component/AppDelegate.swift | 55 +++++---- .../ChineseConverter+Singleton.swift | 2 +- LyricsX/Component/SelectedPlayer.swift | 6 +- .../Controller/KaraokeLyricsController.swift | 48 ++++---- .../Controller/LyricsHUDViewController.swift | 12 +- LyricsX/Controller/MenuBarLyrics.swift | 8 +- .../PreferenceDisplayViewController.swift | 16 +-- .../PreferenceFilterViewController.swift | 6 +- .../PreferenceGeneralViewController.swift | 18 +-- .../PreferenceLabViewController.swift | 2 +- .../SearchLyricsViewController.swift | 10 +- LyricsX/Controller/TouchBarLyrics.swift | 2 +- LyricsX/Supporting Files/Info.plist | 4 +- LyricsX/Utility/Extension.swift | 24 ++-- LyricsX/Utility/Global.swift | 110 +++++++++--------- LyricsX/View/ScrollLyricsView.swift | 2 +- LyricsX/ko.lproj/Preferences.strings | 3 + 19 files changed, 182 insertions(+), 180 deletions(-) diff --git a/LyricsX/Base.lproj/Preferences.storyboard b/LyricsX/Base.lproj/Preferences.storyboard index 483db034..f17833aa 100644 --- a/LyricsX/Base.lproj/Preferences.storyboard +++ b/LyricsX/Base.lproj/Preferences.storyboard @@ -122,7 +122,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -186,7 +186,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -242,7 +242,7 @@ - + diff --git a/LyricsX/Component/AppController.swift b/LyricsX/Component/AppController.swift index 628b31f4..a3325c19 100644 --- a/LyricsX/Component/AppController.swift +++ b/LyricsX/Component/AppController.swift @@ -65,7 +65,7 @@ class AppController: NSObject { defaultNC.cx.publisher(for: NSWorkspace.didTerminateApplicationNotification, object: nil) .sink { n in let bundleID = (n.userInfo![NSWorkspace.applicationUserInfoKey] as! NSRunningApplication).bundleIdentifier - if defaults[.LaunchAndQuitWithPlayer], (selectedPlayer.designatedPlayer as? MusicPlayers.Scriptable)?.playerBundleID == bundleID { + if defaults[.launchAndQuitWithPlayer], (selectedPlayer.designatedPlayer as? MusicPlayers.Scriptable)?.playerBundleID == bundleID { NSApplication.shared.terminate(nil) } }.store(in: &cancelBag) @@ -104,7 +104,7 @@ class AppController: NSObject { if let converter = ChineseConverter.shared { content = converter.convert(content) } - if defaults[.WriteiTunesWithTranslation] { + if defaults[.writeiTunesWithTranslation] { // TODO: tagged translation let code = currentLyrics.metadata.translationLanguages.first if var translation = line.attachments.translation(languageCode: code) { @@ -136,13 +136,13 @@ class AppController: NSObject { let title = track.title ?? "" let artist = track.artist ?? "" - guard !defaults[.NoSearchingTrackIds].contains(track.id) else { + guard !defaults[.noSearchingTrackIds].contains(track.id) else { return } var candidateLyricsURL: [(URL, Bool, Bool)] = [] // (fileURL, isSecurityScoped, needsSearching) - if defaults[.LoadLyricsBesideTrack] { + if defaults[.loadLyricsBesideTrack] { if let fileName = track.fileURL?.deletingPathExtension() { candidateLyricsURL += [ (fileName.appendingPathExtension("lrcx"), false, false), @@ -195,7 +195,7 @@ class AppController: NSObject { checkForMASReview() #endif - if let album = track.album, defaults[.NoSearchingAlbumNames].contains(album) { + if let album = track.album, defaults[.noSearchingAlbumNames].contains(album) { return } @@ -209,7 +209,7 @@ class AppController: NSObject { searchRequest = req searchCanceller = lyricsManager.lyricsPublisher(request: req) .sink(receiveCompletion: { [unowned self] _ in - if defaults[.WriteToiTunesAutomatically] { + if defaults[.writeToiTunesAutomatically] { self.writeToiTunes(overwrite: true) } }, receiveValue: { [unowned self] lyrics in @@ -225,7 +225,7 @@ class AppController: NSObject { lyrics.metadata.request == req else { return } - if defaults[.StrictSearchEnabled] && !lyrics.isMatched() { + if defaults[.strictSearchEnabled] && !lyrics.isMatched() { return } if let current = currentLyrics, current.quality >= lyrics.quality { @@ -263,11 +263,11 @@ extension AppController { lrc.recognizeLanguage() lrc.metadata.needsPersist = true currentLyrics = lrc - if let index = defaults[.NoSearchingTrackIds].firstIndex(of: track.id) { - defaults[.NoSearchingTrackIds].remove(at: index) + if let index = defaults[.noSearchingTrackIds].firstIndex(of: track.id) { + defaults[.noSearchingTrackIds].remove(at: index) } - if let index = defaults[.NoSearchingAlbumNames].firstIndex(of: track.album ?? "") { - defaults[.NoSearchingAlbumNames].remove(at: index) + if let index = defaults[.noSearchingAlbumNames].firstIndex(of: track.album ?? "") { + defaults[.noSearchingAlbumNames].remove(at: index) } } } diff --git a/LyricsX/Component/AppDelegate.swift b/LyricsX/Component/AppDelegate.swift index c0c2ed4c..bf603ccf 100644 --- a/LyricsX/Component/AppDelegate.swift +++ b/LyricsX/Component/AppDelegate.swift @@ -12,8 +12,7 @@ import GenericID import MASShortcut import MusicPlayer -#if IS_FOR_MAS -#else +#if !IS_FOR_MAS import Sparkle #endif @@ -73,8 +72,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu NSRunningApplication.runningApplications(withBundleIdentifier: lyricsXHelperIdentifier).forEach { $0.terminate() } let sharedKeys: [UserDefaults.DefaultsKeys] = [ - .LaunchAndQuitWithPlayer, - .PreferredPlayerIndex, + .launchAndQuitWithPlayer, + .preferredPlayerIndex, ] sharedKeys.forEach { groupDefaults.bind(NSBindingName($0.key), withDefaultName: $0) @@ -85,7 +84,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu #else SUUpdater.shared()?.checkForUpdatesInBackground() if #available(OSX 10.12.2, *) { - observeDefaults(key: .TouchBarLyricsEnabled, options: [.new, .initial]) { [unowned self] _, change in + observeDefaults(key: .touchBarLyricsEnabled, options: [.new, .initial]) { [unowned self] _, change in if change.newValue, self.touchBarLyrics == nil { self._touchBarLyrics = TouchBarLyrics() } else if !change.newValue, self.touchBarLyrics != nil { @@ -100,7 +99,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu if AppController.shared.currentLyrics?.metadata.needsPersist == true { AppController.shared.currentLyrics?.persist() } - if defaults[.LaunchAndQuitWithPlayer] { + if defaults[.launchAndQuitWithPlayer] { let url = Bundle.main.bundleURL.appendingPathComponent("Contents/Library/LoginItems/LyricsXHelper.app") groupDefaults[.launchHelperTime] = Date() do { @@ -114,14 +113,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu private func setupShortcuts() { let binder = MASShortcutBinder.shared()! - binder.bindBoolShortcut(.ShortcutToggleMenuBarLyrics, target: .MenuBarLyricsEnabled) - binder.bindBoolShortcut(.ShortcutToggleKaraokeLyrics, target: .DesktopLyricsEnabled) - binder.bindShortcut(.ShortcutShowLyricsWindow, to: #selector(showLyricsHUD)) - binder.bindShortcut(.ShortcutOffsetIncrease, to: #selector(increaseOffset)) - binder.bindShortcut(.ShortcutOffsetDecrease, to: #selector(decreaseOffset)) - binder.bindShortcut(.ShortcutWriteToiTunes, to: #selector(writeToiTunes)) - binder.bindShortcut(.ShortcutWrongLyrics, to: #selector(wrongLyrics)) - binder.bindShortcut(.ShortcutSearchLyrics, to: #selector(searchLyrics)) + binder.bindBoolShortcut(.shortcutToggleMenuBarLyrics, target: .menuBarLyricsEnabled) + binder.bindBoolShortcut(.shortcutToggleKaraokeLyrics, target: .desktopLyricsEnabled) + binder.bindShortcut(.shortcutShowLyricsWindow, to: #selector(showLyricsHUD)) + binder.bindShortcut(.shortcutOffsetIncrease, to: #selector(increaseOffset)) + binder.bindShortcut(.shortcutOffsetDecrease, to: #selector(decreaseOffset)) + binder.bindShortcut(.shortcutWriteToiTunes, to: #selector(writeToiTunes)) + binder.bindShortcut(.shortcutWrongLyrics, to: #selector(wrongLyrics)) + binder.bindShortcut(.shortcutSearchLyrics, to: #selector(searchLyrics)) } // MARK: - NSMenuDelegate @@ -195,8 +194,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu guard let track = selectedPlayer.currentTrack else { return } - defaults[.NoSearchingTrackIds].append(track.id) - if defaults[.WriteToiTunesAutomatically] { + defaults[.noSearchingTrackIds].append(track.id) + if defaults[.writeToiTunesAutomatically] { track.setLyrics("") } if let url = AppController.shared.currentLyrics?.metadata.localURL { @@ -211,8 +210,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu let album = track.album else { return } - defaults[.NoSearchingAlbumNames].append(album) - if defaults[.WriteToiTunesAutomatically] { + defaults[.noSearchingAlbumNames].append(album) + if defaults[.writeToiTunesAutomatically] { track.setLyrics("") } if let url = AppController.shared.currentLyrics?.metadata.localURL { @@ -231,16 +230,16 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation, NSMenu defaults.register(defaults: dict) } defaults.register(defaults: [ - .DesktopLyricsColor: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), - .DesktopLyricsProgressColor: #colorLiteral(red: 0.1985405816, green: 1, blue: 0.8664234302, alpha: 1), - .DesktopLyricsShadowColor: #colorLiteral(red: 0, green: 1, blue: 0.8333333333, alpha: 1), - .DesktopLyricsBackgroundColor: #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.6041579279), - .LyricsWindowTextColor: #colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), - .LyricsWindowHighlightColor: #colorLiteral(red: 0.8866666667, green: 1, blue: 0.8, alpha: 1), - .PreferBilingualLyrics: isZh, - .ChineseConversionIndex: isHant ? 2 : 0, - .DesktopLyricsXPositionFactor: 0.5, - .DesktopLyricsYPositionFactor: 0.9, + .desktopLyricsColor: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), + .desktopLyricsProgressColor: #colorLiteral(red: 0.1985405816, green: 1, blue: 0.8664234302, alpha: 1), + .desktopLyricsShadowColor: #colorLiteral(red: 0, green: 1, blue: 0.8333333333, alpha: 1), + .desktopLyricsBackgroundColor: #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.6041579279), + .lyricsWindowTextColor: #colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), + .lyricsWindowHighlightColor: #colorLiteral(red: 0.8866666667, green: 1, blue: 0.8, alpha: 1), + .preferBilingualLyrics: isZh, + .chineseConversionIndex: isHant ? 2 : 0, + .desktopLyricsXPositionFactor: 0.5, + .desktopLyricsYPositionFactor: 0.9, ]) } } diff --git a/LyricsX/Component/ChineseConverter+Singleton.swift b/LyricsX/Component/ChineseConverter+Singleton.swift index 1bfe0643..58c3eeed 100644 --- a/LyricsX/Component/ChineseConverter+Singleton.swift +++ b/LyricsX/Component/ChineseConverter+Singleton.swift @@ -16,7 +16,7 @@ extension ChineseConverter { private static var _shared: ChineseConverter? - private static let observer = defaults.observe(.ChineseConversionIndex, options: [.new, .initial]) { _, change in + private static let observer = defaults.observe(.chineseConversionIndex, options: [.new, .initial]) { _, change in switch change.newValue { case 1: ChineseConverter._shared = try! ChineseConverter(option: [.simplify]) case 2: ChineseConverter._shared = try! ChineseConverter(option: [.traditionalize]) diff --git a/LyricsX/Component/SelectedPlayer.swift b/LyricsX/Component/SelectedPlayer.swift index aa8a5d41..b3681cee 100644 --- a/LyricsX/Component/SelectedPlayer.swift +++ b/LyricsX/Component/SelectedPlayer.swift @@ -28,15 +28,15 @@ extension MusicPlayers { super.init() selectPlayer() scheduleManualUpdate() - defaultsObservation = defaults.observe(keys: [.PreferredPlayerIndex, .UseSystemWideNowPlaying]) { [weak self] in + defaultsObservation = defaults.observe(keys: [.preferredPlayerIndex, .useSystemWideNowPlaying]) { [weak self] in self?.selectPlayer() } } private func selectPlayer() { - let idx = defaults[.PreferredPlayerIndex] + let idx = defaults[.preferredPlayerIndex] if idx == -1 { - if defaults[.UseSystemWideNowPlaying] { + if defaults[.useSystemWideNowPlaying] { designatedPlayer = MusicPlayers.SystemNowPlaying() } else { let players = MusicPlayerName.scriptableCases.compactMap(MusicPlayers.Scriptable.init) diff --git a/LyricsX/Controller/KaraokeLyricsController.swift b/LyricsX/Controller/KaraokeLyricsController.swift index f0c4f73a..6ab62b9f 100644 --- a/LyricsX/Controller/KaraokeLyricsController.swift +++ b/LyricsX/Controller/KaraokeLyricsController.swift @@ -57,7 +57,7 @@ class KaraokeLyricsWindowController: NSWindowController { .receive(on: DispatchQueue.lyricsDisplay.cx) .invoke(KaraokeLyricsWindowController.handleLyricsDisplay, weaklyOn: self) .store(in: &self.cancelBag) - self.observeDefaults(keys: [.PreferBilingualLyrics, .DesktopLyricsOneLineMode]) { [unowned self] in + self.observeDefaults(keys: [.preferBilingualLyrics, .desktopLyricsOneLineMode]) { [unowned self] in self.handleLyricsDisplay() } } @@ -68,29 +68,29 @@ class KaraokeLyricsWindowController: NSWindowController { } private func addObserver() { - lyricsView.bind(\.textColor, withDefaultName: .DesktopLyricsColor) - lyricsView.bind(\.progressColor, withDefaultName: .DesktopLyricsProgressColor) - lyricsView.bind(\.shadowColor, withDefaultName: .DesktopLyricsShadowColor) - lyricsView.bind(\.backgroundColor, withDefaultName: .DesktopLyricsBackgroundColor) - lyricsView.bind(\.isVertical, withDefaultName: .DesktopLyricsVerticalMode, options: [.nullPlaceholder: false]) - lyricsView.bind(\.drawFurigana, withDefaultName: .DesktopLyricsEnableFurigana) + lyricsView.bind(\.textColor, withDefaultName: .desktopLyricsColor) + lyricsView.bind(\.progressColor, withDefaultName: .desktopLyricsProgressColor) + lyricsView.bind(\.shadowColor, withDefaultName: .desktopLyricsShadowColor) + lyricsView.bind(\.backgroundColor, withDefaultName: .desktopLyricsBackgroundColor) + lyricsView.bind(\.isVertical, withDefaultName: .desktopLyricsVerticalMode, options: [.nullPlaceholder: false]) + lyricsView.bind(\.drawFurigana, withDefaultName: .desktopLyricsEnableFurigana) let negateOption = [NSBindingOption.valueTransformerName: NSValueTransformerName.negateBooleanTransformerName] - window?.contentView?.bind(.hidden, withDefaultName: .DesktopLyricsEnabled, options: negateOption) + window?.contentView?.bind(.hidden, withDefaultName: .desktopLyricsEnabled, options: negateOption) - observeDefaults(key: .DisableLyricsWhenSreenShot, options: [.new, .initial]) { [unowned self] _, change in + observeDefaults(key: .disableLyricsWhenSreenShot, options: [.new, .initial]) { [unowned self] _, change in self.window?.sharingType = change.newValue ? .none : .readOnly } observeDefaults(keys: [ - .HideLyricsWhenMousePassingBy, - .DesktopLyricsDraggable + .hideLyricsWhenMousePassingBy, + .desktopLyricsDraggable ], options: [.initial]) { - self.lyricsView.shouldHideWithMouse = defaults[.HideLyricsWhenMousePassingBy] && !defaults[.DesktopLyricsDraggable] + self.lyricsView.shouldHideWithMouse = defaults[.hideLyricsWhenMousePassingBy] && !defaults[.desktopLyricsDraggable] } observeDefaults(keys: [ - .DesktopLyricsFontName, - .DesktopLyricsFontSize, - .DesktopLyricsFontNameFallback + .desktopLyricsFontName, + .desktopLyricsFontSize, + .desktopLyricsFontNameFallback ], options: [.initial]) { [unowned self] in self.lyricsView.font = defaults.desktopLyricsFont } @@ -111,8 +111,8 @@ class KaraokeLyricsWindowController: NSWindowController { } @objc private func handleLyricsDisplay() { - guard defaults[.DesktopLyricsEnabled], - !defaults[.DisableLyricsWhenPaused] || selectedPlayer.playbackState.isPlaying, + guard defaults[.desktopLyricsEnabled], + !defaults[.disableLyricsWhenPaused] || selectedPlayer.playbackState.isPlaying, let lyrics = AppController.shared.currentLyrics, let index = AppController.shared.currentLineIndex else { DispatchQueue.main.async { @@ -129,9 +129,9 @@ class KaraokeLyricsWindowController: NSWindowController { var firstLine = lrc.content var secondLine: String var secondLineIsTranslation = false - if defaults[.DesktopLyricsOneLineMode] { + if defaults[.desktopLyricsOneLineMode] { secondLine = "" - } else if defaults[.PreferBilingualLyrics], + } else if defaults[.preferBilingualLyrics], let translation = lrc.attachments.translation(languageCode: languageCode) { secondLine = translation secondLineIsTranslation = true @@ -168,8 +168,8 @@ class KaraokeLyricsWindowController: NSWindowController { private func makeConstraints() { lyricsView.snp.remakeConstraints { make in - make.centerX.equalToSuperview().safeMultipliedBy(defaults[.DesktopLyricsXPositionFactor] * 2).priority(.low) - make.centerY.equalToSuperview().safeMultipliedBy(defaults[.DesktopLyricsYPositionFactor] * 2).priority(.low) + make.centerX.equalToSuperview().safeMultipliedBy(defaults[.desktopLyricsXPositionFactor] * 2).priority(.low) + make.centerY.equalToSuperview().safeMultipliedBy(defaults[.desktopLyricsYPositionFactor] * 2).priority(.low) make.leading.greaterThanOrEqualToSuperview() make.trailing.lessThanOrEqualToSuperview() make.top.greaterThanOrEqualToSuperview() @@ -187,7 +187,7 @@ class KaraokeLyricsWindowController: NSWindowController { } override func mouseDragged(with event: NSEvent) { - guard defaults[.DesktopLyricsDraggable], + guard defaults[.desktopLyricsDraggable], let vecToCenter = vecToCenter, let window = window else { return @@ -210,8 +210,8 @@ class KaraokeLyricsWindowController: NSWindowController { if abs(center.y - bounds.height / 2) < 8 { yFactor = 0.5 } - defaults[.DesktopLyricsXPositionFactor] = xFactor - defaults[.DesktopLyricsYPositionFactor] = yFactor + defaults[.desktopLyricsXPositionFactor] = xFactor + defaults[.desktopLyricsYPositionFactor] = yFactor makeConstraints() window.layoutIfNeeded() } diff --git a/LyricsX/Controller/LyricsHUDViewController.swift b/LyricsX/Controller/LyricsHUDViewController.swift index f0e8ba45..cf37d9a5 100644 --- a/LyricsX/Controller/LyricsHUDViewController.swift +++ b/LyricsX/Controller/LyricsHUDViewController.swift @@ -40,7 +40,7 @@ class LyricsHUDViewController: NSViewController, NSWindowDelegate, ScrollLyricsV $0.delegate = self } // swiftlint:disable:next force_cast - let accessory = NSStoryboard.main!.instantiateController(withIdentifier: .LyricsHUDAccessory) as! NSTitlebarAccessoryViewController + let accessory = NSStoryboard.main!.instantiateController(withIdentifier: .lyricsHUDAccessory) as! NSTitlebarAccessoryViewController accessory.layoutAttribute = .right view.window?.addTitlebarAccessoryViewController(accessory) @@ -48,12 +48,12 @@ class LyricsHUDViewController: NSViewController, NSWindowDelegate, ScrollLyricsV lyricsScrollView.delegate = self lyricsScrollView.setupTextContents(lyrics: AppController.shared.currentLyrics) - lyricsScrollView.bind(\.fontName, withDefaultName: .LyricsWindowFontName) - lyricsScrollView.bind(\.fontSize, withUnmatchedDefaultName: .LyricsWindowFontSize) - lyricsScrollView.bind(\.textColor, withDefaultName: .LyricsWindowTextColor) - lyricsScrollView.bind(\.highlightColor, withDefaultName: .LyricsWindowHighlightColor) + lyricsScrollView.bind(\.fontName, withDefaultName: .lyricsWindowFontName) + lyricsScrollView.bind(\.fontSize, withUnmatchedDefaultName: .lyricsWindowFontSize) + lyricsScrollView.bind(\.textColor, withDefaultName: .lyricsWindowTextColor) + lyricsScrollView.bind(\.highlightColor, withDefaultName: .lyricsWindowHighlightColor) - observeDefaults(key: .LyricsWindowFontSize, options: [.new, .initial]) { [unowned self] _, change in + observeDefaults(key: .lyricsWindowFontSize, options: [.new, .initial]) { [unowned self] _, change in let fontSize = CGFloat(change.newValue) self.lyricsScrollViewTopMargin.constant = fontSize self.lyricsScrollViewLeftMargin.constant = fontSize diff --git a/LyricsX/Controller/MenuBarLyrics.swift b/LyricsX/Controller/MenuBarLyrics.swift index 1e4b8b1a..0aeec333 100644 --- a/LyricsX/Controller/MenuBarLyrics.swift +++ b/LyricsX/Controller/MenuBarLyrics.swift @@ -40,11 +40,11 @@ class MenuBarLyrics: NSObject { .invoke(MenuBarLyrics.handleLyricsDisplay, weaklyOn: self) .store(in: &cancelBag) observeNotification(center: workspaceNC, name: NSWorkspace.didActivateApplicationNotification) { [unowned self] _ in self.updateStatusItem() } - observeDefaults(keys: [.MenuBarLyricsEnabled, .CombinedMenubarLyrics], options: [.initial]) { [unowned self] in self.updateStatusItem() } + observeDefaults(keys: [.menuBarLyricsEnabled, .combinedMenubarLyrics], options: [.initial]) { [unowned self] in self.updateStatusItem() } } private func handleLyricsDisplay(event: (lyrics: Lyrics?, index: Int?)) { - guard !defaults[.DisableLyricsWhenPaused] || selectedPlayer.playbackState.isPlaying, + guard !defaults[.disableLyricsWhenPaused] || selectedPlayer.playbackState.isPlaying, let lyrics = event.lyrics, let index = event.index else { screenLyrics = "" @@ -61,13 +61,13 @@ class MenuBarLyrics: NSObject { } @objc private func updateStatusItem() { - guard defaults[.MenuBarLyricsEnabled], !screenLyrics.isEmpty else { + guard defaults[.menuBarLyricsEnabled], !screenLyrics.isEmpty else { setImageStatusItem() lyricsItem = nil return } - if defaults[.CombinedMenubarLyrics] { + if defaults[.combinedMenubarLyrics] { updateCombinedStatusLyrics() } else { updateSeparateStatusLyrics() diff --git a/LyricsX/Controller/Preferences/PreferenceDisplayViewController.swift b/LyricsX/Controller/Preferences/PreferenceDisplayViewController.swift index fb3094e0..aed59576 100644 --- a/LyricsX/Controller/Preferences/PreferenceDisplayViewController.swift +++ b/LyricsX/Controller/Preferences/PreferenceDisplayViewController.swift @@ -25,7 +25,7 @@ class PreferenceDisplayViewController: NSViewController, FontSelectTextFieldDele } func updateScreenFontFallback() { - guard let fallback = defaults[.DesktopLyricsFontNameFallback].first else { + guard let fallback = defaults[.desktopLyricsFontNameFallback].first else { fontFallbackLabel.isHidden = true removeFontFallbackButton.isHidden = true return @@ -37,28 +37,28 @@ class PreferenceDisplayViewController: NSViewController, FontSelectTextFieldDele } @IBAction func removeFontFallbackAction(_ sender: Any) { - defaults[.DesktopLyricsFontNameFallback].removeAll() + defaults[.desktopLyricsFontNameFallback].removeAll() updateScreenFontFallback() } func fontChanged(from oldFont: NSFont, to newFont: NSFont, sender: FontSelectTextField) { if sender === karaokeFontSelectField { - defaults[.DesktopLyricsFontName] = newFont.fontName - defaults[.DesktopLyricsFontSize] = Int(newFont.pointSize) + defaults[.desktopLyricsFontName] = newFont.fontName + defaults[.desktopLyricsFontSize] = Int(newFont.pointSize) if (oldFont.familyName != nil && oldFont.familyName != newFont.familyName) || oldFont.fontName != newFont.fontName { // guarantee different font family of font fallback - var fallback = defaults[.DesktopLyricsFontNameFallback] + var fallback = defaults[.desktopLyricsFontNameFallback] if let index = fallback.firstIndex(of: newFont.fontName) { fallback.remove(at: index) } fallback.insert(oldFont.fontName, at: 0) - defaults[.DesktopLyricsFontNameFallback] = Array(fallback.prefix(fontNameFallbackCountMax)) + defaults[.desktopLyricsFontNameFallback] = Array(fallback.prefix(fontNameFallbackCountMax)) updateScreenFontFallback() } } else if sender === hudFontSelectField { - defaults[.LyricsWindowFontName] = newFont.fontName - defaults[.LyricsWindowFontSize] = Int(newFont.pointSize) + defaults[.lyricsWindowFontName] = newFont.fontName + defaults[.lyricsWindowFontSize] = Int(newFont.pointSize) } } } diff --git a/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift b/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift index cb797eb5..93815222 100644 --- a/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift +++ b/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift @@ -22,17 +22,17 @@ class PreferenceFilterViewController: NSViewController { } func loadFilter() { - directFilter = defaults[.LyricsFilterKeys].map { + directFilter = defaults[.lyricsFilterKeys].map { FilterKey(keyword: $0) } } func saveFilter() { - defaults[.LyricsFilterKeys] = directFilter.map { $0.keyword } + defaults[.lyricsFilterKeys] = directFilter.map { $0.keyword } } @IBAction func resetFilterKey(_ sender: Any) { - defaults.remove(.LyricsFilterKeys) + defaults.remove(.lyricsFilterKeys) loadFilter() } diff --git a/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift b/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift index 0b03028e..4befbf72 100644 --- a/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift +++ b/LyricsX/Controller/Preferences/PreferenceGeneralViewController.swift @@ -30,7 +30,7 @@ class PreferenceGeneralViewController: NSViewController { override func viewDidLoad() { super.viewDidLoad() - switch defaults[.PreferredPlayerIndex] { + switch defaults[.preferredPlayerIndex] { case 0: preferiTunes.state = .on case 1: @@ -65,7 +65,7 @@ class PreferenceGeneralViewController: NSViewController { } languagePopUp.addItems(withTitles: localizedLan) - if let lan = defaults[.SelectedLanguage], + if let lan = defaults[.selectedLanguage], let idx = localizations.firstIndex(of: lan) { languagePopUp.selectItem(at: idx + 2) } @@ -103,12 +103,12 @@ class PreferenceGeneralViewController: NSViewController { @IBAction func chooseLanguageAction(_ sender: NSPopUpButton) { let selectedIdx = sender.indexOfSelectedItem if selectedIdx == 0 { - defaults.remove(.SelectedLanguage) - defaults.remove(.AppleLanguages) + defaults.remove(.selectedLanguage) + defaults.remove(.appleLanguages) } else { let lan = localizations[selectedIdx - 2] - defaults[.SelectedLanguage] = lan - defaults[.AppleLanguages] = [lan] + defaults[.selectedLanguage] = lan + defaults[.appleLanguages] = [lan] } } @@ -117,12 +117,12 @@ class PreferenceGeneralViewController: NSViewController { } @IBAction func preferredPlayerAction(_ sender: NSButton) { - defaults[.PreferredPlayerIndex] = sender.tag + defaults[.preferredPlayerIndex] = sender.tag if sender.tag < 0 { autoLaunchButton.isEnabled = false autoLaunchButton.state = .off - defaults[.LaunchAndQuitWithPlayer] = false + defaults[.launchAndQuitWithPlayer] = false } else { autoLaunchButton.isEnabled = true } @@ -130,7 +130,7 @@ class PreferenceGeneralViewController: NSViewController { if sender.tag == 1 || sender.tag == 3 || sender.tag == 4 { loadHomonymLrcButton.isEnabled = false loadHomonymLrcButton.state = .off - defaults[.LoadLyricsBesideTrack] = false + defaults[.loadLyricsBesideTrack] = false } else { loadHomonymLrcButton.isEnabled = true } diff --git a/LyricsX/Controller/Preferences/PreferenceLabViewController.swift b/LyricsX/Controller/Preferences/PreferenceLabViewController.swift index 801b75f1..fb2f5c41 100644 --- a/LyricsX/Controller/Preferences/PreferenceLabViewController.swift +++ b/LyricsX/Controller/Preferences/PreferenceLabViewController.swift @@ -17,7 +17,7 @@ class PreferenceLabViewController: NSViewController { enableTouchBarLyricsButton.target = self enableTouchBarLyricsButton.action = #selector(mas_enableTouchBarLyricsAction) #else - enableTouchBarLyricsButton.bind(.value, withDefaultName: .TouchBarLyricsEnabled) + enableTouchBarLyricsButton.bind(.value, withDefaultName: .touchBarLyricsEnabled) #endif } diff --git a/LyricsX/Controller/SearchLyricsViewController.swift b/LyricsX/Controller/SearchLyricsViewController.swift index f9948efe..ed2d2fee 100644 --- a/LyricsX/Controller/SearchLyricsViewController.swift +++ b/LyricsX/Controller/SearchLyricsViewController.swift @@ -106,17 +106,17 @@ class SearchLyricsViewController: NSViewController, NSTableViewDelegate, NSTable } if let track = selectedPlayer.currentTrack { - if let index = defaults[.NoSearchingTrackIds].firstIndex(of: track.id) { - defaults[.NoSearchingTrackIds].remove(at: index) + if let index = defaults[.noSearchingTrackIds].firstIndex(of: track.id) { + defaults[.noSearchingTrackIds].remove(at: index) } - if let index = defaults[.NoSearchingAlbumNames].firstIndex(of: track.album ?? "") { - defaults[.NoSearchingAlbumNames].remove(at: index) + if let index = defaults[.noSearchingAlbumNames].firstIndex(of: track.album ?? "") { + defaults[.noSearchingAlbumNames].remove(at: index) } } let lrc = searchResult[index] AppController.shared.currentLyrics = lrc - if defaults[.WriteToiTunesAutomatically] { + if defaults[.writeToiTunesAutomatically] { AppController.shared.writeToiTunes(overwrite: true) } Answers.logCustomEvent(withName: "Choose Search Result", customAttributes: ["index": index]) diff --git a/LyricsX/Controller/TouchBarLyrics.swift b/LyricsX/Controller/TouchBarLyrics.swift index ad416141..4ea1d540 100644 --- a/LyricsX/Controller/TouchBarLyrics.swift +++ b/LyricsX/Controller/TouchBarLyrics.swift @@ -76,7 +76,7 @@ class TouchBarLyrics: TouchBarSystemModalController { systemTrayItem = NSCustomTouchBarItem(identifier: .systemTrayItem) systemTrayItem?.view = NSButton(image: #imageLiteral(resourceName: "status_bar_icon"), target: self, action: #selector(present)) - lyricsItem.bind(\.progressColor, withUnmatchedDefaultName: .DesktopLyricsProgressColor) + lyricsItem.bind(\.progressColor, withUnmatchedDefaultName: .desktopLyricsProgressColor) self.observeNotification(name: NSApplication.willBecomeActiveNotification) { [weak self] _ in guard let self = self else { return } diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index 997e9739..ba4d9138 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.5.2-beta.3 CFBundleVersion - 2259 + 2261 Fabric APIKey @@ -43,7 +43,7 @@ LSUIElement LX_BUILD_TIME - 1582887437 + 1582888477 NSAppTransportSecurity NSExceptionDomains diff --git a/LyricsX/Utility/Extension.swift b/LyricsX/Utility/Extension.swift index d6c7ec7a..ced4dfac 100644 --- a/LyricsX/Utility/Extension.swift +++ b/LyricsX/Utility/Extension.swift @@ -68,23 +68,23 @@ extension NSFont { extension UserDefaults { var desktopLyricsFont: NSFont { - return NSFont(name: self[.DesktopLyricsFontName], - size: CGFloat(self[.DesktopLyricsFontSize]), - fallback: self[.DesktopLyricsFontNameFallback]) - ?? NSFont.systemFont(ofSize: CGFloat(self[.DesktopLyricsFontSize])) + return NSFont(name: self[.desktopLyricsFontName], + size: CGFloat(self[.desktopLyricsFontSize]), + fallback: self[.desktopLyricsFontNameFallback]) + ?? NSFont.systemFont(ofSize: CGFloat(self[.desktopLyricsFontSize])) } var lyricsWindowFont: NSFont { - return NSFont(name: defaults[.LyricsWindowFontName], - size: CGFloat(defaults[.LyricsWindowFontSize])) - ?? NSFont.labelFont(ofSize: CGFloat(defaults[.DesktopLyricsFontSize])) + return NSFont(name: defaults[.lyricsWindowFontName], + size: CGFloat(defaults[.lyricsWindowFontSize])) + ?? NSFont.labelFont(ofSize: CGFloat(defaults[.desktopLyricsFontSize])) } } extension UserDefaults { func lyricsSavingPath() -> (URL, security: Bool) { - if self[.LyricsSavingPathPopUpIndex] != 0, let path = lyricsCustomSavingPath { + if self[.lyricsSavingPathPopUpIndex] != 0, let path = lyricsCustomSavingPath { return (path, true) } else { let userPath = String(cString: getpwuid(getuid()).pointee.pw_dir) @@ -94,7 +94,7 @@ extension UserDefaults { var lyricsCustomSavingPath: URL? { get { - guard let data = self[.LyricsCustomSavingPathBookmark] else { + guard let data = self[.lyricsCustomSavingPathBookmark] else { return nil } var bookmarkDataIsStale = false @@ -112,7 +112,7 @@ extension UserDefaults { } } set { - self[.LyricsCustomSavingPathBookmark] = try? newValue?.bookmarkData(options: [.withSecurityScope]) + self[.lyricsCustomSavingPathBookmark] = try? newValue?.bookmarkData(options: [.withSecurityScope]) } } @@ -182,7 +182,7 @@ private extension NSPredicate { private static var _lyricsPredicate: NSPredicate! - private static let observer = defaults.observe(.LyricsFilterKeys, options: [.new, .initial]) { _, change in + private static let observer = defaults.observe(.lyricsFilterKeys, options: [.new, .initial]) { _, change in let predicates = change.newValue.compactMap { (key: String) -> NSPredicate? in let isRegex = key.hasPrefix("/") let pattern = isRegex ? String(key.dropFirst()) : key @@ -207,7 +207,7 @@ extension Lyrics { extension Lyrics { var adjustedOffset: Int { - return offset + defaults[.GlobalLyricsOffset] + return offset + defaults[.globalLyricsOffset] } var adjustedTimeDelay: TimeInterval { diff --git a/LyricsX/Utility/Global.swift b/LyricsX/Utility/Global.swift index 50aa1f4f..7d6447d8 100644 --- a/LyricsX/Utility/Global.swift +++ b/LyricsX/Utility/Global.swift @@ -62,98 +62,98 @@ extension NSUserInterfaceItemIdentifier { } extension NSStoryboard.SceneIdentifier { - static let DesktopLyricsWindow = NSStoryboard.SceneIdentifier("DesktopLyricsWindow") - static let LyricsHUDAccessory = NSStoryboard.SceneIdentifier("LyricsHUDAccessory") + static let desktopLyricsWindow = NSStoryboard.SceneIdentifier("DesktopLyricsWindow") + static let lyricsHUDAccessory = NSStoryboard.SceneIdentifier("LyricsHUDAccessory") } // MARK: - User Defaults extension UserDefaults.DefaultsKeys { - static let NotifiedUpdateVersion = Key("NotifiedUpdateVersion") - static let NoSearchingTrackIds = Key<[String]>("NoSearchingTrackIds") - static let NoSearchingAlbumNames = Key<[String]>("NoSearchingAlbumNames") + static let notifiedUpdateVersion = Key("NotifiedUpdateVersion") + static let noSearchingTrackIds = Key<[String]>("NoSearchingTrackIds") + static let noSearchingAlbumNames = Key<[String]>("NoSearchingAlbumNames") // Menu - static let DesktopLyricsEnabled = Key("DesktopLyricsEnabled") - static let MenuBarLyricsEnabled = Key("MenuBarLyricsEnabled") - static let TouchBarLyricsEnabled = Key("TouchBarLyricsEnabled") + static let desktopLyricsEnabled = Key("DesktopLyricsEnabled") + static let menuBarLyricsEnabled = Key("MenuBarLyricsEnabled") + static let touchBarLyricsEnabled = Key("TouchBarLyricsEnabled") // General - static let PreferredPlayerIndex = Key("PreferredPlayerIndex") - static let LaunchAndQuitWithPlayer = Key("LaunchAndQuitWithPlayer") + static let preferredPlayerIndex = Key("PreferredPlayerIndex") + static let launchAndQuitWithPlayer = Key("LaunchAndQuitWithPlayer") - static let LyricsSavingPathPopUpIndex = Key("LyricsSavingPathPopUpIndex") - static let LyricsCustomSavingPathBookmark = Key("LyricsCustomSavingPathBookmark") - static let LoadLyricsBesideTrack = Key("LoadLyricsBesideTrack") + static let lyricsSavingPathPopUpIndex = Key("LyricsSavingPathPopUpIndex") + static let lyricsCustomSavingPathBookmark = Key("LyricsCustomSavingPathBookmark") + static let loadLyricsBesideTrack = Key("LoadLyricsBesideTrack") - static let SelectedLanguage = Key("SelectedLanguage") + static let selectedLanguage = Key("SelectedLanguage") - static let StrictSearchEnabled = Key("StrictSearchEnabled") - static let PreferBilingualLyrics = Key("PreferBilingualLyrics") - static let ChineseConversionIndex = Key("ChineseConversionIndex") + static let strictSearchEnabled = Key("StrictSearchEnabled") + static let preferBilingualLyrics = Key("PreferBilingualLyrics") + static let chineseConversionIndex = Key("ChineseConversionIndex") - static let CombinedMenubarLyrics = Key("CombinedMenubarLyrics") + static let combinedMenubarLyrics = Key("CombinedMenubarLyrics") - static let HideLyricsWhenMousePassingBy = Key("HideLyricsWhenMousePassingBy") - static let DisableLyricsWhenPaused = Key("DisableLyricsWhenPaused") - static let DisableLyricsWhenSreenShot = Key("DisableLyricsWhenSreenShot") + static let hideLyricsWhenMousePassingBy = Key("HideLyricsWhenMousePassingBy") + static let disableLyricsWhenPaused = Key("DisableLyricsWhenPaused") + static let disableLyricsWhenSreenShot = Key("DisableLyricsWhenSreenShot") // Display - static let DesktopLyricsOneLineMode = Key("DesktopLyricsOneLineMode") - static let DesktopLyricsVerticalMode = Key("DesktopLyricsVerticalMode") - static let DesktopLyricsDraggable = Key("DesktopLyricsDraggable") + static let desktopLyricsOneLineMode = Key("DesktopLyricsOneLineMode") + static let desktopLyricsVerticalMode = Key("DesktopLyricsVerticalMode") + static let desktopLyricsDraggable = Key("DesktopLyricsDraggable") - static let DesktopLyricsXPositionFactor = Key("DesktopLyricsXPositionFactor") - static let DesktopLyricsYPositionFactor = Key("DesktopLyricsYPositionFactor") + static let desktopLyricsXPositionFactor = Key("DesktopLyricsXPositionFactor") + static let desktopLyricsYPositionFactor = Key("DesktopLyricsYPositionFactor") - static let DesktopLyricsEnableFurigana = Key("DesktopLyricsEnableFurigana") + static let desktopLyricsEnableFurigana = Key("DesktopLyricsEnableFurigana") - static let DesktopLyricsFontName = Key("DesktopLyricsFontName") - static let DesktopLyricsFontSize = Key("DesktopLyricsFontSize") - static let DesktopLyricsFontNameFallback = Key<[String]>("DesktopLyricsFontNameFallback") + static let desktopLyricsFontName = Key("DesktopLyricsFontName") + static let desktopLyricsFontSize = Key("DesktopLyricsFontSize") + static let desktopLyricsFontNameFallback = Key<[String]>("DesktopLyricsFontNameFallback") - static let DesktopLyricsColor = Key("DesktopLyricsColor", transformer: .keyedArchive) - static let DesktopLyricsProgressColor = Key("DesktopLyricsProgressColor", transformer: .keyedArchive) - static let DesktopLyricsShadowColor = Key("DesktopLyricsShadowColor", transformer: .keyedArchive) - static let DesktopLyricsBackgroundColor = Key("DesktopLyricsBackgroundColor", transformer: .keyedArchive) + static let desktopLyricsColor = Key("DesktopLyricsColor", transformer: .keyedArchive) + static let desktopLyricsProgressColor = Key("DesktopLyricsProgressColor", transformer: .keyedArchive) + static let desktopLyricsShadowColor = Key("DesktopLyricsShadowColor", transformer: .keyedArchive) + static let desktopLyricsBackgroundColor = Key("DesktopLyricsBackgroundColor", transformer: .keyedArchive) - static let LyricsWindowFontName = Key("LyricsWindowFontName") - static let LyricsWindowFontSize = Key("LyricsWindowFontSize") - static let LyricsWindowFontNameFallback = Key<[String]>("LyricsWindowFontNameFallback") + static let lyricsWindowFontName = Key("LyricsWindowFontName") + static let lyricsWindowFontSize = Key("LyricsWindowFontSize") + static let lyricsWindowFontNameFallback = Key<[String]>("LyricsWindowFontNameFallback") - static let LyricsWindowTextColor = Key("LyricsWindowTextColor", transformer: .keyedArchive) - static let LyricsWindowHighlightColor = Key("LyricsWindowHighlightColor", transformer: .keyedArchive) + static let lyricsWindowTextColor = Key("LyricsWindowTextColor", transformer: .keyedArchive) + static let lyricsWindowHighlightColor = Key("LyricsWindowHighlightColor", transformer: .keyedArchive) // Shortcut - static let ShortcutToggleMenuBarLyrics = Key("ShortcutToggleMenuBarLyrics") - static let ShortcutToggleKaraokeLyrics = Key("ShortcutToggleKaraokeLyrics") - static let ShortcutShowLyricsWindow = Key("ShortcutShowLyricsWindow") - static let ShortcutOffsetIncrease = Key("ShortcutOffsetIncrease") - static let ShortcutOffsetDecrease = Key("ShortcutOffsetDecrease") - static let ShortcutWriteToiTunes = Key("ShortcutWriteToiTunes") - static let ShortcutSearchLyrics = Key("ShortcutSearchLyrics") - static let ShortcutWrongLyrics = Key("ShortcutWrongLyrics") + static let shortcutToggleMenuBarLyrics = Key("ShortcutToggleMenuBarLyrics") + static let shortcutToggleKaraokeLyrics = Key("ShortcutToggleKaraokeLyrics") + static let shortcutShowLyricsWindow = Key("ShortcutShowLyricsWindow") + static let shortcutOffsetIncrease = Key("ShortcutOffsetIncrease") + static let shortcutOffsetDecrease = Key("ShortcutOffsetDecrease") + static let shortcutWriteToiTunes = Key("ShortcutWriteToiTunes") + static let shortcutSearchLyrics = Key("ShortcutSearchLyrics") + static let shortcutWrongLyrics = Key("ShortcutWrongLyrics") // Filter - static let LyricsFilterEnabled = Key("LyricsFilterEnabled") - static let LyricsSmartFilterEnabled = Key("LyricsSmartFilterEnabled") - static let LyricsFilterKeys = Key<[String]>("LyricsFilterKeys") + static let lyricsFilterEnabled = Key("LyricsFilterEnabled") + static let lyricsSmartFilterEnabled = Key("LyricsSmartFilterEnabled") + static let lyricsFilterKeys = Key<[String]>("LyricsFilterKeys") // Lab - static let UseSystemWideNowPlaying = Key("UseSystemWideNowPlaying") + static let useSystemWideNowPlaying = Key("UseSystemWideNowPlaying") - static let WriteiTunesWithTranslation = Key("WriteiTunesWithTranslation") - static let WriteToiTunesAutomatically = Key("WriteToiTunesAutomatically") + static let writeiTunesWithTranslation = Key("WriteiTunesWithTranslation") + static let writeToiTunesAutomatically = Key("WriteToiTunesAutomatically") - static let GlobalLyricsOffset = Key("GlobalLyricsOffset") + static let globalLyricsOffset = Key("GlobalLyricsOffset") // static let isInMASReview = Key("isInMASReview") static let launchHelperTime = Key("launchHelperTime") - static let AppleLanguages = Key<[String]>("AppleLanguages") + static let appleLanguages = Key<[String]>("AppleLanguages") } extension CGFloat: DefaultConstructible {} diff --git a/LyricsX/View/ScrollLyricsView.swift b/LyricsX/View/ScrollLyricsView.swift index 1d1ba311..687af116 100644 --- a/LyricsX/View/ScrollLyricsView.swift +++ b/LyricsX/View/ScrollLyricsView.swift @@ -73,7 +73,7 @@ class ScrollLyricsView: NSScrollView { for line in enabledLrc { var lineStr = line.content - if var trans = line.attachments.translation(languageCode: languageCode), defaults[.PreferBilingualLyrics], + if var trans = line.attachments.translation(languageCode: languageCode), defaults[.preferBilingualLyrics], languageCode?.hasPrefix("zh") == true { if let converter = ChineseConverter.shared { trans = converter.convert(trans) diff --git a/LyricsX/ko.lproj/Preferences.strings b/LyricsX/ko.lproj/Preferences.strings index a1cacc8f..5dc454fa 100644 --- a/LyricsX/ko.lproj/Preferences.strings +++ b/LyricsX/ko.lproj/Preferences.strings @@ -73,6 +73,9 @@ /* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ "gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; +/* Class = "NSButtonCell"; title = "Use system wide now playing application"; ObjectID = "gin-P2-gb5"; */ +"gin-P2-gb5.title" = "Use system wide now playing application"; + /* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ "h4G-Un-dtm.title" = "Vertical mode"; From 4113f473ffb4d6888e89a7df95022d082cb0d05a Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Sat, 29 Feb 2020 11:34:20 +0800 Subject: [PATCH 28/30] fix: support translation with pre-identified language --- LyricsX/Component/Lyrics+Language.swift | 4 +++- LyricsX/Component/LyricsMetaData+Extension.swift | 14 +++++++++++--- LyricsX/Supporting Files/Info.plist | 4 ++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/LyricsX/Component/Lyrics+Language.swift b/LyricsX/Component/Lyrics+Language.swift index 6e32fe67..89c94d84 100644 --- a/LyricsX/Component/Lyrics+Language.swift +++ b/LyricsX/Component/Lyrics+Language.swift @@ -41,13 +41,15 @@ extension Lyrics { } if let transLan = translationLanguageSet.mostFrequentElement as! String? { let tag = LyricsLine.Attachments.Tag.translation(languageCode: transLan) + guard !metadata.attachmentTags.contains(tag) else { + return + } for idx in lines.indices { if let trans = lines[idx].attachments[LyricsLine.Attachments.Tag.translation.rawValue] { lines[idx].attachments[LyricsLine.Attachments.Tag.translation.rawValue] = nil lines[idx].attachments.setTranslation(trans, languageCode: transLan) } } - metadata.translationLanguages.append(transLan) metadata.attachmentTags.insert(tag) } } diff --git a/LyricsX/Component/LyricsMetaData+Extension.swift b/LyricsX/Component/LyricsMetaData+Extension.swift index b9cedca2..d087c173 100644 --- a/LyricsX/Component/LyricsMetaData+Extension.swift +++ b/LyricsX/Component/LyricsMetaData+Extension.swift @@ -14,7 +14,6 @@ extension Lyrics.MetaData.Key { static var artist = Lyrics.MetaData.Key("artist") static var needsPersist = Lyrics.MetaData.Key("needsPersist") static var language = Lyrics.MetaData.Key("language") - static var translationLanguages = Lyrics.MetaData.Key("translationLanguages") } extension Lyrics.MetaData { @@ -45,7 +44,16 @@ extension Lyrics.MetaData { } var translationLanguages: [String] { - get { return data[.translationLanguages] as? [String] ?? [] } - set { data[.translationLanguages] = newValue } + return attachmentTags.compactMap { $0.translationLanguageCode } + } +} + +private extension LyricsLine.Attachments.Tag { + var translationLanguageCode: String? { + guard rawValue.hasPrefix("tr:") else { + return nil + } + let code = rawValue.dropFirst(3) + return code.isEmpty ? nil : String(code) } } diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index ba4d9138..c11decd0 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.5.2-beta.3 CFBundleVersion - 2261 + 2262 Fabric APIKey @@ -43,7 +43,7 @@ LSUIElement LX_BUILD_TIME - 1582888477 + 1582946903 NSAppTransportSecurity NSExceptionDomains From 671739beedb555dcf9abe64e7ec2416ac5ab79ac Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Sat, 29 Feb 2020 11:37:37 +0800 Subject: [PATCH 29/30] fix: UTI of lrcx --- LyricsX/Supporting Files/Info.plist | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index c11decd0..540b60d4 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -159,7 +159,9 @@ lrc public.mime-type - text/plain + + text/plain + From 7b3de058ec3b66b1b552bb94fe4e5dcdcd037ef0 Mon Sep 17 00:00:00 2001 From: Xander Deng Date: Sat, 29 Feb 2020 11:40:53 +0800 Subject: [PATCH 30/30] bump version --- LyricsX/Supporting Files/Info.plist | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index 540b60d4..bae87640 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.5.2-beta.3 + 1.5.2-rc CFBundleVersion - 2262 + 2263 Fabric APIKey @@ -43,7 +43,7 @@ LSUIElement LX_BUILD_TIME - 1582946903 + 1582947593 NSAppTransportSecurity NSExceptionDomains