diff --git a/LyricsX.xcodeproj/project.pbxproj b/LyricsX.xcodeproj/project.pbxproj index 7dcb9478..1f73bbc6 100644 --- a/LyricsX.xcodeproj/project.pbxproj +++ b/LyricsX.xcodeproj/project.pbxproj @@ -184,6 +184,10 @@ E97AFB54215CAF4400AF74CD /* TouchBarHelper.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TouchBarHelper.framework; path = Carthage/Build/Mac/TouchBarHelper.framework; sourceTree = ""; }; E97AFB5A215CBF0300AF74CD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; E97AFB5C215CBF0500AF74CD /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; + E9AAA388219564F50006EBC2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; + E9AAA389219565010006EBC2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + E9AAA38A219565080006EBC2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Perference.strings; sourceTree = ""; }; + E9AAA38B2195650D0006EBC2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Main.strings; sourceTree = ""; }; E9E5512F207C4B7600F9958A /* DFRFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DFRFoundation.framework; path = ../../../../System/Library/PrivateFrameworks/DFRFoundation.framework; sourceTree = ""; }; E9E55137207C4CB000F9958A /* TouchBarLyrics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TouchBarLyrics.swift; sourceTree = ""; }; E9EBDA2421115A150019FDF9 /* Observation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Observation.swift; sourceTree = ""; }; @@ -472,6 +476,7 @@ en, Base, "zh-Hans", + ja, ); mainGroup = BB4141A11E458BA800A51775; productRefGroup = BB4141AB1E458BA800A51775 /* Products */; @@ -627,6 +632,7 @@ children = ( BB0BE9591F444CA00068FF67 /* zh-Hans */, BB0BE95A1F444CAA0068FF67 /* en */, + E9AAA389219565010006EBC2 /* ja */, ); name = Localizable.strings; sourceTree = ""; @@ -637,6 +643,7 @@ BB4141B41E458BA900A51775 /* Base */, BB3D1E911E8A2A2A00CA5B8F /* zh-Hans */, BB335B112057BCE3003A69F8 /* en */, + E9AAA38B2195650D0006EBC2 /* ja */, ); name = Main.storyboard; sourceTree = ""; @@ -655,6 +662,7 @@ BB6139751FCCFA6700CBD808 /* Base */, BB6139781FCCFAC800CBD808 /* zh-Hans */, BB335B132057BD03003A69F8 /* en */, + E9AAA38A219565080006EBC2 /* ja */, ); name = Perference.storyboard; sourceTree = ""; @@ -664,6 +672,7 @@ children = ( E97AFB5A215CBF0300AF74CD /* en */, E97AFB5C215CBF0500AF74CD /* zh-Hans */, + E9AAA388219564F50006EBC2 /* ja */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/Contents.json b/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/Contents.json new file mode 100644 index 00000000..7490cd9d --- /dev/null +++ b/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "mac", + "filename" : "now_playing_icon.png", + "scale" : "1x" + }, + { + "idiom" : "mac", + "filename" : "now_playing_icon@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/now_playing_icon.png b/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/now_playing_icon.png new file mode 100644 index 00000000..3f736078 Binary files /dev/null and b/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/now_playing_icon.png differ diff --git a/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/now_playing_icon@2x.png b/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/now_playing_icon@2x.png new file mode 100644 index 00000000..775c0695 Binary files /dev/null and b/LyricsX/Assets.xcassets/app_icon/now_playing_icon.imageset/now_playing_icon@2x.png differ diff --git a/LyricsX/Assets.xcassets/gap/Contents.json b/LyricsX/Assets.xcassets/gap/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/LyricsX/Assets.xcassets/gap/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/gap/gap_hollow_horizontal.imageset/Contents.json b/LyricsX/Assets.xcassets/gap/gap_hollow_horizontal.imageset/Contents.json deleted file mode 100644 index c5510cc9..00000000 --- a/LyricsX/Assets.xcassets/gap/gap_hollow_horizontal.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "gap_hollow_horizontal.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/gap/gap_hollow_horizontal.imageset/gap_hollow_horizontal.pdf b/LyricsX/Assets.xcassets/gap/gap_hollow_horizontal.imageset/gap_hollow_horizontal.pdf deleted file mode 100644 index 664f822e..00000000 Binary files a/LyricsX/Assets.xcassets/gap/gap_hollow_horizontal.imageset/gap_hollow_horizontal.pdf and /dev/null differ diff --git a/LyricsX/Assets.xcassets/gap/gap_hollow_vertical.imageset/Contents.json b/LyricsX/Assets.xcassets/gap/gap_hollow_vertical.imageset/Contents.json deleted file mode 100644 index 66b1874f..00000000 --- a/LyricsX/Assets.xcassets/gap/gap_hollow_vertical.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "gap_hollow_vertical.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/gap/gap_hollow_vertical.imageset/gap_hollow_vertical.pdf b/LyricsX/Assets.xcassets/gap/gap_hollow_vertical.imageset/gap_hollow_vertical.pdf deleted file mode 100644 index caff63e8..00000000 Binary files a/LyricsX/Assets.xcassets/gap/gap_hollow_vertical.imageset/gap_hollow_vertical.pdf and /dev/null differ diff --git a/LyricsX/Assets.xcassets/gap/gap_solid_horizontal.imageset/Contents.json b/LyricsX/Assets.xcassets/gap/gap_solid_horizontal.imageset/Contents.json deleted file mode 100644 index 59fef1ed..00000000 --- a/LyricsX/Assets.xcassets/gap/gap_solid_horizontal.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "gap_solid_horizontal.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/gap/gap_solid_horizontal.imageset/gap_solid_horizontal.pdf b/LyricsX/Assets.xcassets/gap/gap_solid_horizontal.imageset/gap_solid_horizontal.pdf deleted file mode 100644 index 242b9332..00000000 Binary files a/LyricsX/Assets.xcassets/gap/gap_solid_horizontal.imageset/gap_solid_horizontal.pdf and /dev/null differ diff --git a/LyricsX/Assets.xcassets/gap/gap_solid_vertical.imageset/Contents.json b/LyricsX/Assets.xcassets/gap/gap_solid_vertical.imageset/Contents.json deleted file mode 100644 index 77af8a9a..00000000 --- a/LyricsX/Assets.xcassets/gap/gap_solid_vertical.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "gap_solid_vertical.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/gap/gap_solid_vertical.imageset/gap_solid_vertical.pdf b/LyricsX/Assets.xcassets/gap/gap_solid_vertical.imageset/gap_solid_vertical.pdf deleted file mode 100644 index 3baaa475..00000000 Binary files a/LyricsX/Assets.xcassets/gap/gap_solid_vertical.imageset/gap_solid_vertical.pdf and /dev/null differ diff --git a/LyricsX/Assets.xcassets/gap/rect_center.imageset/Contents.json b/LyricsX/Assets.xcassets/gap/rect_center.imageset/Contents.json deleted file mode 100644 index 59e87b55..00000000 --- a/LyricsX/Assets.xcassets/gap/rect_center.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "rect_center.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LyricsX/Assets.xcassets/gap/rect_center.imageset/rect_center.pdf b/LyricsX/Assets.xcassets/gap/rect_center.imageset/rect_center.pdf deleted file mode 100644 index 9aefedca..00000000 Binary files a/LyricsX/Assets.xcassets/gap/rect_center.imageset/rect_center.pdf and /dev/null differ diff --git a/LyricsX/Component/AppController.swift b/LyricsX/Component/AppController.swift index 0b698736..fd6e6b4a 100644 --- a/LyricsX/Component/AppController.swift +++ b/LyricsX/Component/AppController.swift @@ -268,5 +268,8 @@ extension AppController { lrc.metadata.artist = track.artist lrc.metadata.needsPersist = true currentLyrics = lrc + if let index = defaults[.NoSearchingTrackIds].firstIndex(of: track.id) { + defaults[.NoSearchingTrackIds].remove(at: index) + } } } diff --git a/LyricsX/Controller/KaraokeLyricsController.swift b/LyricsX/Controller/KaraokeLyricsController.swift index c05a20d7..0b927286 100644 --- a/LyricsX/Controller/KaraokeLyricsController.swift +++ b/LyricsX/Controller/KaraokeLyricsController.swift @@ -27,24 +27,18 @@ import SnapKit class KaraokeLyricsWindowController: NSWindowController { - private var lyricsView = KaraokeLyricsView(frame: .zero) + static private let windowFrame = NSWindow.FrameAutosaveName("KaraokeWindow") - private var screen: NSScreen { - didSet { - defaults[.DesktopLyricsScreenRect] = screen.frame - updateWindowFrame(animate: false) - } - } + private var lyricsView = KaraokeLyricsView(frame: .zero) init() { - let rect = defaults[.DesktopLyricsScreenRect] - screen = NSScreen.screens.first { $0.frame.contains(rect) } ?? NSScreen.screens[0] - let window = NSWindow(contentRect: screen.visibleFrame, styleMask: .borderless, backing: .buffered, defer: true) + let window = NSWindow(contentRect: .zero, styleMask: .borderless, backing: .buffered, defer: true) window.backgroundColor = .clear window.hasShadow = false window.isOpaque = false window.level = .floating window.collectionBehavior = [.canJoinAllSpaces, .stationary] + window.setFrameUsingName(KaraokeLyricsWindowController.windowFrame, force: true) super.init(window: window) window.contentView?.addSubview(lyricsView) @@ -52,6 +46,8 @@ class KaraokeLyricsWindowController: NSWindowController { addObserver() makeConstraints() + updateWindowFrame(animate: false) + lyricsView.displayLrc("LyricsX") DispatchQueue.main.asyncAfter(deadline: .now() + 3) { self.lyricsView.displayLrc("") @@ -81,10 +77,7 @@ class KaraokeLyricsWindowController: NSWindowController { window?.contentView?.bind(.hidden, withDefaultName: .DesktopLyricsEnabled, options: negateOption) observeDefaults(key: .DisableLyricsWhenSreenShot, options: [.new, .initial]) { [unowned self] _, change in - switch change.newValue { - case true: self.window?.sharingType = .none - case false: self.window?.sharingType = .readOnly - } + self.window?.sharingType = change.newValue ? .none : .readOnly } observeDefaults(keys: [ .HideLyricsWhenMousePassingBy, @@ -100,14 +93,19 @@ class KaraokeLyricsWindowController: NSWindowController { self.lyricsView.font = defaults.desktopLyricsFont } + observeNotification(name: NSApplication.didChangeScreenParametersNotification, queue: .main) { [unowned self] _ in + self.updateWindowFrame(animate: true) + } observeNotification(center: workspaceNC, name: NSWorkspace.activeSpaceDidChangeNotification, queue: .main) { [unowned self] _ in self.updateWindowFrame(animate: true) } } - private func updateWindowFrame(animate: Bool) { - let frame = isFullScreen() == true ? screen.frame : screen.visibleFrame + private func updateWindowFrame(toScreen: NSScreen? = nil, animate: Bool) { + let screen = toScreen ?? window?.screen ?? NSScreen.screens[0] + let frame = screen.isFullScreen ? screen.frame : screen.visibleFrame window?.setFrame(frame, display: false, animate: animate) + window?.saveFrame(usingName: KaraokeLyricsWindowController.windowFrame) } @objc private func handleLyricsDisplay() { @@ -178,7 +176,7 @@ class KaraokeLyricsWindowController: NSWindowController { let centerInScreen = window.convertToScreen(CGRect(origin: center, size: .zero)).origin if let screen = NSScreen.screens.first(where: { $0.frame.contains(centerInScreen) }), screen != window.screen { - self.screen = screen + updateWindowFrame(toScreen: screen, animate: false) center = window.convertFromScreen(CGRect(origin: centerInScreen, size: .zero)).origin return } @@ -199,13 +197,21 @@ class KaraokeLyricsWindowController: NSWindowController { } -private func isFullScreen() -> Bool? { - guard let windowInfoList = CGWindowListCopyWindowInfo(.optionOnScreenOnly, kCGNullWindowID) as? [[String: Any]] else { - return nil - } - return !windowInfoList.contains { info in - info[kCGWindowOwnerName as String] as? String == "Window Server" && - info[kCGWindowName as String] as? String == "Menubar" +private extension NSScreen { + + var isFullScreen: Bool { + guard let windowInfoList = CGWindowListCopyWindowInfo(.optionOnScreenOnly, kCGNullWindowID) as? [[String: Any]] else { + return false + } + return !windowInfoList.contains { info in + guard info[kCGWindowOwnerName as String] as? String == "Window Server", + info[kCGWindowName as String] as? String == "Menubar", + let boundsDict = info[kCGWindowBounds as String] as? NSDictionary as CFDictionary?, + let bounds = CGRect(dictionaryRepresentation: boundsDict) else { + return false + } + return frame.contains(bounds) + } } } diff --git a/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift b/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift index a2ab62d2..b856c216 100644 --- a/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift +++ b/LyricsX/Controller/Preferences/PreferenceFilterViewController.swift @@ -56,6 +56,10 @@ class FilterKey: NSObject, NSCoding { @objc var keyword = "keyword" + override init() { + super.init() + } + init(keyword: String) { self.keyword = keyword super.init() diff --git a/LyricsX/Controller/SearchLyricsViewController.swift b/LyricsX/Controller/SearchLyricsViewController.swift index f601420d..b517ee4b 100644 --- a/LyricsX/Controller/SearchLyricsViewController.swift +++ b/LyricsX/Controller/SearchLyricsViewController.swift @@ -118,7 +118,7 @@ class SearchLyricsViewController: NSViewController, NSTableViewDelegate, NSTable } if let id = AppController.shared.playerManager.player?.currentTrack?.id, - let index = defaults[.NoSearchingTrackIds].index(where: { $0 == id }) { + let index = defaults[.NoSearchingTrackIds].firstIndex(of: id) { defaults[.NoSearchingTrackIds].remove(at: index) } @@ -136,6 +136,7 @@ class SearchLyricsViewController: NSViewController, NSTableViewDelegate, NSTable guard lyrics.metadata.request == searchTask?.request else { return } + lyrics.metadata.needsPersist = true if let idx = searchResult.index(where: { lyrics.quality > $0.quality }) { searchResult.insert(lyrics, at: idx) } else { diff --git a/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Crashlytics b/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Crashlytics index 8b2c6284..d8d0b0a3 100755 Binary files a/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Crashlytics and b/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Crashlytics differ diff --git a/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist b/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist index e2cac316..6608e4e8 100644 --- a/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist +++ b/LyricsX/Frameworks/Crashlytics.framework/Versions/A/Resources/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 15G31 + 17G65 CFBundleDevelopmentRegion English CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.10.1 + 3.10.9 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,28 +25,28 @@ MacOSX CFBundleVersion - 129 + 131 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 8C1002 + 9F2000 DTPlatformVersion GM DTSDKBuild - 16C58 + 17E189 DTSDKName - macosx10.12 + macosx10.13 DTXcode - 0821 + 0941 DTXcodeBuild - 8C1002 + 9F2000 NSHumanReadableCopyright Copyright © 2016 Crashlytics, Inc. All rights reserved. UIDeviceFamily - 3 - 2 1 + 2 + 3 4 diff --git a/LyricsX/Frameworks/Crashlytics.framework/submit b/LyricsX/Frameworks/Crashlytics.framework/submit index b7e84f3b..b38493ce 100755 Binary files a/LyricsX/Frameworks/Crashlytics.framework/submit and b/LyricsX/Frameworks/Crashlytics.framework/submit differ diff --git a/LyricsX/Frameworks/Crashlytics.framework/uploadDSYM b/LyricsX/Frameworks/Crashlytics.framework/uploadDSYM index 971940b3..2d1f9df4 100755 Binary files a/LyricsX/Frameworks/Crashlytics.framework/uploadDSYM and b/LyricsX/Frameworks/Crashlytics.framework/uploadDSYM differ diff --git a/LyricsX/Frameworks/Fabric.framework/Versions/A/Fabric b/LyricsX/Frameworks/Fabric.framework/Versions/A/Fabric index b42aacb9..49efd771 100755 Binary files a/LyricsX/Frameworks/Fabric.framework/Versions/A/Fabric and b/LyricsX/Frameworks/Fabric.framework/Versions/A/Fabric differ diff --git a/LyricsX/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist b/LyricsX/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist index 338f519b..ce7d676a 100644 --- a/LyricsX/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist +++ b/LyricsX/Frameworks/Fabric.framework/Versions/A/Resources/Info.plist @@ -3,7 +3,7 @@ BuildMachineOSBuild - 15G31 + 17G65 CFBundleDevelopmentRegion en CFBundleExecutable @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.7.6 + 1.7.13 CFBundleSignature ???? CFBundleSupportedPlatforms @@ -25,28 +25,28 @@ MacOSX CFBundleVersion - 69 + 70 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 8C1002 + 9F2000 DTPlatformVersion GM DTSDKBuild - 16C58 + 17E189 DTSDKName - macosx10.12 + macosx10.13 DTXcode - 0821 + 0941 DTXcodeBuild - 8C1002 + 9F2000 NSHumanReadableCopyright Copyright © 2015 Twitter. All rights reserved. UIDeviceFamily - 3 - 2 1 + 2 + 3 4 diff --git a/LyricsX/Frameworks/Fabric.framework/uploadDSYM b/LyricsX/Frameworks/Fabric.framework/uploadDSYM index 0b78a89b..ae1e4798 100755 Binary files a/LyricsX/Frameworks/Fabric.framework/uploadDSYM and b/LyricsX/Frameworks/Fabric.framework/uploadDSYM differ diff --git a/LyricsX/Supporting Files/Info.plist b/LyricsX/Supporting Files/Info.plist index a632e284..029ceb42 100644 --- a/LyricsX/Supporting Files/Info.plist +++ b/LyricsX/Supporting Files/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.4.2 CFBundleVersion - 1946 + 1965 Fabric APIKey diff --git a/LyricsX/Supporting Files/de.lproj/InfoPlist.strings b/LyricsX/Supporting Files/de.lproj/InfoPlist.strings new file mode 100644 index 00000000..56b70e6b --- /dev/null +++ b/LyricsX/Supporting Files/de.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppleEventsUsageDescription" = "LyricsX needs to know what song you're currently playing, to show lyrics accordingly."; diff --git a/LyricsX/Supporting Files/de.lproj/Localizable.strings b/LyricsX/Supporting Files/de.lproj/Localizable.strings new file mode 100644 index 00000000..bc7de2a6 --- /dev/null +++ b/LyricsX/Supporting Files/de.lproj/Localizable.strings @@ -0,0 +1,32 @@ +/* title of the update alert, when the app is out of date. */ +"A new version of LyricsX is available!" = "A new version of LyricsX is available!"; + +/* 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: %@"; + +/* informative text of the update alert, when the app is up to date. the parameter is version string of the app */ +"LyricsX %@ is currently the newest version available." = "LyricsX %@ is currently the newest version available."; + +/* informative text of the update alert, when the app is out date. the 1st parameter is new version string, the 2nd parameter is current version string */ +"LyricsX %@ is now available -- you have %@. Would you like to download it now?" = "LyricsX %1$@ is now available -- you have %2$@. Would you like to download it now?"; + +/* No comment provided by engineer. */ +"OK" = "OK"; + +/* window title */ +"Search Lyrics" = "Search Lyrics"; + +/* title of skip button on the update alert. Refuse to download new version of the app. */ +"Skip" = "Skip"; + +/* 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."; + +/* title of the update alert, when the app is up to date. */ +"You're up-to-date!" = "You're up-to-date!"; diff --git a/LyricsX/Supporting Files/ja.lproj/InfoPlist.strings b/LyricsX/Supporting Files/ja.lproj/InfoPlist.strings new file mode 100644 index 00000000..a43abca9 --- /dev/null +++ b/LyricsX/Supporting Files/ja.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppleEventsUsageDescription" = "LyricsX は現在再生中の音楽を取得し、それに応じて歌詞を表示する必要があります。"; diff --git a/LyricsX/Supporting Files/ja.lproj/Localizable.strings b/LyricsX/Supporting Files/ja.lproj/Localizable.strings new file mode 100644 index 00000000..bf64d51e --- /dev/null +++ b/LyricsX/Supporting Files/ja.lproj/Localizable.strings @@ -0,0 +1,32 @@ +/* title of the update alert, when the app is out of date. */ +"A new version of LyricsX is available!" = "新バージョンのLyricsXが利用可能になりました!"; + +/* title of download button on the update alert. Download new version of the app. */ +"Download" = "ダウンロード"; + +/* No comment provided by engineer. */ +"Font Fallback: %@" = "フォント フォールバック: %@"; + +/* informative text of the update alert, when the app is up to date. the parameter is version string of the app */ +"LyricsX %@ is currently the newest version available." = "現在使用しているLyricsX %@ はすでに最新のバージョンです。"; + +/* informative text of the update alert, when the app is out date. the 1st parameter is new version string, the 2nd parameter is current version string */ +"LyricsX %@ is now available -- you have %@. Would you like to download it now?" = "LyricsX %1$@ がダウンロードできました(現在のバージョンは %2$@)。今すぐダウンロードしますか?"; + +/* No comment provided by engineer. */ +"OK" = "はい"; + +/* window title */ +"Search Lyrics" = "歌詞を検索"; + +/* title of skip button on the update alert. Refuse to download new version of the app. */ +"Skip" = "スキップ"; + +/* No comment provided by engineer. */ +"Touch Bar lyrics is not supported in Mac App Store Version. Please download on GitHub." = "タッチバーの歌詞は、Mac App Storeのバージョンではサポートされていません。 GitHubから最新バージョンをダウンロードしてください。"; + +/* alert title */ +"Unable to enable Touch Bar lyrics." = "タッチバーの歌詞を有効にすることができません。"; + +/* title of the update alert, when the app is up to date. */ +"You're up-to-date!" = "最新のバージョンです!"; diff --git a/LyricsX/Utility/Global.swift b/LyricsX/Utility/Global.swift index 40b48d85..c2ba4c3c 100644 --- a/LyricsX/Utility/Global.swift +++ b/LyricsX/Utility/Global.swift @@ -101,7 +101,6 @@ extension UserDefaults.DefaultsKeys { static let DisableLyricsWhenSreenShot = Key("DisableLyricsWhenSreenShot") // Display - static let DesktopLyricsScreenRect = Key("DesktopLyricsScreenRect", transformer: .json) static let DesktopLyricsOneLineMode = Key("DesktopLyricsOneLineMode") static let DesktopLyricsVerticalMode = Key("DesktopLyricsVerticalMode") static let DesktopLyricsDraggable = Key("DesktopLyricsDraggable") @@ -155,4 +154,3 @@ extension UserDefaults.DefaultsKeys { } extension CGFloat: UDDefaultConstructible {} -extension CGRect: UDDefaultConstructible {} diff --git a/LyricsX/View/KaraokeLyricsView.swift b/LyricsX/View/KaraokeLyricsView.swift index 15a962a6..49c8da20 100644 --- a/LyricsX/View/KaraokeLyricsView.swift +++ b/LyricsX/View/KaraokeLyricsView.swift @@ -168,14 +168,14 @@ class KaraokeLyricsView: NSBox { if shouldHideWithMouse, let point = NSEvent.mouseLocation(in: self), bounds.contains(point) { - animator().alphaValue = 0.1 + animator().alphaValue = 0 } else { animator().alphaValue = 1 } } override func mouseEntered(with event: NSEvent) { - animator().alphaValue = 0.1 + animator().alphaValue = 0 } override func mouseExited(with event: NSEvent) { diff --git a/LyricsX/de.lproj/Main.strings b/LyricsX/de.lproj/Main.strings new file mode 100644 index 00000000..a1ab7009 --- /dev/null +++ b/LyricsX/de.lproj/Main.strings @@ -0,0 +1,77 @@ +/* Class = "NSTableColumn"; headerCell.title = "Source"; ObjectID = "1xI-G4-Fsc"; */ +"1xI-G4-Fsc.headerCell.title" = "Source"; + +/* 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 = "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 = "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 = "NSTableColumn"; headerCell.title = "Artist"; ObjectID = "HMU-fa-17B"; */ +"HMU-fa-17B.headerCell.title" = "Artist"; + +/* Class = "NSTextFieldCell"; title = "Lyrics Offset:"; ObjectID = "IFz-XQ-DHf"; */ +"IFz-XQ-DHf.title" = "Lyrics Offset:"; + +/* 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"; + +/* 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 = "NSButton"; ibShadowedToolTip = "Synchronism"; ObjectID = "d5a-4n-6k8"; */ +"d5a-4n-6k8.ibShadowedToolTip" = "Synchronism"; + +/* Class = "NSButtonCell"; title = "Search"; ObjectID = "eb9-fE-Lgq"; */ +"eb9-fE-Lgq.title" = "Search"; + +/* Class = "NSMenuItem"; title = "Wrong Lyrics"; ObjectID = "fmS-zv-RcJ"; */ +"fmS-zv-RcJ.title" = "Wrong Lyrics"; + +/* Class = "NSMenuItem"; title = "Search Lyrics..."; ObjectID = "h6D-jz-GbI"; */ +"h6D-jz-GbI.title" = "Search Lyrics..."; + +/* 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 = "Show In Finder"; ObjectID = "DNi-vI-MTr"; */ +"DNi-vI-MTr.title" = "Show In Finder"; + +/* Class = "NSMenuItem"; title = "Lyrics"; ObjectID = "hxE-X4-sJh"; */ +"hxE-X4-sJh.title" = "Lyrics"; diff --git a/LyricsX/de.lproj/Perference.strings b/LyricsX/de.lproj/Perference.strings new file mode 100644 index 00000000..a6624e9c --- /dev/null +++ b/LyricsX/de.lproj/Perference.strings @@ -0,0 +1,161 @@ +/* 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"; 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 = "NSTextFieldCell"; title = "Font:"; ObjectID = "Cmt-it-PXW"; */ +"Cmt-it-PXW.title" = "Font:"; + +/* Class = "NSButtonCell"; title = "Load lyrics beside music file"; ObjectID = "EDv-ax-0hI"; */ +"EDv-ax-0hI.title" = "Load lyrics beside music file"; + +/* 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 = "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 = "Mouse passing by"; ObjectID = "LH4-YZ-Qvs"; */ +"LH4-YZ-Qvs.title" = "Mouse passing by"; + +/* Class = "NSTabViewItem"; label = "Window"; ObjectID = "LbQ-p9-Zti"; */ +"LbQ-p9-Zti.label" = "Window"; + +/* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ +"NLl-9L-0gZ.title" = "Music is not playing"; + +/* Class = "NSTextFieldCell"; title = "Text:"; ObjectID = "Txi-D9-jjB"; */ +"Txi-D9-jjB.title" = "Text:"; + +/* 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 = "Reset"; ObjectID = "XUF-aM-ZmS"; */ +"XUF-aM-ZmS.title" = "Reset"; + +/* Class = "NSWindow"; title = "Preferences"; ObjectID = "aMb-zX-bzP"; */ +"aMb-zX-bzP.title" = "Preferences"; + +/* Class = "NSTabViewItem"; label = "Karaoke"; ObjectID = "aUg-eg-K5C"; */ +"aUg-eg-K5C.label" = "Karaoke"; + +/* 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 = "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 = "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 = "NSViewController"; title = "General"; ObjectID = "d5d-dC-DK4"; */ +"d5d-dC-DK4.title" = "General"; + +/* 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 = "NSTextFieldCell"; title = "Shadow"; ObjectID = "hsu-H9-9Bd"; */ +"hsu-H9-9Bd.title" = "Shadow"; + +/* 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 = "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 = "NSViewController"; title = "Filter"; ObjectID = "lN1-gG-AVq"; */ +"lN1-gG-AVq.title" = "Filter"; + +/* Class = "NSTextFieldCell"; title = "Increase lyrics offset:"; ObjectID = "mo2-3C-gLY"; */ +"mo2-3C-gLY.title" = "Increase lyrics offset:"; + +/* Class = "NSViewController"; title = "Shortcut"; ObjectID = "ppx-ob-WJc"; */ +"ppx-ob-WJc.title" = "Shortcut"; + +/* Class = "NSTextFieldCell"; title = "Mark as wrong lyrics:"; ObjectID = "uEb-Q5-cda"; */ +"uEb-Q5-cda.title" = "Mark as wrong lyrics:"; + +/* Class = "NSButtonCell"; title = "Auto launch & quit with music player"; ObjectID = "v63-4a-fPw"; */ +"v63-4a-fPw.title" = "Auto launch & quit with music player"; + +/* Class = "NSMenuItem"; title = "No Conversion"; ObjectID = "zhB-kd-WWG"; */ +"zhB-kd-WWG.title" = "No Conversion"; + +/* 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 = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ +"h4G-Un-dtm.title" = "Vertical mode"; + +/* Class = "NSButtonCell"; title = "Automatically generate furigana for Japanese lyrics"; ObjectID = "ThQ-vA-Krb"; */ +"ThQ-vA-Krb.title" = "Automatically generate furigana for Japanese lyrics"; + +/* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ +"gGL-LB-TXI.title" = "Enable Touch Bar lyrics"; + +/* Class = "NSTextFieldCell"; title = "Show lyrics window:"; ObjectID = "TB9-Fk-WAX"; */ +"TB9-Fk-WAX.title" = "Show lyrics window:"; + +/* Class = "NSTextFieldCell"; title = "Show / Hide menu bar lyrics:"; ObjectID = "XHQ-gX-urF"; */ +"XHQ-gX-urF.title" = "Show / Hide menu bar lyrics:"; + +/* Class = "NSTextFieldCell"; title = "Show / Hide karaoke lyrics:"; ObjectID = "lOc-OP-AcU"; */ +"lOc-OP-AcU.title" = "Show / Hide karaoke lyrics:"; + +/* Class = "NSTextFieldCell"; title = "Progress"; ObjectID = "XuN-vs-cgI"; */ +"XuN-vs-cgI.title" = "Progress"; + +/* 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"; diff --git a/LyricsX/ja.lproj/Main.strings b/LyricsX/ja.lproj/Main.strings new file mode 100644 index 00000000..b589c8b8 --- /dev/null +++ b/LyricsX/ja.lproj/Main.strings @@ -0,0 +1,77 @@ +/* Class = "NSTableColumn"; headerCell.title = "Source"; ObjectID = "1xI-G4-Fsc"; */ +"1xI-G4-Fsc.headerCell.title" = "参照元"; + +/* Class = "NSWindow"; title = "Donate"; ObjectID = "CW0-AL-Z6N"; */ +"CW0-AL-Z6N.title" = "寄付"; + +/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "CWo-Qx-2Ut"; */ +"CWo-Qx-2Ut.title" = "環境設定..."; + +/* Class = "NSMenuItem"; title = "Donate..."; ObjectID = "EoO-ld-6Xv"; */ +"EoO-ld-6Xv.title" = "寄付..."; + +/* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "FMI-7E-tCo"; */ +"FMI-7E-tCo.title" = "タイトル:"; + +/* Class = "NSMenuItem"; title = "Enable Karaoke Lyrics"; ObjectID = "GGU-uz-d9h"; */ +"GGU-uz-d9h.title" = "カラオケ歌詞を有効にする"; + +/* Class = "NSButton"; ibShadowedToolTip = "Always on top"; ObjectID = "Gza-SX-MCH"; */ +"Gza-SX-MCH.ibShadowedToolTip" = "常に最前面"; + +/* Class = "NSTableColumn"; headerCell.title = "Artist"; ObjectID = "HMU-fa-17B"; */ +"HMU-fa-17B.headerCell.title" = "アーティスト"; + +/* Class = "NSTextFieldCell"; title = "Lyrics Offset:"; ObjectID = "IFz-XQ-DHf"; */ +"IFz-XQ-DHf.title" = "歌詞のオフセット:"; + +/* Class = "NSMenuItem"; title = "About LyricsX"; ObjectID = "PdE-VG-JUC"; */ +"PdE-VG-JUC.title" = "LyricsX について"; + +/* Class = "NSMenuItem"; title = "Check For Update..."; ObjectID = "Piu-i2-JjD"; */ +"Piu-i2-JjD.title" = "アップデートの確認..."; + +/* Class = "NSButtonCell"; title = "Apply"; ObjectID = "RGl-MT-MQb"; */ +"RGl-MT-MQb.title" = "適用"; + +/* Class = "NSMenuItem"; title = "Quit LyricsX"; ObjectID = "RPR-IV-34T"; */ +"RPR-IV-34T.title" = "LyricsX を終了"; + +/* Class = "NSMenuItem"; title = "Enable Menu Bar Lyrics"; ObjectID = "Z7d-yp-uRx"; */ +"Z7d-yp-uRx.title" = "メニューバー歌詞を有効にする"; + +/* Class = "NSTextFieldCell"; title = "No Lyrics\n\nDrag & Drop to import LRC file"; ObjectID = "aRw-yQ-GNX"; */ +"aRw-yQ-GNX.title" = "歌詞なし\n\nドラッグ&ドロップでLRCファイルをインポート"; + +/* Class = "NSButton"; ibShadowedToolTip = "Synchronism"; ObjectID = "d5a-4n-6k8"; */ +"d5a-4n-6k8.ibShadowedToolTip" = "同期"; + +/* Class = "NSButtonCell"; title = "Search"; ObjectID = "eb9-fE-Lgq"; */ +"eb9-fE-Lgq.title" = "検索"; + +/* Class = "NSMenuItem"; title = "Wrong Lyrics"; ObjectID = "fmS-zv-RcJ"; */ +"fmS-zv-RcJ.title" = "間違った歌詞"; + +/* Class = "NSMenuItem"; title = "Search Lyrics..."; ObjectID = "h6D-jz-GbI"; */ +"h6D-jz-GbI.title" = "歌詞を検索..."; + +/* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "jWT-S5-YXM"; */ +"jWT-S5-YXM.headerCell.title" = "タイトル"; + +/* Class = "NSMenuItem"; title = "Write to iTunes"; ObjectID = "kNl-ZO-aX6"; */ +"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" = "アーティスト:"; + +/* 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コードをスキャンして私に寄付することができます。"; + +/* Class = "NSMenuItem"; title = "Show In Finder"; ObjectID = "DNi-vI-MTr"; */ +"DNi-vI-MTr.title" = "Finder で表示"; + +/* Class = "NSMenuItem"; title = "Lyrics"; ObjectID = "hxE-X4-sJh"; */ +"hxE-X4-sJh.title" = "歌詞"; diff --git a/LyricsX/ja.lproj/Perference.strings b/LyricsX/ja.lproj/Perference.strings new file mode 100644 index 00000000..c6c37224 --- /dev/null +++ b/LyricsX/ja.lproj/Perference.strings @@ -0,0 +1,161 @@ +/* Class = "NSTextFieldCell"; title = "Lyrics saving path:"; ObjectID = "0M7-ao-0jb"; */ +"0M7-ao-0jb.title" = "歌詞ファイルの保存先:"; + +/* Class = "NSButtonCell"; title = "Auto"; ObjectID = "0VO-JB-ubq"; */ +"0VO-JB-ubq.title" = "自動設定"; + +/* Class = "NSTextFieldCell"; title = "Lyrics"; ObjectID = "3Bt-md-QNc"; */ +"3Bt-md-QNc.title" = "歌詞"; + +/* Class = "NSButtonCell"; title = "One line mode"; ObjectID = "5dp-p5-YmE"; */ +"5dp-p5-YmE.title" = "一行モード"; + +/* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "6FU-j0-FTV"; */ +"6FU-j0-FTV.title" = "繁体字中国語に変換"; + +/* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "6We-TB-Wfc"; */ +"6We-TB-Wfc.title" = "iTunesに書き込む:"; + +/* Class = "NSButtonCell"; title = "Automatically"; ObjectID = "7Ax-7T-26K"; */ +"7Ax-7T-26K.title" = "自動的に書き込み"; + +/* Class = "NSViewController"; title = "Display"; ObjectID = "8JF-Og-z6E"; */ +"8JF-Og-z6E.title" = "表示"; + +/* Class = "NSTextFieldCell"; title = "Write lyrics to iTunes:"; ObjectID = "8Sx-vb-5pB"; */ +"8Sx-vb-5pB.title" = "iTunesに書き込む:"; + +/* Class = "NSTextFieldCell"; title = "Font:"; ObjectID = "992-tg-edx"; */ +"992-tg-edx.title" = "フォント:"; + +/* Class = "NSMenuItem"; title = "Simplified Chinese"; ObjectID = "AiM-vg-FvQ"; */ +"AiM-vg-FvQ.title" = "簡体字中国語に変換"; + +/* Class = "NSTextFieldCell"; title = "Font:"; ObjectID = "Cmt-it-PXW"; */ +"Cmt-it-PXW.title" = "フォント:"; + +/* Class = "NSButtonCell"; title = "Load lyrics beside music file"; ObjectID = "EDv-ax-0hI"; */ +"EDv-ax-0hI.title" = "同じ名前の歌詞を読み込む"; + +/* Class = "NSMenuItem"; title = "Other..."; ObjectID = "HvN-Ou-h1t"; */ +"HvN-Ou-h1t.title" = "その他..."; + +/* Class = "NSMenuItem"; title = "LyricsX (Default)"; ObjectID = "IE7-IT-oPk"; */ +"IE7-IT-oPk.title" = "LyricsX (既定値)"; + +/* Class = "NSTextFieldCell"; title = "Auto Chinese conversion:"; ObjectID = "JPB-ag-MN7"; */ +"JPB-ag-MN7.title" = "自動中国語変換:"; + +/* Class = "NSBox"; title = "Preferred music player"; ObjectID = "JYR-Ed-Tax"; */ +"JYR-Ed-Tax.title" = "デフォルトプレーヤー"; + +/* Class = "NSButtonCell"; title = "Mouse passing by"; ObjectID = "LH4-YZ-Qvs"; */ +"LH4-YZ-Qvs.title" = "マウスが通過する時"; + +/* Class = "NSTabViewItem"; label = "Window"; ObjectID = "LbQ-p9-Zti"; */ +"LbQ-p9-Zti.label" = "ウィンドウ"; + +/* Class = "NSButtonCell"; title = "Music is not playing"; ObjectID = "NLl-9L-0gZ"; */ +"NLl-9L-0gZ.title" = "一時停止中"; + +/* Class = "NSTextFieldCell"; title = "Text:"; ObjectID = "Txi-D9-jjB"; */ +"Txi-D9-jjB.title" = "テキスト:"; + +/* Class = "NSTextFieldCell"; title = "Background"; ObjectID = "Uer-qJ-3T9"; */ +"Uer-qJ-3T9.title" = "背景"; + +/* Class = "NSTextFieldCell"; title = "Hightlight:"; ObjectID = "UfE-QU-Yhm"; */ +"UfE-QU-Yhm.title" = "ハイライト:"; + +/* Class = "NSButtonCell"; title = "Reset"; ObjectID = "XUF-aM-ZmS"; */ +"XUF-aM-ZmS.title" = "リセット"; + +/* Class = "NSWindow"; title = "Preferences"; ObjectID = "aMb-zX-bzP"; */ +"aMb-zX-bzP.title" = "環境設定"; + +/* Class = "NSTabViewItem"; label = "Karaoke"; ObjectID = "aUg-eg-K5C"; */ +"aUg-eg-K5C.label" = "カラオケ"; + +/* Class = "NSTextFieldCell"; title = "Disable lyrics when:"; ObjectID = "bDS-Lb-m34"; */ +"bDS-Lb-m34.title" = "歌詞を非表示:"; + +/* Class = "NSViewController"; title = "Lab"; ObjectID = "bFk-1g-XeL"; */ +"bFk-1g-XeL.title" = "実験室"; + +/* Class = "NSButtonCell"; title = "Combine menubar icon with menubar lyrics"; ObjectID = "bbd-ra-rSF"; */ +"bbd-ra-rSF.title" = "メニューバーのアイコンと歌詞を結合する"; + +/* Class = "NSTextFieldCell"; title = "Decrease lyrics offset:"; ObjectID = "bmk-rW-Uot"; */ +"bmk-rW-Uot.title" = "歌詞のオフセットを減らす:"; + +/* Class = "NSButtonCell"; title = "Prefer bilingual lyrics"; ObjectID = "cBB-zn-Hdh"; */ +"cBB-zn-Hdh.title" = "二か国語の歌詞を優先する"; + +/* Class = "NSViewController"; title = "General"; ObjectID = "d5d-dC-DK4"; */ +"d5d-dC-DK4.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" = "ここにいくつかの実験的な機能があります、これらの機能は十分に安定しておらず、今後削除される可能性があります。"; + +/* Class = "NSTextFieldCell"; title = "Shadow"; ObjectID = "hsu-H9-9Bd"; */ +"hsu-H9-9Bd.title" = "影"; + +/* Class = "NSButtonCell"; title = "Taking a screenshot"; ObjectID = "iMD-Wy-Bm7"; */ +"iMD-Wy-Bm7.title" = "スクリーンショットを撮る"; + +/* Class = "NSButtonCell"; title = "With translation"; ObjectID = "jFb-kX-VbY"; */ +"jFb-kX-VbY.title" = "翻訳付き"; + +/* Class = "NSButtonCell"; title = "Enable lyrics filter"; ObjectID = "kEd-lC-aAH"; */ +"kEd-lC-aAH.title" = "歌詞フィルタを有効にする"; + +/* Class = "NSTextFieldCell"; title = "Search lyrics:"; ObjectID = "kP4-4q-ed9"; */ +"kP4-4q-ed9.title" = "歌詞を検索:"; + +/* Class = "NSViewController"; title = "Filter"; ObjectID = "lN1-gG-AVq"; */ +"lN1-gG-AVq.title" = "フィルタ"; + +/* Class = "NSTextFieldCell"; title = "Increase lyrics offset:"; ObjectID = "mo2-3C-gLY"; */ +"mo2-3C-gLY.title" = "歌詞のオフセットを増やす:"; + +/* Class = "NSViewController"; title = "Shortcut"; ObjectID = "ppx-ob-WJc"; */ +"ppx-ob-WJc.title" = "ショートカット"; + +/* Class = "NSTextFieldCell"; title = "Mark as wrong lyrics:"; ObjectID = "uEb-Q5-cda"; */ +"uEb-Q5-cda.title" = "間違った歌詞としてマークする:"; + +/* Class = "NSButtonCell"; title = "Auto launch & quit with music player"; ObjectID = "v63-4a-fPw"; */ +"v63-4a-fPw.title" = "プレーヤーの状態に応じて自動起動・終了"; + +/* Class = "NSMenuItem"; title = "No Conversion"; ObjectID = "zhB-kd-WWG"; */ +"zhB-kd-WWG.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" = "次の規則を満たす歌詞行がフィルタリングされます。 「/ 」を使用して正規表現を有効にします。"; + +/* Class = "NSButtonCell"; title = "Vertical mode"; ObjectID = "h4G-Un-dtm"; */ +"h4G-Un-dtm.title" = "垂直モード"; + +/* Class = "NSButtonCell"; title = "Automatically generate furigana for Japanese lyrics"; ObjectID = "ThQ-vA-Krb"; */ +"ThQ-vA-Krb.title" = "日本語歌詞のふりがなを自動的に生成します"; + +/* Class = "NSButtonCell"; title = "Enable Touch Bar lyrics"; ObjectID = "gGL-LB-TXI"; */ +"gGL-LB-TXI.title" = "タッチバー歌詞を有効にする"; + +/* Class = "NSTextFieldCell"; title = "Show lyrics window:"; ObjectID = "TB9-Fk-WAX"; */ +"TB9-Fk-WAX.title" = "歌詞ウィンドウを表示:"; + +/* Class = "NSTextFieldCell"; title = "Show / Hide menu bar lyrics:"; ObjectID = "XHQ-gX-urF"; */ +"XHQ-gX-urF.title" = "メニューバー歌詞を表示/非表示:"; + +/* Class = "NSTextFieldCell"; title = "Show / Hide karaoke lyrics:"; ObjectID = "lOc-OP-AcU"; */ +"lOc-OP-AcU.title" = "カラオケ歌詞を表示/非表示:"; + +/* Class = "NSTextFieldCell"; title = "Progress"; ObjectID = "XuN-vs-cgI"; */ +"XuN-vs-cgI.title" = "進行状況"; + +/* Class = "NSTextFieldCell"; title = "Global offset (ms):"; ObjectID = "slB-q7-1dB"; */ +"slB-q7-1dB.title" = "グローバル オフセット (ミリ秒):"; + +/* Class = "NSButtonCell"; title = "Draggable"; ObjectID = "T7p-MT-Mrh"; */ +"T7p-MT-Mrh.title" = "ドラッグを有効にする";