From e67b214f995652abd34b8ff42ffe190be296c57d Mon Sep 17 00:00:00 2001 From: second Date: Mon, 7 Sep 2026 12:39:50 +0800 Subject: [PATCH 1/3] Add Simplified Chinese (zh-Hans) localization Introduces localization infrastructure that didn't exist before (BGMApp only had Base.lproj, no NSLocalizedString usage, no second language registered): - Register zh-Hans in the Xcode project (knownRegions) and Info.plist (CFBundleLocalizations). - Add zh-Hans.lproj/MainMenu.strings translating all menu bar and preferences panel text from the xib. - Wrap the app's hardcoded alert/dialog strings, the Mute/Unmute button, and the dynamic "Auto-pause " menu item title in NSLocalizedString, with translations in zh-Hans.lproj/Localizable.strings. - Add zh-Hans.lproj/InfoPlist.strings for the microphone and Apple Events permission prompts. Verified with a Debug build (xcodebuild) and a real install: the menu bar, preferences panel, and about panel display correctly in Chinese. Co-Authored-By: Claude Sonnet 5 --- BGMApp/BGMApp.xcodeproj/project.pbxproj | 29 +++++ BGMApp/BGMApp/BGMAppDelegate.mm | 46 +++---- BGMApp/BGMApp/BGMAppVolumes.m | 4 +- BGMApp/BGMApp/BGMAutoPauseMenuItem.m | 4 +- BGMApp/BGMApp/BGMOutputDeviceMenuSection.mm | 4 +- BGMApp/BGMApp/Info.plist | 5 + BGMApp/BGMApp/zh-Hans.lproj/InfoPlist.strings | 3 + .../BGMApp/zh-Hans.lproj/Localizable.strings | 53 ++++++++ BGMApp/BGMApp/zh-Hans.lproj/MainMenu.strings | 113 ++++++++++++++++++ 9 files changed, 232 insertions(+), 29 deletions(-) create mode 100644 BGMApp/BGMApp/zh-Hans.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/zh-Hans.lproj/MainMenu.strings diff --git a/BGMApp/BGMApp.xcodeproj/project.pbxproj b/BGMApp/BGMApp.xcodeproj/project.pbxproj index 41406316..51975f97 100644 --- a/BGMApp/BGMApp.xcodeproj/project.pbxproj +++ b/BGMApp/BGMApp.xcodeproj/project.pbxproj @@ -213,6 +213,9 @@ 2743CA221D86DE960089613B /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C1963021BCAC160008A4DF7 /* CoreAudio.framework */; }; 2743CA231D86DEA70089613B /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CD1FD2F1BDDEAF2004F7E1B /* AudioToolbox.framework */; }; 274827951E11052500B31D8D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1CB8B3421BBA75EF000E2DD1 /* MainMenu.xib */; }; + 54B4C5E3572841DF28F3802E /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2FBC0BF0BB27A47E8E393C57 /* zh-Hans */; }; + 76A640B2E900D1C3B63BB285 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 785AA7399996B4910B9A69BD /* Localizable.strings */; }; + FD768A06404605B607F51C6F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9FD1027BCD87DA4F96CEC9DD /* InfoPlist.strings */; }; 277170161CA24D7C00AB34B4 /* BGMXPCListenerDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 277170151CA24D7C00AB34B4 /* BGMXPCListenerDelegate.m */; settings = {COMPILER_FLAGS = "-frandom-seed=BGMXPCHelper-BGMXPCListenerDelegate.m"; }; }; 2795973B1C982E4E00A002FB /* BGMXPCListener.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2795973A1C982E4E00A002FB /* BGMXPCListener.mm */; settings = {COMPILER_FLAGS = "-frandom-seed=BGMApp-BGMXPCListener.mm"; }; }; 279F48771DD6D73A00768A85 /* BGMHermes.m in Sources */ = {isa = PBXBuildFile; fileRef = 279F48761DD6D73900768A85 /* BGMHermes.m */; settings = {COMPILER_FLAGS = "-frandom-seed=BGMApp-BGMHermes.m"; }; }; @@ -356,6 +359,9 @@ 1CB8B33C1BBA75EF000E2DD1 /* BGMAppDelegate.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = BGMAppDelegate.mm; sourceTree = ""; }; 1CB8B33E1BBA75EF000E2DD1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 1CB8B3431BBA75EF000E2DD1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 2FBC0BF0BB27A47E8E393C57 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = ""; }; + CA1B9EDD18951796EBB17651 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; + 6AEF75D0FCD2A6B6CFE07EF6 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 1CC1DF7D1BE5068A00FB8FE4 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CACFArray.cpp; path = PublicUtility/CACFArray.cpp; sourceTree = ""; }; 1CC1DF7E1BE5068A00FB8FE4 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CACFArray.h; path = PublicUtility/CACFArray.h; sourceTree = ""; }; 1CC1DF7F1BE5068A00FB8FE4 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CACFDictionary.cpp; path = PublicUtility/CACFDictionary.cpp; sourceTree = ""; }; @@ -715,6 +721,7 @@ 2795973A1C982E4E00A002FB /* BGMXPCListener.mm */, 1C2FC3161EC7078F00A76592 /* Scripting */, 1CB8B3421BBA75EF000E2DD1 /* MainMenu.xib */, + 785AA7399996B4910B9A69BD /* Localizable.strings */, 1CB8B3391BBA75EF000E2DD1 /* Supporting Files */, ); path = BGMApp; @@ -729,6 +736,7 @@ 1CED61681C3081C2002CAFCF /* LICENSE */, 1CC1DF951BE8607700FB8FE4 /* Images.xcassets */, 1CB8B33A1BBA75EF000E2DD1 /* Info.plist */, + 9FD1027BCD87DA4F96CEC9DD /* InfoPlist.strings */, 1C533C7F1EF532CA00270802 /* _uninstall-non-interactive.sh */, 1C533C791EED28B700270802 /* uninstall.sh */, 1CB8B33E1BBA75EF000E2DD1 /* main.m */, @@ -996,6 +1004,7 @@ knownRegions = ( en, Base, + "zh-Hans", ); mainGroup = 1CB8B32D1BBA75EF000E2DD1; productRefGroup = 1CB8B3371BBA75EF000E2DD1 /* Products */; @@ -1017,6 +1026,9 @@ buildActionMask = 2147483647; files = ( 274827951E11052500B31D8D /* MainMenu.xib in Resources */, + 54B4C5E3572841DF28F3802E /* MainMenu.strings in Resources */, + 76A640B2E900D1C3B63BB285 /* Localizable.strings in Resources */, + FD768A06404605B607F51C6F /* InfoPlist.strings in Resources */, 1C533C7A1EED28B700270802 /* uninstall.sh in Resources */, 1C8D830E2042F25C00A838F2 /* GooglePlayMusicDesktopPlayer.js in Resources */, 1C533C801EF532CA00270802 /* _uninstall-non-interactive.sh in Resources */, @@ -1361,10 +1373,27 @@ isa = PBXVariantGroup; children = ( 1CB8B3431BBA75EF000E2DD1 /* Base */, + 2FBC0BF0BB27A47E8E393C57 /* zh-Hans */, ); name = MainMenu.xib; sourceTree = ""; }; + 785AA7399996B4910B9A69BD /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + CA1B9EDD18951796EBB17651 /* zh-Hans */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + 9FD1027BCD87DA4F96CEC9DD /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 6AEF75D0FCD2A6B6CFE07EF6 /* zh-Hans */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ diff --git a/BGMApp/BGMApp/BGMAppDelegate.mm b/BGMApp/BGMApp/BGMAppDelegate.mm index 2c5d47eb..d967da5f 100644 --- a/BGMApp/BGMApp/BGMAppDelegate.mm +++ b/BGMApp/BGMApp/BGMAppDelegate.mm @@ -148,11 +148,11 @@ - (void) applicationDidFinishLaunching:(NSNotification*)aNotification { // // TODO: It would be nice if this dialog had a shortcut to open the System // Preferences panel. See showSetDeviceAsDefaultError. - [self showErrorMessage:@"Background Music needs permission to use microphones." - informativeText:@"It uses a virtual microphone to access your system's " + [self showErrorMessage:NSLocalizedString(@"Background Music needs permission to use microphones.", "") + informativeText:NSLocalizedString(@"It uses a virtual microphone to access your system's " "audio.\n\nYou can grant the permission by going to " "System Preferences > Security and Privacy > " - "Microphone and checking the box for Background Music." + "Microphone and checking the box for Background Music.", "") exitAfterMessageDismissed:YES]; } }); @@ -237,9 +237,9 @@ - (void) setBGMDeviceAsDefault { if (error) { [self showSetDeviceAsDefaultError:error - message:@"Could not set the Background Music device as your" - "default audio device." - informativeText:@"You might be able to change it yourself."]; + message:NSLocalizedString(@"Could not set the Background Music device as your" + "default audio device.", "") + informativeText:NSLocalizedString(@"You might be able to change it yourself.", "")]; } } @@ -385,8 +385,8 @@ - (void) applicationWillTerminate:(NSNotification*)aNotification { if (error) { [self showSetDeviceAsDefaultError:error - message:@"Failed to reset your system's audio output device." - informativeText:@"You'll have to change it yourself to get audio working again."]; + message:NSLocalizedString(@"Failed to reset your system's audio output device.", "") + informativeText:NSLocalizedString(@"You'll have to change it yourself to get audio working again.", "")]; } } @@ -398,10 +398,10 @@ - (void) showBGMDeviceNotFoundErrorMessageAndExit { // // TODO: Check whether the driver files are in /Library/Audio/Plug-Ins/HAL? Might even want to // offer to install them if not. - [self showErrorMessage:@"Could not find the Background Music virtual audio device." - informativeText:@"Make sure you've installed Background Music Device.driver to " + [self showErrorMessage:NSLocalizedString(@"Could not find the Background Music virtual audio device.", "") + informativeText:NSLocalizedString(@"Make sure you've installed Background Music Device.driver to " "/Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo " - "killall coreaudiod\")." + "killall coreaudiod\").", "") exitAfterMessageDismissed:YES]; } @@ -411,7 +411,7 @@ - (void) showFailedToSetOutputDeviceErrorMessage:(NSError*)error dispatch_async(dispatch_get_main_queue(), ^{ NSAlert* alert = [NSAlert alertWithError:BGMNN(error)]; - alert.messageText = @"Failed to set the output device."; + alert.messageText = NSLocalizedString(@"Failed to set the output device.", ""); NSString* __nullable name = nil; BGM_Utils::LogAndSwallowExceptions(BGMDbgArgs, [&] { @@ -419,7 +419,7 @@ - (void) showFailedToSetOutputDeviceErrorMessage:(NSError*)error }); alert.informativeText = - [NSString stringWithFormat:@"Could not start the device '%@'. (Error: %ld)", + [NSString stringWithFormat:NSLocalizedString(@"Could not start the device '%@'. (Error: %ld)", ""), name, error.code]; [alert runModal]; @@ -428,9 +428,9 @@ - (void) showFailedToSetOutputDeviceErrorMessage:(NSError*)error - (void) showOutputDeviceNotFoundErrorMessageAndExit { // We couldn't find any output devices. Show an error dialog and exit. - [self showErrorMessage:@"Could not find an audio output device." - informativeText:@"If you do have one installed, this is probably a bug. Sorry about " - "that. Feel free to file an issue on GitHub." + [self showErrorMessage:NSLocalizedString(@"Could not find an audio output device.", "") + informativeText:NSLocalizedString(@"If you do have one installed, this is probably a bug. Sorry about " + "that. Feel free to file an issue on GitHub.", "") exitAfterMessageDismissed:YES]; } @@ -444,12 +444,12 @@ - (void) showXPCHelperErrorMessage:(NSError*)error { // TODO: Offer to install BGMXPCHelper if it's missing. // TODO: Show suppression button? - [alert setMessageText:@"Error connecting to BGMXPCHelper."]; - [alert setInformativeText:[NSString stringWithFormat:@"%s%s%@ (%lu)", - "Make sure you have BGMXPCHelper installed. There are instructions in the " + [alert setMessageText:NSLocalizedString(@"Error connecting to BGMXPCHelper.", "")]; + [alert setInformativeText:[NSString stringWithFormat:@"%@%@%@ (%lu)", + NSLocalizedString(@"Make sure you have BGMXPCHelper installed. There are instructions in the " "README.md file.\n\n" - "Background Music might still work, but it won't work as well as it could.", - "\n\nDetails:\n", + "Background Music might still work, but it won't work as well as it could.", ""), + NSLocalizedString(@"\n\nDetails:\n", ""), [error localizedDescription], [error code]]]; [alert runModal]; @@ -486,8 +486,8 @@ - (void) showSetDeviceAsDefaultError:(NSError*)error alert.messageText = msg; alert.informativeText = info; - [alert addButtonWithTitle:@"OK"]; - [alert addButtonWithTitle:@"Open Sound in System Preferences"]; + [alert addButtonWithTitle:NSLocalizedString(@"OK", "")]; + [alert addButtonWithTitle:NSLocalizedString(@"Open Sound in System Preferences", "")]; NSModalResponse buttonClicked = [alert runModal]; diff --git a/BGMApp/BGMApp/BGMAppVolumes.m b/BGMApp/BGMApp/BGMAppVolumes.m index e0ef1f20..5b95f65b 100644 --- a/BGMApp/BGMApp/BGMAppVolumes.m +++ b/BGMApp/BGMApp/BGMAppVolumes.m @@ -461,13 +461,13 @@ - (void) updateButtonForVolume:(int)volume { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpartial-availability" NSString* symbol = muted ? @"speaker.slash.fill" : @"speaker.wave.2.fill"; - NSString* description = muted ? @"Unmute" : @"Mute"; + NSString* description = muted ? NSLocalizedString(@"Unmute", "") : NSLocalizedString(@"Mute", ""); self.image = [NSImage imageWithSystemSymbolName:symbol accessibilityDescription:description]; #pragma clang diagnostic pop self.imagePosition = NSImageOnly; self.title = @""; } else { - self.title = muted ? @"Unmute" : @"Mute"; + self.title = muted ? NSLocalizedString(@"Unmute", "") : NSLocalizedString(@"Mute", ""); } } diff --git a/BGMApp/BGMApp/BGMAutoPauseMenuItem.m b/BGMApp/BGMApp/BGMAutoPauseMenuItem.m index 472557be..893e4b3e 100644 --- a/BGMApp/BGMApp/BGMAutoPauseMenuItem.m +++ b/BGMApp/BGMApp/BGMAutoPauseMenuItem.m @@ -123,7 +123,7 @@ - (void) updateMenuItemTitle { - (void) updateMenuItemTitleWithHighlight:(BOOL)highlight { // Set the title of the Auto-pause Music menu item, including the name of the selected music player. NSString* musicPlayerName = musicPlayers.selectedMusicPlayer.name; - menuItem.title = [NSString stringWithFormat:kMenuItemTitleFormat, musicPlayerName]; + menuItem.title = [NSString stringWithFormat:NSLocalizedString(kMenuItemTitleFormat, ""), musicPlayerName]; // Make the Auto-pause Music menu item appear disabled if the application is not running. // @@ -155,7 +155,7 @@ - (void) updateMenuItemTitleWithHighlight:(BOOL)highlight { attributes:attributes]; menuItem.attributedTitle = pseudoDisabledTitle; - menuItem.toolTip = [NSString stringWithFormat:kMenuItemDisabledToolTipFormat, musicPlayerName]; + menuItem.toolTip = [NSString stringWithFormat:NSLocalizedString(kMenuItemDisabledToolTipFormat, ""), musicPlayerName]; } } diff --git a/BGMApp/BGMApp/BGMOutputDeviceMenuSection.mm b/BGMApp/BGMApp/BGMOutputDeviceMenuSection.mm index 273b0a90..7cb21f9b 100644 --- a/BGMApp/BGMApp/BGMOutputDeviceMenuSection.mm +++ b/BGMApp/BGMApp/BGMOutputDeviceMenuSection.mm @@ -380,8 +380,8 @@ - (void) changeToOutputDevice:(AudioDeviceID)deviceID NSAlert* alert = [NSAlert new]; alert.messageText = - [NSString stringWithFormat:@"Failed to set %@ as the output device.", deviceName]; - alert.informativeText = @"This is probably a bug. Feel free to report it."; + [NSString stringWithFormat:NSLocalizedString(@"Failed to set %@ as the output device.", ""), deviceName]; + alert.informativeText = NSLocalizedString(@"This is probably a bug. Feel free to report it.", ""); [alert runModal]; }); diff --git a/BGMApp/BGMApp/Info.plist b/BGMApp/BGMApp/Info.plist index 6782bfa4..959c6715 100644 --- a/BGMApp/BGMApp/Info.plist +++ b/BGMApp/BGMApp/Info.plist @@ -6,6 +6,11 @@ None CFBundleDevelopmentRegion en + CFBundleLocalizations + + en + zh-Hans + CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier diff --git a/BGMApp/BGMApp/zh-Hans.lproj/InfoPlist.strings b/BGMApp/BGMApp/zh-Hans.lproj/InfoPlist.strings new file mode 100644 index 00000000..f4c43398 --- /dev/null +++ b/BGMApp/BGMApp/zh-Hans.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "如果你希望 Background Music 自动暂停你的音乐播放器,它需要控制该音乐播放器 App。"; + +"NSMicrophoneUsageDescription" = "“Background Music”虚拟音频设备会通过一个虚拟输入设备,把系统音频发送给 Background Music(该 App)。"; diff --git a/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings b/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings new file mode 100644 index 00000000..68491d8b --- /dev/null +++ b/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,53 @@ +/* BGMAppDelegate.mm */ + +"Background Music needs permission to use microphones." = "Background Music 需要使用麦克风的权限。"; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "它需要通过虚拟麦克风来获取系统音频。\n\n你可以前往“系统偏好设置 > 安全性与隐私 > 麦克风”,勾选 Background Music 来授予该权限。"; + +"Could not set the Background Music device as yourdefault audio device." = "无法将 Background Music 设备设为你的默认音频输出设备。"; + +"You might be able to change it yourself." = "你可以尝试自己手动修改。"; + +"Failed to reset your system's audio output device." = "重置系统音频输出设备失败。"; + +"You'll have to change it yourself to get audio working again." = "你需要自己手动修改,才能让音频重新正常工作。"; + +"Could not find the Background Music virtual audio device." = "找不到 Background Music 虚拟音频设备。"; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "请确认已将 Background Music Device.driver 安装到 /Library/Audio/Plug-Ins/HAL,并重启了 coreaudiod(例如执行 \"sudo killall coreaudiod\")。"; + +"Failed to set the output device." = "设置输出设备失败。"; + +"Could not start the device '%@'. (Error: %ld)" = "无法启动设备“%@”。(错误代码:%ld)"; + +"Could not find an audio output device." = "找不到音频输出设备。"; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "如果你确实安装了输出设备,这可能是个 bug,抱歉给你带来困扰。欢迎在 GitHub 上提交 issue。"; + +"Error connecting to BGMXPCHelper." = "连接 BGMXPCHelper 时出错。"; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "请确认已安装 BGMXPCHelper,具体步骤请参考 README.md 文件。\n\nBackground Music 或许仍能工作,但效果会打折扣。"; + +"\n\nDetails:\n" = "\n\n详细信息:\n"; + +"OK" = "好"; + +"Open Sound in System Preferences" = "在系统偏好设置中打开声音"; + +/* BGMAppVolumes.m */ + +"Unmute" = "取消静音"; + +"Mute" = "静音"; + +/* BGMAutoPauseMenuItem.m */ + +"Auto-pause %@" = "自动暂停 %@"; + +"%@ doesn't appear to be running." = "%@ 好像没有在运行。"; + +/* BGMOutputDeviceMenuSection.mm */ + +"Failed to set %@ as the output device." = "将 %@ 设为输出设备失败。"; + +"This is probably a bug. Feel free to report it." = "这可能是个 bug,欢迎反馈。"; diff --git a/BGMApp/BGMApp/zh-Hans.lproj/MainMenu.strings b/BGMApp/BGMApp/zh-Hans.lproj/MainMenu.strings new file mode 100644 index 00000000..d8b382a0 --- /dev/null +++ b/BGMApp/BGMApp/zh-Hans.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "声像"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "自动暂停"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "声像"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "声像"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "音量"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Background Music 主菜单"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "应用音量"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "输出音量"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "设置音频输出设备的音量。"; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Background Music 图标"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "声像"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "系统声音"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "音量图标"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "偏好设置"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "状态栏图标"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "基于 GPL v2 或更高版本授权。"; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "版本 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "音量"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "偏好设置"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "退出 Background Music"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "关于 Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Background Music 贡献者"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "应用程序名称"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "输出设备"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "版权所有 © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "系统声音音量"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "提示音、通知声等的音量,通常很短,任何应用都可以播放。"; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "AirPlay 标志是 Apple Inc. 的商标。"; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "开启后,当其他应用开始播放音频时,会自动暂停你选择的音乐播放器。"; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "自动暂停音乐"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "记录详细日志以便排查问题。可在\"控制台\"App 中搜索 \"bgm\" 或 \"background music\" 查看。"; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "调试日志"; From 298c8078d71a3ea2881cd4756b6241376fbcb476 Mon Sep 17 00:00:00 2001 From: second Date: Mon, 7 Sep 2026 13:02:14 +0800 Subject: [PATCH 2/3] zh-Hans: Localize remaining hardcoded strings Covers strings that weren't in the xib and so weren't caught by the MainMenu.strings pass: the code-built "Auto-pause Delays" preferences submenu (BGMPreferencesMenu.mm), the runtime-set About panel version string and license-load fallback (BGMAboutPanel.m), the generic "Output Device" fallback label (BGMOutputVolumeMenuItem.mm), the system sounds tooltip that was overwriting the xib's translated one at runtime (BGMSystemSoundsVolume.mm), and the "More Apps" submenu / "More options" accessibility label (BGMAppVolumes.m). Found via real-machine testing (thanks to user feedback) after the first pass. Co-Authored-By: Claude Sonnet 5 --- BGMApp/BGMApp/BGMAppVolumes.m | 6 ++-- BGMApp/BGMApp/BGMOutputVolumeMenuItem.mm | 4 +-- BGMApp/BGMApp/BGMSystemSoundsVolume.mm | 2 +- BGMApp/BGMApp/Preferences/BGMAboutPanel.m | 4 +-- .../BGMApp/Preferences/BGMPreferencesMenu.mm | 10 +++---- .../BGMApp/zh-Hans.lproj/Localizable.strings | 30 +++++++++++++++++++ 6 files changed, 43 insertions(+), 13 deletions(-) diff --git a/BGMApp/BGMApp/BGMAppVolumes.m b/BGMApp/BGMApp/BGMAppVolumes.m index 5b95f65b..ec252e6b 100644 --- a/BGMApp/BGMApp/BGMAppVolumes.m +++ b/BGMApp/BGMApp/BGMAppVolumes.m @@ -59,14 +59,14 @@ - (id) initWithController:(BGMAppVolumesController*)inController if ((self = [super init])) { controller = inController; bgmMenu = inMenu; - moreAppsMenu = [[NSMenu alloc] initWithTitle:kMoreAppsMenuTitle]; + moreAppsMenu = [[NSMenu alloc] initWithTitle:NSLocalizedString(kMoreAppsMenuTitle, "")]; appVolumeView = inView; appVolumeViewFullHeight = appVolumeView.frame.size.height; numMenuItems = 0; // Add the More Apps menu to the main menu. NSMenuItem* moreAppsMenuItem = - [[NSMenuItem alloc] initWithTitle:kMoreAppsMenuTitle action:nil keyEquivalent:@""]; + [[NSMenuItem alloc] initWithTitle:NSLocalizedString(kMoreAppsMenuTitle, "") action:nil keyEquivalent:@""]; moreAppsMenuItem.submenu = moreAppsMenu; [bgmMenu insertItem:moreAppsMenuItem atIndex:([self lastMenuItemIndex] + 1)]; @@ -417,7 +417,7 @@ - (void) setUpWithApp:(NSRunningApplication*)app if ([self respondsToSelector:@selector(setAccessibilityTitle:)]) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpartial-availability" - self.accessibilityTitle = @"More options"; + self.accessibilityTitle = NSLocalizedString(@"More options", ""); #pragma clang diagnostic pop } } diff --git a/BGMApp/BGMApp/BGMOutputVolumeMenuItem.mm b/BGMApp/BGMApp/BGMOutputVolumeMenuItem.mm index 85ab4771..726af1e6 100644 --- a/BGMApp/BGMApp/BGMOutputVolumeMenuItem.mm +++ b/BGMApp/BGMApp/BGMOutputVolumeMenuItem.mm @@ -215,7 +215,7 @@ - (void) updateLabelAndToolTip { DebugMsg("BGMOutputVolumeMenuItem::updateLabelAndToolTip: Output device unknown. Using the " "generic label."); self.toolTip = nil; - deviceLabel.stringValue = kGenericOutputDeviceName; + deviceLabel.stringValue = NSLocalizedString(kGenericOutputDeviceName, ""); } else { BOOL didSetLabel = NO; @@ -256,7 +256,7 @@ - (void) updateLabelAndToolTip { self.toolTip = nil; if (!didSetLabel) { - deviceLabel.stringValue = kGenericOutputDeviceName; + deviceLabel.stringValue = NSLocalizedString(kGenericOutputDeviceName, ""); } } } diff --git a/BGMApp/BGMApp/BGMSystemSoundsVolume.mm b/BGMApp/BGMApp/BGMSystemSoundsVolume.mm index 5bd2286b..478b4b86 100644 --- a/BGMApp/BGMApp/BGMSystemSoundsVolume.mm +++ b/BGMApp/BGMApp/BGMSystemSoundsVolume.mm @@ -50,7 +50,7 @@ - (instancetype) initWithUISoundsDevice:(BGMAudioDevice)inUISoundsDevice volumeSlider = inSlider; _menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; - _menuItem.toolTip = kMenuItemToolTip; + _menuItem.toolTip = NSLocalizedString(kMenuItemToolTip, ""); // Apply our custom view from MainMenu.xib. It's very similar to the one for app volumes. _menuItem.view = inView; diff --git a/BGMApp/BGMApp/Preferences/BGMAboutPanel.m b/BGMApp/BGMApp/Preferences/BGMAboutPanel.m index c15e90ec..f6a06998 100644 --- a/BGMApp/BGMApp/Preferences/BGMAboutPanel.m +++ b/BGMApp/BGMApp/Preferences/BGMAboutPanel.m @@ -78,7 +78,7 @@ - (void) initAboutPanel { [[bundle infoDictionary] objectForKey:@"CFBundleShortVersionString"]; if (version) { - versionLabel.stringValue = [NSString stringWithFormat:@"Version %@", version]; + versionLabel.stringValue = [NSString stringWithFormat:NSLocalizedString(@"Version %@", ""), version]; } // Copyright notice label @@ -126,7 +126,7 @@ - (void) initAboutPanel { if (err || !licenseStr || [licenseStr isEqualToString:@""]) { NSLog(@"Error loading license file: %@", err); - licenseStr = @"Error: could not open license file."; + licenseStr = NSLocalizedString(@"Error: could not open license file.", ""); } licenseView.string = (NSString*)licenseStr; diff --git a/BGMApp/BGMApp/Preferences/BGMPreferencesMenu.mm b/BGMApp/BGMApp/Preferences/BGMPreferencesMenu.mm index 6a919431..fd0a0a4a 100644 --- a/BGMApp/BGMApp/Preferences/BGMPreferencesMenu.mm +++ b/BGMApp/BGMApp/Preferences/BGMPreferencesMenu.mm @@ -135,7 +135,7 @@ - (void) setupDelayPreferences:(NSMenu*)prefsMenu { [prefsMenu addItem:[NSMenuItem separatorItem]]; // Add "Auto-pause Delays" header - NSMenuItem* delaysHeader = [[NSMenuItem alloc] initWithTitle:@"Auto-pause Delays" action:nil keyEquivalent:@""]; + NSMenuItem* delaysHeader = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Auto-pause Delays", "") action:nil keyEquivalent:@""]; delaysHeader.enabled = NO; [prefsMenu addItem:delaysHeader]; @@ -145,7 +145,7 @@ - (void) setupDelayPreferences:(NSMenu*)prefsMenu { // Pause delay label NSTextField* pauseDelayTitleLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 5, 100, 15)]; - pauseDelayTitleLabel.stringValue = @"Pause Delay:"; + pauseDelayTitleLabel.stringValue = NSLocalizedString(@"Pause Delay:", ""); pauseDelayTitleLabel.editable = NO; pauseDelayTitleLabel.bordered = NO; pauseDelayTitleLabel.backgroundColor = [NSColor clearColor]; @@ -173,7 +173,7 @@ - (void) setupDelayPreferences:(NSMenu*)prefsMenu { // Max unpause delay label NSTextField* maxUnpauseDelayTitleLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 5, 100, 15)]; - maxUnpauseDelayTitleLabel.stringValue = @"Max Unpause:"; + maxUnpauseDelayTitleLabel.stringValue = NSLocalizedString(@"Max Unpause:", ""); maxUnpauseDelayTitleLabel.editable = NO; maxUnpauseDelayTitleLabel.bordered = NO; maxUnpauseDelayTitleLabel.backgroundColor = [NSColor clearColor]; @@ -237,7 +237,7 @@ - (void) maxUnpauseDelaySliderChanged:(NSSlider*)sender { - (void) updatePauseDelayLabel { NSUInteger delayMS = userDefaults.pauseDelayMS; if (delayMS == 0) { - pauseDelayLabel.stringValue = @"Off"; + pauseDelayLabel.stringValue = NSLocalizedString(@"Off", ""); } else { pauseDelayLabel.stringValue = [NSString stringWithFormat:@"%lums", (unsigned long)delayMS]; } @@ -246,7 +246,7 @@ - (void) updatePauseDelayLabel { - (void) updateMaxUnpauseDelayLabel { NSUInteger delayMS = userDefaults.maxUnpauseDelayMS; if (delayMS == 0) { - maxUnpauseDelayLabel.stringValue = @"Off"; + maxUnpauseDelayLabel.stringValue = NSLocalizedString(@"Off", ""); } else { maxUnpauseDelayLabel.stringValue = [NSString stringWithFormat:@"%lums", (unsigned long)delayMS]; } diff --git a/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings b/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings index 68491d8b..cb8cc2c1 100644 --- a/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings +++ b/BGMApp/BGMApp/zh-Hans.lproj/Localizable.strings @@ -51,3 +51,33 @@ "Failed to set %@ as the output device." = "将 %@ 设为输出设备失败。"; "This is probably a bug. Feel free to report it." = "这可能是个 bug,欢迎反馈。"; + +/* BGMPreferencesMenu.mm */ + +"Auto-pause Delays" = "自动暂停延迟"; + +"Pause Delay:" = "暂停延迟:"; + +"Max Unpause:" = "最长恢复延迟:"; + +"Off" = "关闭"; + +/* BGMAboutPanel.m */ + +"Version %@" = "版本 %@"; + +"Error: could not open license file." = "错误:无法打开许可证文件。"; + +/* BGMOutputVolumeMenuItem.mm */ + +"Output Device" = "输出设备"; + +/* BGMSystemSoundsVolume.mm */ + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "提示音、通知声等的音量,通常很短,任何应用都可以播放。"; + +/* BGMAppVolumes.m */ + +"More Apps" = "更多应用"; + +"More options" = "更多选项"; From ba125ca0b117bc9b7c1d641bd3d9ac71da10530f Mon Sep 17 00:00:00 2001 From: second Date: Mon, 7 Sep 2026 13:42:51 +0800 Subject: [PATCH 3/3] Add French, German, Spanish, Japanese, Korean, Portuguese, Russian, and Italian localizations Extends the localization infrastructure added for zh-Hans to 8 more languages (fr, de, es, ja, ko, pt-PT, ru, it): registers each in knownRegions and CFBundleLocalizations, and adds MainMenu.strings, Localizable.strings, and InfoPlist.strings for each. Verified with a Debug build (xcodebuild); all 9 non-English locales are present and correctly formed in the built app bundle. Co-Authored-By: Claude Sonnet 5 --- BGMApp/BGMApp.xcodeproj/project.pbxproj | 104 ++++++++++++++++ BGMApp/BGMApp/Info.plist | 8 ++ BGMApp/BGMApp/de.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/de.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/de.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/es.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/es.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/es.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/fr.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/fr.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/fr.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/it.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/it.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/it.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/ja.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/ja.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/ja.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/ko.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/ko.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/ko.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/pt-PT.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/pt-PT.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/pt-PT.lproj/MainMenu.strings | 113 ++++++++++++++++++ BGMApp/BGMApp/ru.lproj/InfoPlist.strings | 3 + BGMApp/BGMApp/ru.lproj/Localizable.strings | 65 ++++++++++ BGMApp/BGMApp/ru.lproj/MainMenu.strings | 113 ++++++++++++++++++ 26 files changed, 1560 insertions(+) create mode 100644 BGMApp/BGMApp/de.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/de.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/de.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/es.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/es.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/es.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/fr.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/fr.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/fr.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/it.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/it.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/it.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/ja.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/ja.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/ja.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/ko.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/ko.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/ko.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/pt-PT.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/pt-PT.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/pt-PT.lproj/MainMenu.strings create mode 100644 BGMApp/BGMApp/ru.lproj/InfoPlist.strings create mode 100644 BGMApp/BGMApp/ru.lproj/Localizable.strings create mode 100644 BGMApp/BGMApp/ru.lproj/MainMenu.strings diff --git a/BGMApp/BGMApp.xcodeproj/project.pbxproj b/BGMApp/BGMApp.xcodeproj/project.pbxproj index 51975f97..7b802a40 100644 --- a/BGMApp/BGMApp.xcodeproj/project.pbxproj +++ b/BGMApp/BGMApp.xcodeproj/project.pbxproj @@ -216,6 +216,30 @@ 54B4C5E3572841DF28F3802E /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2FBC0BF0BB27A47E8E393C57 /* zh-Hans */; }; 76A640B2E900D1C3B63BB285 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 785AA7399996B4910B9A69BD /* Localizable.strings */; }; FD768A06404605B607F51C6F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9FD1027BCD87DA4F96CEC9DD /* InfoPlist.strings */; }; + 13EAEB14241B91BB6074F3F1 /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = EBB6BABC4F25F9FEF8054733 /* fr */; }; + FCEE388AE7C880699A9971C3 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 29F20DF4DE9A1394993C1878 /* fr */; }; + E93C84AE680ABEF66D3815E2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2D75B686D1874D8E0608DE1 /* fr */; }; + 274E8291A15D882DAAD5E76D /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB7575666B5BD8E5B423FD56 /* de */; }; + DB0F369FC1837B407646311E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = ADDD3466AE98B69CD8E7D37D /* de */; }; + A308DD96FBAB3338C214050C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 71A3CDB3A3EE610C42F919E2 /* de */; }; + 13A0F31EB47DC1FC5ADEDB14 /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = D96E39BE0E0E12FAB083812E /* es */; }; + 05545EF8110CCA1D43F2D705 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5FC605D038FAE45D56C62324 /* es */; }; + 947CF8E2BE66084CED0E4122 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 720DE8B40E44CEEA1EEAE776 /* es */; }; + EE99E7578190CEE9D41280B0 /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = ECF37730219BF785CADEB7DD /* ja */; }; + 770A5322DE80857326A95F52 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = BB8994EC2BB20DF36B363D92 /* ja */; }; + ECDBB8E3E6670D8FB1AB8074 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4196B5E48A3660EBE486DDC7 /* ja */; }; + 0CE4DD360C34C8BAE3EEC025 /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = C20AD699676B01299D1C52C8 /* ko */; }; + 4D677079EE956DBDE7921B30 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DE1FCA6F80BE4E1EBAF1E8BF /* ko */; }; + 223938DC17F93ADC756CCE34 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1CF19F1D60198D50721667D9 /* ko */; }; + 590D8CBA706FC3702A9CEFAC /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = C3BF552A7D90FDE613831B81 /* pt-PT */; }; + D79E823108B935353D139B16 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4D6A84E5CF6B7725ED6B20B0 /* pt-PT */; }; + BE4215A7F32CF34CFE9A98D9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2C7A59B2E99B3078FA94CEA /* pt-PT */; }; + 880A2BDCECCD09CBA5DCEBF8 /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = C9881A20394A8F3F242CE3BB /* ru */; }; + 228DC4B32D59B1CD23D1CA30 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5B1BFD6531CF2CF6919013C5 /* ru */; }; + C09EABDF4FF3C24B34F64CDE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = EB58FF0018DFC6B1A1C87090 /* ru */; }; + 7FEC6A5C4AB5C79E5D434DCF /* MainMenu.strings in Resources */ = {isa = PBXBuildFile; fileRef = B4BD7A750F60B666A6876566 /* it */; }; + EE38BA28776F2D09B05BC243 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 13A49C48BC956BF2F4ECA4CC /* it */; }; + D2169A8D435E1A1BC0F857F3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DEEF49579071E1CCD97763FF /* it */; }; 277170161CA24D7C00AB34B4 /* BGMXPCListenerDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 277170151CA24D7C00AB34B4 /* BGMXPCListenerDelegate.m */; settings = {COMPILER_FLAGS = "-frandom-seed=BGMXPCHelper-BGMXPCListenerDelegate.m"; }; }; 2795973B1C982E4E00A002FB /* BGMXPCListener.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2795973A1C982E4E00A002FB /* BGMXPCListener.mm */; settings = {COMPILER_FLAGS = "-frandom-seed=BGMApp-BGMXPCListener.mm"; }; }; 279F48771DD6D73A00768A85 /* BGMHermes.m in Sources */ = {isa = PBXBuildFile; fileRef = 279F48761DD6D73900768A85 /* BGMHermes.m */; settings = {COMPILER_FLAGS = "-frandom-seed=BGMApp-BGMHermes.m"; }; }; @@ -362,6 +386,30 @@ 2FBC0BF0BB27A47E8E393C57 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = ""; }; CA1B9EDD18951796EBB17651 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; 6AEF75D0FCD2A6B6CFE07EF6 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; + EBB6BABC4F25F9FEF8054733 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr"; path = "fr.lproj/MainMenu.strings"; sourceTree = ""; }; + 29F20DF4DE9A1394993C1878 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr"; path = "fr.lproj/Localizable.strings"; sourceTree = ""; }; + E2D75B686D1874D8E0608DE1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr"; path = "fr.lproj/InfoPlist.strings"; sourceTree = ""; }; + AB7575666B5BD8E5B423FD56 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "de"; path = "de.lproj/MainMenu.strings"; sourceTree = ""; }; + ADDD3466AE98B69CD8E7D37D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "de"; path = "de.lproj/Localizable.strings"; sourceTree = ""; }; + 71A3CDB3A3EE610C42F919E2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "de"; path = "de.lproj/InfoPlist.strings"; sourceTree = ""; }; + D96E39BE0E0E12FAB083812E /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es"; path = "es.lproj/MainMenu.strings"; sourceTree = ""; }; + 5FC605D038FAE45D56C62324 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es"; path = "es.lproj/Localizable.strings"; sourceTree = ""; }; + 720DE8B40E44CEEA1EEAE776 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es"; path = "es.lproj/InfoPlist.strings"; sourceTree = ""; }; + ECF37730219BF785CADEB7DD /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ja"; path = "ja.lproj/MainMenu.strings"; sourceTree = ""; }; + BB8994EC2BB20DF36B363D92 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ja"; path = "ja.lproj/Localizable.strings"; sourceTree = ""; }; + 4196B5E48A3660EBE486DDC7 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ja"; path = "ja.lproj/InfoPlist.strings"; sourceTree = ""; }; + C20AD699676B01299D1C52C8 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ko"; path = "ko.lproj/MainMenu.strings"; sourceTree = ""; }; + DE1FCA6F80BE4E1EBAF1E8BF /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ko"; path = "ko.lproj/Localizable.strings"; sourceTree = ""; }; + 1CF19F1D60198D50721667D9 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ko"; path = "ko.lproj/InfoPlist.strings"; sourceTree = ""; }; + C3BF552A7D90FDE613831B81 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/MainMenu.strings"; sourceTree = ""; }; + 4D6A84E5CF6B7725ED6B20B0 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; + E2C7A59B2E99B3078FA94CEA /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/InfoPlist.strings"; sourceTree = ""; }; + C9881A20394A8F3F242CE3BB /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ru"; path = "ru.lproj/MainMenu.strings"; sourceTree = ""; }; + 5B1BFD6531CF2CF6919013C5 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ru"; path = "ru.lproj/Localizable.strings"; sourceTree = ""; }; + EB58FF0018DFC6B1A1C87090 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "ru"; path = "ru.lproj/InfoPlist.strings"; sourceTree = ""; }; + B4BD7A750F60B666A6876566 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "it"; path = "it.lproj/MainMenu.strings"; sourceTree = ""; }; + 13A49C48BC956BF2F4ECA4CC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "it"; path = "it.lproj/Localizable.strings"; sourceTree = ""; }; + DEEF49579071E1CCD97763FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "it"; path = "it.lproj/InfoPlist.strings"; sourceTree = ""; }; 1CC1DF7D1BE5068A00FB8FE4 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CACFArray.cpp; path = PublicUtility/CACFArray.cpp; sourceTree = ""; }; 1CC1DF7E1BE5068A00FB8FE4 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CACFArray.h; path = PublicUtility/CACFArray.h; sourceTree = ""; }; 1CC1DF7F1BE5068A00FB8FE4 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CACFDictionary.cpp; path = PublicUtility/CACFDictionary.cpp; sourceTree = ""; }; @@ -1005,6 +1053,14 @@ en, Base, "zh-Hans", + "fr", + "de", + "es", + "ja", + "ko", + "pt-PT", + "ru", + "it", ); mainGroup = 1CB8B32D1BBA75EF000E2DD1; productRefGroup = 1CB8B3371BBA75EF000E2DD1 /* Products */; @@ -1029,6 +1085,30 @@ 54B4C5E3572841DF28F3802E /* MainMenu.strings in Resources */, 76A640B2E900D1C3B63BB285 /* Localizable.strings in Resources */, FD768A06404605B607F51C6F /* InfoPlist.strings in Resources */, + 13EAEB14241B91BB6074F3F1 /* MainMenu.strings in Resources */, + FCEE388AE7C880699A9971C3 /* Localizable.strings in Resources */, + E93C84AE680ABEF66D3815E2 /* InfoPlist.strings in Resources */, + 274E8291A15D882DAAD5E76D /* MainMenu.strings in Resources */, + DB0F369FC1837B407646311E /* Localizable.strings in Resources */, + A308DD96FBAB3338C214050C /* InfoPlist.strings in Resources */, + 13A0F31EB47DC1FC5ADEDB14 /* MainMenu.strings in Resources */, + 05545EF8110CCA1D43F2D705 /* Localizable.strings in Resources */, + 947CF8E2BE66084CED0E4122 /* InfoPlist.strings in Resources */, + EE99E7578190CEE9D41280B0 /* MainMenu.strings in Resources */, + 770A5322DE80857326A95F52 /* Localizable.strings in Resources */, + ECDBB8E3E6670D8FB1AB8074 /* InfoPlist.strings in Resources */, + 0CE4DD360C34C8BAE3EEC025 /* MainMenu.strings in Resources */, + 4D677079EE956DBDE7921B30 /* Localizable.strings in Resources */, + 223938DC17F93ADC756CCE34 /* InfoPlist.strings in Resources */, + 590D8CBA706FC3702A9CEFAC /* MainMenu.strings in Resources */, + D79E823108B935353D139B16 /* Localizable.strings in Resources */, + BE4215A7F32CF34CFE9A98D9 /* InfoPlist.strings in Resources */, + 880A2BDCECCD09CBA5DCEBF8 /* MainMenu.strings in Resources */, + 228DC4B32D59B1CD23D1CA30 /* Localizable.strings in Resources */, + C09EABDF4FF3C24B34F64CDE /* InfoPlist.strings in Resources */, + 7FEC6A5C4AB5C79E5D434DCF /* MainMenu.strings in Resources */, + EE38BA28776F2D09B05BC243 /* Localizable.strings in Resources */, + D2169A8D435E1A1BC0F857F3 /* InfoPlist.strings in Resources */, 1C533C7A1EED28B700270802 /* uninstall.sh in Resources */, 1C8D830E2042F25C00A838F2 /* GooglePlayMusicDesktopPlayer.js in Resources */, 1C533C801EF532CA00270802 /* _uninstall-non-interactive.sh in Resources */, @@ -1374,6 +1454,14 @@ children = ( 1CB8B3431BBA75EF000E2DD1 /* Base */, 2FBC0BF0BB27A47E8E393C57 /* zh-Hans */, + EBB6BABC4F25F9FEF8054733 /* fr */, + AB7575666B5BD8E5B423FD56 /* de */, + D96E39BE0E0E12FAB083812E /* es */, + ECF37730219BF785CADEB7DD /* ja */, + C20AD699676B01299D1C52C8 /* ko */, + C3BF552A7D90FDE613831B81 /* pt-PT */, + C9881A20394A8F3F242CE3BB /* ru */, + B4BD7A750F60B666A6876566 /* it */, ); name = MainMenu.xib; sourceTree = ""; @@ -1382,6 +1470,14 @@ isa = PBXVariantGroup; children = ( CA1B9EDD18951796EBB17651 /* zh-Hans */, + 29F20DF4DE9A1394993C1878 /* fr */, + ADDD3466AE98B69CD8E7D37D /* de */, + 5FC605D038FAE45D56C62324 /* es */, + BB8994EC2BB20DF36B363D92 /* ja */, + DE1FCA6F80BE4E1EBAF1E8BF /* ko */, + 4D6A84E5CF6B7725ED6B20B0 /* pt-PT */, + 5B1BFD6531CF2CF6919013C5 /* ru */, + 13A49C48BC956BF2F4ECA4CC /* it */, ); name = Localizable.strings; sourceTree = ""; @@ -1390,6 +1486,14 @@ isa = PBXVariantGroup; children = ( 6AEF75D0FCD2A6B6CFE07EF6 /* zh-Hans */, + E2D75B686D1874D8E0608DE1 /* fr */, + 71A3CDB3A3EE610C42F919E2 /* de */, + 720DE8B40E44CEEA1EEAE776 /* es */, + 4196B5E48A3660EBE486DDC7 /* ja */, + 1CF19F1D60198D50721667D9 /* ko */, + E2C7A59B2E99B3078FA94CEA /* pt-PT */, + EB58FF0018DFC6B1A1C87090 /* ru */, + DEEF49579071E1CCD97763FF /* it */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/BGMApp/BGMApp/Info.plist b/BGMApp/BGMApp/Info.plist index 959c6715..36a8c64f 100644 --- a/BGMApp/BGMApp/Info.plist +++ b/BGMApp/BGMApp/Info.plist @@ -10,6 +10,14 @@ en zh-Hans + fr + de + es + ja + ko + pt-PT + ru + it CFBundleExecutable $(EXECUTABLE_NAME) diff --git a/BGMApp/BGMApp/de.lproj/InfoPlist.strings b/BGMApp/BGMApp/de.lproj/InfoPlist.strings new file mode 100644 index 00000000..416787f2 --- /dev/null +++ b/BGMApp/BGMApp/de.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "Background Music muss deinen Musik-Player steuern können, wenn er automatisch pausiert werden soll."; + +"NSMicrophoneUsageDescription" = "Das virtuelle Audiogerät „Background Music“ sendet Systemaudio über ein virtuelles Eingabegerät an Background Music (die App)."; diff --git a/BGMApp/BGMApp/de.lproj/Localizable.strings b/BGMApp/BGMApp/de.lproj/Localizable.strings new file mode 100644 index 00000000..21e067b9 --- /dev/null +++ b/BGMApp/BGMApp/de.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music benötigt die Berechtigung, Mikrofone zu verwenden."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "Es verwendet ein virtuelles Mikrofon, um auf die Systemaudiodaten zuzugreifen.\n\nDu kannst die Berechtigung erteilen, indem du zu Systemeinstellungen > Sicherheit und Datenschutz > Mikrofon gehst und das Kästchen für Background Music aktivierst."; + +"Could not set the Background Music device as yourdefault audio device." = "Das Background Music-Gerät konnte nicht als Standard-Audiogerät festgelegt werden."; + +"You might be able to change it yourself." = "Möglicherweise kannst du es selbst ändern."; + +"Failed to reset your system's audio output device." = "Das Audioausgabegerät deines Systems konnte nicht zurückgesetzt werden."; + +"You'll have to change it yourself to get audio working again." = "Du musst es selbst ändern, damit die Audiowiedergabe wieder funktioniert."; + +"Could not find the Background Music virtual audio device." = "Das virtuelle Audiogerät von Background Music konnte nicht gefunden werden."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Stelle sicher, dass du Background Music Device.driver in /Library/Audio/Plug-Ins/HAL installiert und coreaudiod neu gestartet hast (z. B. mit „sudo killall coreaudiod“)."; + +"Failed to set the output device." = "Das Ausgabegerät konnte nicht festgelegt werden."; + +"Could not start the device '%@'. (Error: %ld)" = "Das Gerät „%@“ konnte nicht gestartet werden. (Fehler: %ld)"; + +"Could not find an audio output device." = "Es konnte kein Audioausgabegerät gefunden werden."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "Falls doch eines installiert ist, handelt es sich wahrscheinlich um einen Fehler. Das tut uns leid. Melde das Problem gerne auf GitHub."; + +"Error connecting to BGMXPCHelper." = "Fehler beim Verbinden mit BGMXPCHelper."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "Stelle sicher, dass BGMXPCHelper installiert ist. Anleitungen findest du in der Datei README.md.\n\nBackground Music funktioniert eventuell trotzdem, aber nicht so gut, wie es könnte."; + +"\n\nDetails:\n" = "\n\nDetails:\n"; + +"OK" = "OK"; + +"Open Sound in System Preferences" = "Ton in Systemeinstellungen öffnen"; + +"Unmute" = "Stummschaltung aufheben"; + +"Mute" = "Stummschalten"; + +"Auto-pause %@" = "%@ automatisch pausieren"; + +"%@ doesn't appear to be running." = "%@ scheint nicht ausgeführt zu werden."; + +"Failed to set %@ as the output device." = "%@ konnte nicht als Ausgabegerät festgelegt werden."; + +"This is probably a bug. Feel free to report it." = "Das ist wahrscheinlich ein Fehler. Melde ihn gerne."; + +"Auto-pause Delays" = "Verzögerungen für automatische Pause"; + +"Pause Delay:" = "Pausenverzögerung:"; + +"Max Unpause:" = "Max. Wiedergabeverzögerung:"; + +"Off" = "Aus"; + +"Version %@" = "Version %@"; + +"Error: could not open license file." = "Fehler: Lizenzdatei konnte nicht geöffnet werden."; + +"Output Device" = "Ausgabegerät"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "Lautstärke von Warntönen, Benachrichtigungstönen usw. Meist kurz. Kann von jeder App abgespielt werden."; + +"More Apps" = "Weitere Apps"; + +"More options" = "Weitere Optionen"; diff --git a/BGMApp/BGMApp/de.lproj/MainMenu.strings b/BGMApp/BGMApp/de.lproj/MainMenu.strings new file mode 100644 index 00000000..9fa45f8f --- /dev/null +++ b/BGMApp/BGMApp/de.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "Balance"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "Automatische Pause"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "Balance"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "Balance"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "Lautstärke"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Background Music Hauptmenü"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "Lautstärken"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "Ausgabelautstärke"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "Legt die Lautstärke deines Audioausgabegeräts fest."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Background Music Logo"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "Balance"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "Systemtöne"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "Lautstärkesymbol"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "Einstellungen"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "Menüleistensymbol"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "Lizenziert unter der GPL v2 oder einer späteren Version."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "Version 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "Lautstärke"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "Einstellungen"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Background Music beenden"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "Über Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Background Music Mitwirkende"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "App-Name hier"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "Ausgabegerät"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "Lautstärke der Systemtöne"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "Lautstärke von Warntönen, Benachrichtigungstönen usw. Meist kurz. Kann von jeder App abgespielt werden."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "Das AirPlay-Logo ist eine Marke von Apple Inc."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "Aktivieren, um deinen ausgewählten Musik-Player automatisch zu pausieren, wenn eine andere App mit der Audiowiedergabe beginnt."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "Musik automatisch pausieren"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "Zeichnet detaillierte Meldungen zur Fehlerdiagnose auf. Suche in Konsole.app nach „bgm“ oder „background music“."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "Debug-Protokollierung"; diff --git a/BGMApp/BGMApp/es.lproj/InfoPlist.strings b/BGMApp/BGMApp/es.lproj/InfoPlist.strings new file mode 100644 index 00000000..09efdb5e --- /dev/null +++ b/BGMApp/BGMApp/es.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "Background Music necesita controlar tu reproductor de música si quieres que lo pause automáticamente."; + +"NSMicrophoneUsageDescription" = "El dispositivo de audio virtual «Background Music» envía el audio del sistema a Background Music (la app) a través de un dispositivo de entrada virtual."; diff --git a/BGMApp/BGMApp/es.lproj/Localizable.strings b/BGMApp/BGMApp/es.lproj/Localizable.strings new file mode 100644 index 00000000..6773c0c2 --- /dev/null +++ b/BGMApp/BGMApp/es.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music necesita permiso para usar micrófonos."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "Utiliza un micrófono virtual para acceder al audio de tu sistema.\n\nPuedes conceder el permiso yendo a Preferencias del Sistema > Seguridad y privacidad > Micrófono y marcando la casilla de Background Music."; + +"Could not set the Background Music device as yourdefault audio device." = "No se pudo establecer el dispositivo Background Music como dispositivo de audio predeterminado."; + +"You might be able to change it yourself." = "Es posible que puedas cambiarlo tú mismo."; + +"Failed to reset your system's audio output device." = "No se pudo restablecer el dispositivo de salida de audio de tu sistema."; + +"You'll have to change it yourself to get audio working again." = "Tendrás que cambiarlo tú mismo para que el audio vuelva a funcionar."; + +"Could not find the Background Music virtual audio device." = "No se pudo encontrar el dispositivo de audio virtual de Background Music."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Asegúrate de haber instalado Background Music Device.driver en /Library/Audio/Plug-Ins/HAL y de haber reiniciado coreaudiod (por ejemplo, con «sudo killall coreaudiod»)."; + +"Failed to set the output device." = "No se pudo establecer el dispositivo de salida."; + +"Could not start the device '%@'. (Error: %ld)" = "No se pudo iniciar el dispositivo «%@». (Error: %ld)"; + +"Could not find an audio output device." = "No se pudo encontrar un dispositivo de salida de audio."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "Si tienes uno instalado, probablemente se trate de un error. Lo sentimos. No dudes en abrir un issue en GitHub."; + +"Error connecting to BGMXPCHelper." = "Error al conectar con BGMXPCHelper."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "Asegúrate de tener instalado BGMXPCHelper. Encontrarás las instrucciones en el archivo README.md.\n\nBackground Music podría seguir funcionando, pero no tan bien como debería."; + +"\n\nDetails:\n" = "\n\nDetalles:\n"; + +"OK" = "Aceptar"; + +"Open Sound in System Preferences" = "Abrir Sonido en Preferencias del Sistema"; + +"Unmute" = "Activar sonido"; + +"Mute" = "Silenciar"; + +"Auto-pause %@" = "Pausar %@ automáticamente"; + +"%@ doesn't appear to be running." = "%@ no parece estar en ejecución."; + +"Failed to set %@ as the output device." = "No se pudo establecer %@ como dispositivo de salida."; + +"This is probably a bug. Feel free to report it." = "Probablemente se trate de un error. No dudes en informarlo."; + +"Auto-pause Delays" = "Retrasos de pausa automática"; + +"Pause Delay:" = "Retraso de pausa:"; + +"Max Unpause:" = "Retraso máx. de reanudación:"; + +"Off" = "Desactivado"; + +"Version %@" = "Versión %@"; + +"Error: could not open license file." = "Error: no se pudo abrir el archivo de licencia."; + +"Output Device" = "Dispositivo de salida"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "Volumen de las alertas, sonidos de notificación, etc. Suele ser breve. Puede reproducirlo cualquier app."; + +"More Apps" = "Más aplicaciones"; + +"More options" = "Más opciones"; diff --git a/BGMApp/BGMApp/es.lproj/MainMenu.strings b/BGMApp/BGMApp/es.lproj/MainMenu.strings new file mode 100644 index 00000000..148364f0 --- /dev/null +++ b/BGMApp/BGMApp/es.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "Balance"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "Pausa automática"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "Balance"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "Balance"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "Volumen"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Menú principal de Background Music"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "Volúmenes"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "Volumen de salida"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "Ajusta el volumen de tu dispositivo de salida de audio."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Logotipo de Background Music"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "Balance"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "Sonidos del sistema"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "Icono de volumen"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "Preferencias"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "Icono de la barra de menús"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "Distribuido bajo la licencia GPL v2 o cualquier versión posterior."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "Versión 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "Volumen"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "Preferencias"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Salir de Background Music"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "Acerca de Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Colaboradores de Background Music"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "Nombre de la app aquí"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "Dispositivo de salida"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "Volumen de los sonidos del sistema"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "Volumen de las alertas, sonidos de notificación, etc. Suele ser breve. Puede reproducirlo cualquier app."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "El logotipo de AirPlay es una marca comercial de Apple Inc."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "Actívalo para pausar automáticamente el reproductor de música seleccionado cuando otra app empiece a reproducir audio."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "Pausar música automáticamente"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "Registra mensajes detallados para ayudar a diagnosticar errores. Busca «bgm» o «background music» en Consola.app."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "Registro de depuración"; diff --git a/BGMApp/BGMApp/fr.lproj/InfoPlist.strings b/BGMApp/BGMApp/fr.lproj/InfoPlist.strings new file mode 100644 index 00000000..6e760df1 --- /dev/null +++ b/BGMApp/BGMApp/fr.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "Background Music a besoin de contrôler votre lecteur de musique pour pouvoir le mettre automatiquement en pause."; + +"NSMicrophoneUsageDescription" = "Le périphérique audio virtuel « Background Music » envoie l'audio système à Background Music (l'application) via un périphérique d'entrée virtuel."; diff --git a/BGMApp/BGMApp/fr.lproj/Localizable.strings b/BGMApp/BGMApp/fr.lproj/Localizable.strings new file mode 100644 index 00000000..a87a6866 --- /dev/null +++ b/BGMApp/BGMApp/fr.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music a besoin de l'autorisation d'utiliser les microphones."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "Il utilise un microphone virtuel pour accéder à l'audio de votre système.\n\nVous pouvez accorder cette autorisation dans Préférences Système > Sécurité et confidentialité > Microphone, en cochant la case pour Background Music."; + +"Could not set the Background Music device as yourdefault audio device." = "Impossible de définir le périphérique Background Music comme périphérique audio par défaut."; + +"You might be able to change it yourself." = "Vous pourrez peut-être le modifier vous-même."; + +"Failed to reset your system's audio output device." = "Échec de la réinitialisation du périphérique de sortie audio de votre système."; + +"You'll have to change it yourself to get audio working again." = "Vous devrez le modifier vous-même pour que l'audio fonctionne à nouveau."; + +"Could not find the Background Music virtual audio device." = "Impossible de trouver le périphérique audio virtuel Background Music."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Assurez-vous d'avoir installé Background Music Device.driver dans /Library/Audio/Plug-Ins/HAL et d'avoir redémarré coreaudiod (par exemple avec « sudo killall coreaudiod »)."; + +"Failed to set the output device." = "Échec de la définition du périphérique de sortie."; + +"Could not start the device '%@'. (Error: %ld)" = "Impossible de démarrer le périphérique « %@ ». (Erreur : %ld)"; + +"Could not find an audio output device." = "Impossible de trouver un périphérique de sortie audio."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "Si vous en avez bien un installé, il s'agit probablement d'un bug. Désolé pour la gêne occasionnée. N'hésitez pas à signaler un problème sur GitHub."; + +"Error connecting to BGMXPCHelper." = "Erreur de connexion à BGMXPCHelper."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "Assurez-vous d'avoir installé BGMXPCHelper. Les instructions se trouvent dans le fichier README.md.\n\nBackground Music pourrait quand même fonctionner, mais pas aussi bien que prévu."; + +"\n\nDetails:\n" = "\n\nDétails :\n"; + +"OK" = "OK"; + +"Open Sound in System Preferences" = "Ouvrir Son dans les Préférences Système"; + +"Unmute" = "Réactiver le son"; + +"Mute" = "Couper le son"; + +"Auto-pause %@" = "Pause automatique de %@"; + +"%@ doesn't appear to be running." = "%@ ne semble pas être en cours d'exécution."; + +"Failed to set %@ as the output device." = "Échec de la définition de %@ comme périphérique de sortie."; + +"This is probably a bug. Feel free to report it." = "Il s'agit probablement d'un bug. N'hésitez pas à le signaler."; + +"Auto-pause Delays" = "Délais de pause automatique"; + +"Pause Delay:" = "Délai de pause :"; + +"Max Unpause:" = "Délai max. de reprise :"; + +"Off" = "Désactivé"; + +"Version %@" = "Version %@"; + +"Error: could not open license file." = "Erreur : impossible d'ouvrir le fichier de licence."; + +"Output Device" = "Périphérique de sortie"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "Volume des alertes, sons de notification, etc. Généralement bref. Peut être utilisé par n'importe quelle application."; + +"More Apps" = "Plus d'applications"; + +"More options" = "Plus d'options"; diff --git a/BGMApp/BGMApp/fr.lproj/MainMenu.strings b/BGMApp/BGMApp/fr.lproj/MainMenu.strings new file mode 100644 index 00000000..0980c7d0 --- /dev/null +++ b/BGMApp/BGMApp/fr.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "Balance"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "Pause automatique"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "Balance"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "Balance"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "Volume"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Menu principal de Background Music"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "Volumes"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "Volume de sortie"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "Règle le volume de votre périphérique de sortie audio."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Logo de Background Music"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "Balance"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "Sons système"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "Icône de volume"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "Préférences"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "Icône de la barre de menus"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "Distribué sous licence GPL v2 ou toute version ultérieure."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "Version 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "Volume"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "Préférences"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Quitter Background Music"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "À propos de Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Contributeurs de Background Music"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "Nom de l'application ici"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "Périphérique de sortie"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "Volume des sons système"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "Volume des alertes, sons de notification, etc. Généralement bref. Peut être utilisé par n'importe quelle application."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "Le logo AirPlay est une marque déposée d'Apple Inc."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "Activez cette option pour mettre automatiquement en pause le lecteur de musique sélectionné lorsqu'une autre application commence à diffuser du son."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "Pause automatique de la musique"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "Enregistre des messages détaillés pour aider à diagnostiquer les bugs. Recherchez « bgm » ou « background music » dans Console.app."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "Journalisation de débogage"; diff --git a/BGMApp/BGMApp/it.lproj/InfoPlist.strings b/BGMApp/BGMApp/it.lproj/InfoPlist.strings new file mode 100644 index 00000000..5d6dc2b1 --- /dev/null +++ b/BGMApp/BGMApp/it.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "Background Music deve poter controllare il tuo lettore musicale per metterlo automaticamente in pausa."; + +"NSMicrophoneUsageDescription" = "Il dispositivo audio virtuale \"Background Music\" invia l'audio di sistema a Background Music (l'app) tramite un dispositivo di input virtuale."; diff --git a/BGMApp/BGMApp/it.lproj/Localizable.strings b/BGMApp/BGMApp/it.lproj/Localizable.strings new file mode 100644 index 00000000..91555e25 --- /dev/null +++ b/BGMApp/BGMApp/it.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music necessita dell'autorizzazione per utilizzare i microfoni."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "Utilizza un microfono virtuale per accedere all'audio di sistema.\n\nPuoi concedere l'autorizzazione andando su Preferenze di Sistema > Sicurezza e Privacy > Microfono e selezionando la casella per Background Music."; + +"Could not set the Background Music device as yourdefault audio device." = "Impossibile impostare il dispositivo Background Music come dispositivo audio predefinito."; + +"You might be able to change it yourself." = "Potresti riuscire a modificarlo tu stesso."; + +"Failed to reset your system's audio output device." = "Impossibile ripristinare il dispositivo di uscita audio del sistema."; + +"You'll have to change it yourself to get audio working again." = "Dovrai modificarlo tu stesso per far funzionare di nuovo l'audio."; + +"Could not find the Background Music virtual audio device." = "Impossibile trovare il dispositivo audio virtuale di Background Music."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Assicurati di aver installato Background Music Device.driver in /Library/Audio/Plug-Ins/HAL e di aver riavviato coreaudiod (ad es. con \"sudo killall coreaudiod\")."; + +"Failed to set the output device." = "Impossibile impostare il dispositivo di uscita."; + +"Could not start the device '%@'. (Error: %ld)" = "Impossibile avviare il dispositivo \"%@\". (Errore: %ld)"; + +"Could not find an audio output device." = "Impossibile trovare un dispositivo di uscita audio."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "Se ne hai effettivamente uno installato, probabilmente si tratta di un bug. Ci scusiamo per l'inconveniente. Sentiti libero di segnalarlo su GitHub."; + +"Error connecting to BGMXPCHelper." = "Errore di connessione a BGMXPCHelper."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "Assicurati di avere BGMXPCHelper installato. Le istruzioni si trovano nel file README.md.\n\nBackground Music potrebbe comunque funzionare, ma non altrettanto bene."; + +"\n\nDetails:\n" = "\n\nDettagli:\n"; + +"OK" = "OK"; + +"Open Sound in System Preferences" = "Apri Suono nelle Preferenze di Sistema"; + +"Unmute" = "Riattiva audio"; + +"Mute" = "Disattiva audio"; + +"Auto-pause %@" = "Pausa automatica di %@"; + +"%@ doesn't appear to be running." = "%@ non sembra essere in esecuzione."; + +"Failed to set %@ as the output device." = "Impossibile impostare %@ come dispositivo di uscita."; + +"This is probably a bug. Feel free to report it." = "Probabilmente si tratta di un bug. Sentiti libero di segnalarlo."; + +"Auto-pause Delays" = "Ritardi della pausa automatica"; + +"Pause Delay:" = "Ritardo pausa:"; + +"Max Unpause:" = "Ripresa max:"; + +"Off" = "Disattivato"; + +"Version %@" = "Versione %@"; + +"Error: could not open license file." = "Errore: impossibile aprire il file della licenza."; + +"Output Device" = "Dispositivo di uscita"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "Volume degli avvisi, suoni di notifica, ecc. Solitamente brevi. Possono essere riprodotti da qualsiasi app."; + +"More Apps" = "Altre app"; + +"More options" = "Altre opzioni"; diff --git a/BGMApp/BGMApp/it.lproj/MainMenu.strings b/BGMApp/BGMApp/it.lproj/MainMenu.strings new file mode 100644 index 00000000..d2227222 --- /dev/null +++ b/BGMApp/BGMApp/it.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "Bilanciamento"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "Pausa automatica"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "Bilanciamento"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "Bilanciamento"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "Volume"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Menu principale di Background Music"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "Volumi"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "Volume di uscita"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "Imposta il volume del dispositivo di uscita audio."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Logo di Background Music"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "Bilanciamento"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "Suoni di sistema"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "Icona del volume"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "Preferenze"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "Icona della barra dei menu"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "Concesso in licenza secondo GPL v2 o versione successiva."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "Versione 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "Volume"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "Preferenze"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Esci da Background Music"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "Informazioni su Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Collaboratori di Background Music"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "Nome dell'app qui"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "Dispositivo di uscita"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "Volume dei suoni di sistema"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "Volume degli avvisi, suoni di notifica, ecc. Solitamente brevi. Possono essere riprodotti da qualsiasi app."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "Il logo AirPlay è un marchio di Apple Inc."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "Attiva per mettere automaticamente in pausa il lettore musicale selezionato quando un'altra app inizia a riprodurre audio."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "Pausa automatica della musica"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "Registra messaggi dettagliati per aiutare a diagnosticare i bug. Cerca \"bgm\" o \"background music\" in Console.app."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "Log di debug"; diff --git a/BGMApp/BGMApp/ja.lproj/InfoPlist.strings b/BGMApp/BGMApp/ja.lproj/InfoPlist.strings new file mode 100644 index 00000000..e3c80e3f --- /dev/null +++ b/BGMApp/BGMApp/ja.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "音楽の自動一時停止のために、Background Music は音楽プレーヤーアプリを制御する必要があります。"; + +"NSMicrophoneUsageDescription" = "仮想オーディオデバイス「Background Music」は、仮想入力デバイスを通じてシステム音声を Background Music(アプリ)に送信します。"; diff --git a/BGMApp/BGMApp/ja.lproj/Localizable.strings b/BGMApp/BGMApp/ja.lproj/Localizable.strings new file mode 100644 index 00000000..6de7d896 --- /dev/null +++ b/BGMApp/BGMApp/ja.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music はマイクを使用する権限が必要です。"; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "システムの音声にアクセスするために仮想マイクを使用します。\n\nシステム環境設定 > セキュリティとプライバシー > マイク で Background Music にチェックを入れることで、権限を許可できます。"; + +"Could not set the Background Music device as yourdefault audio device." = "Background Music デバイスをデフォルトのオーディオ出力デバイスに設定できませんでした。"; + +"You might be able to change it yourself." = "ご自身で変更できる場合があります。"; + +"Failed to reset your system's audio output device." = "システムのオーディオ出力デバイスをリセットできませんでした。"; + +"You'll have to change it yourself to get audio working again." = "音声を再び動作させるには、ご自身で変更する必要があります。"; + +"Could not find the Background Music virtual audio device." = "Background Music の仮想オーディオデバイスが見つかりませんでした。"; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Background Music Device.driver が /Library/Audio/Plug-Ins/HAL にインストールされていること、また coreaudiod を再起動したことを確認してください(例:「sudo killall coreaudiod」)。"; + +"Failed to set the output device." = "出力デバイスを設定できませんでした。"; + +"Could not start the device '%@'. (Error: %ld)" = "デバイス「%@」を起動できませんでした。(エラー: %ld)"; + +"Could not find an audio output device." = "オーディオ出力デバイスが見つかりませんでした。"; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "実際にインストールされている場合、これはおそらく不具合です。申し訳ありません。GitHub で issue を報告してください。"; + +"Error connecting to BGMXPCHelper." = "BGMXPCHelper への接続中にエラーが発生しました。"; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "BGMXPCHelper がインストールされていることを確認してください。手順は README.md ファイルに記載されています。\n\nBackground Music は動作する可能性がありますが、本来の性能は発揮できません。"; + +"\n\nDetails:\n" = "\n\n詳細:\n"; + +"OK" = "OK"; + +"Open Sound in System Preferences" = "システム環境設定の「サウンド」を開く"; + +"Unmute" = "ミュート解除"; + +"Mute" = "ミュート"; + +"Auto-pause %@" = "%@ を自動一時停止"; + +"%@ doesn't appear to be running." = "%@ は実行されていないようです。"; + +"Failed to set %@ as the output device." = "%@ を出力デバイスに設定できませんでした。"; + +"This is probably a bug. Feel free to report it." = "これはおそらく不具合です。ご報告いただけると助かります。"; + +"Auto-pause Delays" = "自動一時停止の遅延"; + +"Pause Delay:" = "一時停止までの遅延:"; + +"Max Unpause:" = "再開までの最大遅延:"; + +"Off" = "オフ"; + +"Version %@" = "バージョン %@"; + +"Error: could not open license file." = "エラー:ライセンスファイルを開けませんでした。"; + +"Output Device" = "出力デバイス"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "警告音や通知音などの音量です。通常は短く、どのアプリからでも再生できます。"; + +"More Apps" = "その他のアプリ"; + +"More options" = "その他のオプション"; diff --git a/BGMApp/BGMApp/ja.lproj/MainMenu.strings b/BGMApp/BGMApp/ja.lproj/MainMenu.strings new file mode 100644 index 00000000..f20f5044 --- /dev/null +++ b/BGMApp/BGMApp/ja.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "パン"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "自動一時停止"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "パン"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "パン"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "音量"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Background Music メインメニュー"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "音量"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "出力音量"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "オーディオ出力デバイスの音量を設定します。"; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Background Music ロゴ"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "パン"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "システムサウンド"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "音量アイコン"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "環境設定"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "メニューバーアイコン"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "GPL v2 またはそれ以降のバージョンの下でライセンスされています。"; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "バージョン 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "音量"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "環境設定"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Background Music を終了"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "Background Music について"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Background Music コントリビューター"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "ここにアプリ名"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "出力デバイス"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "システムサウンドの音量"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "警告音や通知音などの音量です。通常は短く、どのアプリからでも再生できます。"; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "AirPlay ロゴは Apple Inc. の商標です。"; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "有効にすると、別のアプリが音声の再生を開始したときに、選択した音楽プレーヤーを自動的に一時停止します。"; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "音楽の自動一時停止"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "バグの診断に役立つ詳細なメッセージを記録します。コンソール.app で「bgm」または「background music」を検索してください。"; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "デバッグログ"; diff --git a/BGMApp/BGMApp/ko.lproj/InfoPlist.strings b/BGMApp/BGMApp/ko.lproj/InfoPlist.strings new file mode 100644 index 00000000..a9c1d877 --- /dev/null +++ b/BGMApp/BGMApp/ko.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "음악을 자동으로 일시정지하려면 Background Music이 음악 플레이어 앱을 제어해야 합니다."; + +"NSMicrophoneUsageDescription" = "가상 오디오 장치인 \"Background Music\"은 가상 입력 장치를 통해 시스템 오디오를 Background Music(앱)으로 전송합니다."; diff --git a/BGMApp/BGMApp/ko.lproj/Localizable.strings b/BGMApp/BGMApp/ko.lproj/Localizable.strings new file mode 100644 index 00000000..8b7740ed --- /dev/null +++ b/BGMApp/BGMApp/ko.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music은 마이크를 사용할 권한이 필요합니다."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "시스템 오디오에 접근하기 위해 가상 마이크를 사용합니다.\n\n시스템 환경설정 > 보안 및 개인정보 보호 > 마이크에서 Background Music 항목을 체크하여 권한을 부여할 수 있습니다."; + +"Could not set the Background Music device as yourdefault audio device." = "Background Music 장치를 기본 오디오 출력 장치로 설정할 수 없습니다."; + +"You might be able to change it yourself." = "직접 변경할 수 있을 수도 있습니다."; + +"Failed to reset your system's audio output device." = "시스템의 오디오 출력 장치를 재설정하지 못했습니다."; + +"You'll have to change it yourself to get audio working again." = "오디오가 다시 작동하도록 하려면 직접 변경해야 합니다."; + +"Could not find the Background Music virtual audio device." = "Background Music 가상 오디오 장치를 찾을 수 없습니다."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Background Music Device.driver가 /Library/Audio/Plug-Ins/HAL에 설치되어 있고 coreaudiod를 재시작했는지 확인하세요(예: \"sudo killall coreaudiod\")."; + +"Failed to set the output device." = "출력 장치를 설정하지 못했습니다."; + +"Could not start the device '%@'. (Error: %ld)" = "장치 \"%@\"을(를) 시작할 수 없습니다. (오류: %ld)"; + +"Could not find an audio output device." = "오디오 출력 장치를 찾을 수 없습니다."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "실제로 설치되어 있다면 아마 버그일 것입니다. 불편을 드려 죄송합니다. GitHub에 이슈를 등록해 주세요."; + +"Error connecting to BGMXPCHelper." = "BGMXPCHelper에 연결하는 중 오류가 발생했습니다."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "BGMXPCHelper가 설치되어 있는지 확인하세요. 안내는 README.md 파일에 있습니다.\n\nBackground Music은 계속 작동할 수 있지만 제 성능을 내지 못할 수 있습니다."; + +"\n\nDetails:\n" = "\n\n세부 정보:\n"; + +"OK" = "확인"; + +"Open Sound in System Preferences" = "시스템 환경설정에서 소리 열기"; + +"Unmute" = "음소거 해제"; + +"Mute" = "음소거"; + +"Auto-pause %@" = "%@ 자동 일시정지"; + +"%@ doesn't appear to be running." = "%@이(가) 실행 중이 아닌 것 같습니다."; + +"Failed to set %@ as the output device." = "%@을(를) 출력 장치로 설정하지 못했습니다."; + +"This is probably a bug. Feel free to report it." = "아마 버그일 것입니다. 자유롭게 신고해 주세요."; + +"Auto-pause Delays" = "자동 일시정지 지연 시간"; + +"Pause Delay:" = "일시정지 지연 시간:"; + +"Max Unpause:" = "최대 재개 지연 시간:"; + +"Off" = "끄기"; + +"Version %@" = "버전 %@"; + +"Error: could not open license file." = "오류: 라이선스 파일을 열 수 없습니다."; + +"Output Device" = "출력 장치"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "경고음, 알림음 등의 볼륨입니다. 대개 짧으며 어떤 앱에서도 재생될 수 있습니다."; + +"More Apps" = "더 많은 앱"; + +"More options" = "추가 옵션"; diff --git a/BGMApp/BGMApp/ko.lproj/MainMenu.strings b/BGMApp/BGMApp/ko.lproj/MainMenu.strings new file mode 100644 index 00000000..9c5f099c --- /dev/null +++ b/BGMApp/BGMApp/ko.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "팬"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "자동 일시정지"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "팬"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "팬"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "볼륨"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Background Music 기본 메뉴"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "볼륨"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "출력 볼륨"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "오디오 출력 장치의 볼륨을 설정합니다."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Background Music 로고"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "팬"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "시스템 사운드"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "볼륨 아이콘"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "환경설정"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "메뉴 막대 아이콘"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "GPL v2 이상의 버전으로 라이선스가 부여됩니다."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "버전 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "볼륨"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "환경설정"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Background Music 종료"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "Background Music 정보"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Background Music 기여자"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "여기에 앱 이름"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "출력 장치"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "시스템 사운드 볼륨"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "경고음, 알림음 등의 볼륨입니다. 대개 짧으며 어떤 앱에서도 재생될 수 있습니다."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "AirPlay 로고는 Apple Inc.의 상표입니다."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "활성화하면 다른 앱이 오디오 재생을 시작할 때 선택한 음악 플레이어가 자동으로 일시정지됩니다."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "음악 자동 일시정지"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "버그 진단에 도움이 되는 자세한 메시지를 기록합니다. 콘솔.app에서 \"bgm\" 또는 \"background music\"을 검색하세요."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "디버그 로깅"; diff --git a/BGMApp/BGMApp/pt-PT.lproj/InfoPlist.strings b/BGMApp/BGMApp/pt-PT.lproj/InfoPlist.strings new file mode 100644 index 00000000..ded05cc3 --- /dev/null +++ b/BGMApp/BGMApp/pt-PT.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "O Background Music necessita de controlar o seu leitor de música caso pretenda pausá-lo automaticamente."; + +"NSMicrophoneUsageDescription" = "O dispositivo de áudio virtual \"Background Music\" envia o áudio do sistema para o Background Music (a aplicação) através de um dispositivo de entrada virtual."; diff --git a/BGMApp/BGMApp/pt-PT.lproj/Localizable.strings b/BGMApp/BGMApp/pt-PT.lproj/Localizable.strings new file mode 100644 index 00000000..5c72038c --- /dev/null +++ b/BGMApp/BGMApp/pt-PT.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "O Background Music necessita de autorização para utilizar microfones."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "Utiliza um microfone virtual para aceder ao áudio do seu sistema.\n\nPode conceder a autorização em Preferências do Sistema > Segurança e Privacidade > Microfone, ativando a caixa do Background Music."; + +"Could not set the Background Music device as yourdefault audio device." = "Não foi possível definir o dispositivo Background Music como o dispositivo de áudio predefinido."; + +"You might be able to change it yourself." = "Poderá conseguir alterá-lo você mesmo."; + +"Failed to reset your system's audio output device." = "Falha ao repor o dispositivo de saída de áudio do seu sistema."; + +"You'll have to change it yourself to get audio working again." = "Terá de o alterar você mesmo para que o áudio volte a funcionar."; + +"Could not find the Background Music virtual audio device." = "Não foi possível encontrar o dispositivo de áudio virtual do Background Music."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Certifique-se de que instalou o Background Music Device.driver em /Library/Audio/Plug-Ins/HAL e que reiniciou o coreaudiod (por exemplo, com \"sudo killall coreaudiod\")."; + +"Failed to set the output device." = "Falha ao definir o dispositivo de saída."; + +"Could not start the device '%@'. (Error: %ld)" = "Não foi possível iniciar o dispositivo \"%@\". (Erro: %ld)"; + +"Could not find an audio output device." = "Não foi possível encontrar um dispositivo de saída de áudio."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "Se tiver mesmo um instalado, isto é provavelmente um erro. Pedimos desculpa pelo incómodo. Sinta-se à vontade para reportar um problema no GitHub."; + +"Error connecting to BGMXPCHelper." = "Erro ao ligar ao BGMXPCHelper."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "Certifique-se de que tem o BGMXPCHelper instalado. As instruções estão no ficheiro README.md.\n\nO Background Music pode continuar a funcionar, mas não tão bem quanto poderia."; + +"\n\nDetails:\n" = "\n\nDetalhes:\n"; + +"OK" = "OK"; + +"Open Sound in System Preferences" = "Abrir Som nas Preferências do Sistema"; + +"Unmute" = "Reativar som"; + +"Mute" = "Silenciar"; + +"Auto-pause %@" = "Pausar %@ automaticamente"; + +"%@ doesn't appear to be running." = "O %@ não parece estar em execução."; + +"Failed to set %@ as the output device." = "Falha ao definir %@ como dispositivo de saída."; + +"This is probably a bug. Feel free to report it." = "Isto é provavelmente um erro. Sinta-se à vontade para o reportar."; + +"Auto-pause Delays" = "Atrasos da pausa automática"; + +"Pause Delay:" = "Atraso da pausa:"; + +"Max Unpause:" = "Retomada máx.:"; + +"Off" = "Desativado"; + +"Version %@" = "Versão %@"; + +"Error: could not open license file." = "Erro: não foi possível abrir o ficheiro de licença."; + +"Output Device" = "Dispositivo de saída"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "Volume dos alertas, sons de notificação, etc. Normalmente curtos. Podem ser reproduzidos por qualquer aplicação."; + +"More Apps" = "Mais aplicações"; + +"More options" = "Mais opções"; diff --git a/BGMApp/BGMApp/pt-PT.lproj/MainMenu.strings b/BGMApp/BGMApp/pt-PT.lproj/MainMenu.strings new file mode 100644 index 00000000..f7101aab --- /dev/null +++ b/BGMApp/BGMApp/pt-PT.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "Balanço"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "Pausa automática"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "Balanço"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "Balanço"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "Volume"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Menu principal do Background Music"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "Volumes"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "Volume de saída"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "Define o volume do seu dispositivo de saída de áudio."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Logótipo do Background Music"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "Balanço"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "Sons do sistema"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "Ícone de volume"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "Preferências"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "Ícone da barra de menus"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "Licenciado sob a GPL v2 ou qualquer versão posterior."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "Versão 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "Volume"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "Preferências"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Sair do Background Music"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "Sobre o Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Colaboradores do Background Music"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "Nome da aplicação aqui"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "Dispositivo de saída"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "Volume dos sons do sistema"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "Volume dos alertas, sons de notificação, etc. Normalmente curtos. Podem ser reproduzidos por qualquer aplicação."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "L"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "O logótipo AirPlay é uma marca registada da Apple Inc."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "R"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "Ative para pausar automaticamente o leitor de música selecionado quando outra aplicação começar a reproduzir áudio."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "Pausar música automaticamente"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "Regista mensagens detalhadas para ajudar a diagnosticar problemas. Procure por \"bgm\" ou \"background music\" na Consola.app."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "Registo de depuração"; diff --git a/BGMApp/BGMApp/ru.lproj/InfoPlist.strings b/BGMApp/BGMApp/ru.lproj/InfoPlist.strings new file mode 100644 index 00000000..b417bc30 --- /dev/null +++ b/BGMApp/BGMApp/ru.lproj/InfoPlist.strings @@ -0,0 +1,3 @@ +"NSAppleEventsUsageDescription" = "Background Music необходим доступ к управлению вашим музыкальным плеером, чтобы автоматически ставить его на паузу."; + +"NSMicrophoneUsageDescription" = "Виртуальное аудиоустройство «Background Music» передаёт системный звук в приложение Background Music через виртуальное устройство ввода."; diff --git a/BGMApp/BGMApp/ru.lproj/Localizable.strings b/BGMApp/BGMApp/ru.lproj/Localizable.strings new file mode 100644 index 00000000..1d73f983 --- /dev/null +++ b/BGMApp/BGMApp/ru.lproj/Localizable.strings @@ -0,0 +1,65 @@ +"Background Music needs permission to use microphones." = "Background Music необходимо разрешение на использование микрофонов."; + +"It uses a virtual microphone to access your system's audio.\n\nYou can grant the permission by going to System Preferences > Security and Privacy > Microphone and checking the box for Background Music." = "Для доступа к системному звуку используется виртуальный микрофон.\n\nВы можете предоставить разрешение в Системных настройках > Защита и безопасность > Микрофон, отметив флажок для Background Music."; + +"Could not set the Background Music device as yourdefault audio device." = "Не удалось назначить устройство Background Music устройством вывода звука по умолчанию."; + +"You might be able to change it yourself." = "Возможно, вы сможете изменить это самостоятельно."; + +"Failed to reset your system's audio output device." = "Не удалось сбросить устройство вывода звука системы."; + +"You'll have to change it yourself to get audio working again." = "Вам нужно будет изменить это самостоятельно, чтобы звук снова заработал."; + +"Could not find the Background Music virtual audio device." = "Не удалось найти виртуальное звуковое устройство Background Music."; + +"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")." = "Убедитесь, что Background Music Device.driver установлен в /Library/Audio/Plug-Ins/HAL и что coreaudiod был перезапущен (например, командой «sudo killall coreaudiod»)."; + +"Failed to set the output device." = "Не удалось задать устройство вывода."; + +"Could not start the device '%@'. (Error: %ld)" = "Не удалось запустить устройство «%@». (Ошибка: %ld)"; + +"Could not find an audio output device." = "Не удалось найти устройство вывода звука."; + +"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub." = "Если устройство действительно установлено, это, вероятно, ошибка в программе. Приносим извинения. Сообщите о проблеме на GitHub."; + +"Error connecting to BGMXPCHelper." = "Ошибка подключения к BGMXPCHelper."; + +"Make sure you have BGMXPCHelper installed. There are instructions in the README.md file.\n\nBackground Music might still work, but it won't work as well as it could." = "Убедитесь, что BGMXPCHelper установлен. Инструкции приведены в файле README.md.\n\nBackground Music может продолжить работу, но не так хорошо, как мог бы."; + +"\n\nDetails:\n" = "\n\nПодробности:\n"; + +"OK" = "ОК"; + +"Open Sound in System Preferences" = "Открыть «Звук» в Системных настройках"; + +"Unmute" = "Включить звук"; + +"Mute" = "Отключить звук"; + +"Auto-pause %@" = "Автопауза %@"; + +"%@ doesn't appear to be running." = "Похоже, %@ не запущен."; + +"Failed to set %@ as the output device." = "Не удалось назначить %@ устройством вывода."; + +"This is probably a bug. Feel free to report it." = "Это, вероятно, ошибка в программе. Сообщите о ней, пожалуйста."; + +"Auto-pause Delays" = "Задержки автопаузы"; + +"Pause Delay:" = "Задержка паузы:"; + +"Max Unpause:" = "Макс. задержка возобновления:"; + +"Off" = "Выкл."; + +"Version %@" = "Версия %@"; + +"Error: could not open license file." = "Ошибка: не удалось открыть файл лицензии."; + +"Output Device" = "Устройство вывода"; + +"Alerts, notification sounds, etc. Usually short. Can be played by any app." = "Громкость предупреждений, звуков уведомлений и т. д. Обычно короткие. Может воспроизводиться любым приложением."; + +"More Apps" = "Другие приложения"; + +"More options" = "Дополнительные параметры"; diff --git a/BGMApp/BGMApp/ru.lproj/MainMenu.strings b/BGMApp/BGMApp/ru.lproj/MainMenu.strings new file mode 100644 index 00000000..3b698dbd --- /dev/null +++ b/BGMApp/BGMApp/ru.lproj/MainMenu.strings @@ -0,0 +1,113 @@ +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "1lZ-hX-6Kl"; */ +"1lZ-hX-6Kl.ibShadowedToolTip" = "Баланс"; + +/* Class = "NSMenuItem"; title = "Auto-pause"; ObjectID = "2aT-t7-HGW"; */ +"2aT-t7-HGW.title" = "Автопауза"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibExternalAccessibilityDescription" = "Баланс"; + +/* Class = "NSSlider"; ibShadowedToolTip = "Pan"; ObjectID = "2mh-uO-kOV"; */ +"2mh-uO-kOV.ibShadowedToolTip" = "Баланс"; + +/* Class = "NSTextFieldCell"; title = "Volume"; ObjectID = "60O-ju-B5C"; */ +"60O-ju-B5C.title" = "Громкость"; + +/* Class = "NSMenu"; ibExternalAccessibilityDescription = "Background Music Main Menu"; ObjectID = "8AN-nh-rEe"; */ +"8AN-nh-rEe.ibExternalAccessibilityDescription" = "Главное меню Background Music"; + +/* Class = "NSMenuItem"; title = "Volumes"; ObjectID = "8PP-wA-Pae"; */ +"8PP-wA-Pae.title" = "Громкость"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Output Volume"; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityDescription" = "Громкость вывода"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Sets the volume of your audio output device."; ObjectID = "9Ru-Sc-dqC"; */ +"9Ru-Sc-dqC.ibExternalAccessibilityHelp" = "Задаёт громкость вашего устройства вывода звука."; + +/* Class = "NSMenuItem"; title = "Background Music Logo"; ObjectID = "9VF-qy-6fh"; */ +"9VF-qy-6fh.title" = "Логотип Background Music"; + +/* Class = "NSTextField"; ibShadowedToolTip = "Pan"; ObjectID = "9jc-9i-jw2"; */ +"9jc-9i-jw2.ibShadowedToolTip" = "Баланс"; + +/* Class = "NSTextFieldCell"; title = "System Sounds"; ObjectID = "ATK-L8-s8z"; */ +"ATK-L8-s8z.title" = "Системные звуки"; + +/* Class = "NSTextFieldCell"; title = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; ObjectID = "Ay8-8n-FHi"; */ +"Ay8-8n-FHi.title" = "// The version and copyright strings are replaced with
// the values from Info.plist in the setup code. These
// values are just placeholders/fallbacks.
//
// The icon image was being drawn with about 50%\n// opacity and I couldn't figure out why. The only 
// solution I found was to layer two copies of the icon
// on top of each other and add a black shadow (with no
// offset) to both.
"; + +/* Class = "NSMenuItem"; title = "Volume Icon"; ObjectID = "B47-O2-wd0"; */ +"B47-O2-wd0.title" = "Значок громкости"; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "BHb-uh-9Zm"; */ +"BHb-uh-9Zm.title" = "Настройки"; + +/* Class = "NSMenuItem"; title = "Status Bar Icon"; ObjectID = "CmD-ot-1wE"; */ +"CmD-ot-1wE.title" = "Значок в строке меню"; + +/* Class = "NSTextFieldCell"; title = "Background Music"; ObjectID = "Dw2-nu-eBQ"; */ +"Dw2-nu-eBQ.title" = "Background Music"; + +/* Class = "NSTextFieldCell"; title = "Licensed under GPL v2 or any later version."; ObjectID = "ETh-En-bzX"; */ +"ETh-En-bzX.title" = "Распространяется по лицензии GPL v2 или более поздней версии."; + +/* Class = "NSTextFieldCell"; title = "Version 0.5.0"; ObjectID = "FDH-7l-wFf"; */ +"FDH-7l-wFf.title" = "Версия 0.5.0"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "Volume"; ObjectID = "I1l-Ci-4md"; */ +"I1l-Ci-4md.ibExternalAccessibilityDescription" = "Громкость"; + +/* Class = "NSButtonCell"; title = "⌃"; ObjectID = "IXo-C7-3uE"; */ +"IXo-C7-3uE.title" = "⌃"; + +/* Class = "NSMenu"; title = "Preferences"; ObjectID = "Img-Dh-cpU"; */ +"Img-Dh-cpU.title" = "Настройки"; + +/* Class = "NSMenuItem"; title = "Quit Background Music"; ObjectID = "Nj2-gJ-DhW"; */ +"Nj2-gJ-DhW.title" = "Завершить Background Music"; + +/* Class = "NSMenuItem"; title = "About Background Music"; ObjectID = "R45-Vo-Eto"; */ +"R45-Vo-Eto.title" = "О программе Background Music"; + +/* Class = "NSTextFieldCell"; title = "Background Music contributors"; ObjectID = "UC2-MX-fML"; */ +"UC2-MX-fML.title" = "Участники разработки Background Music"; + +/* Class = "NSTextFieldCell"; title = "https://github.com/kyleneideck/BackgroundMusic"; ObjectID = "VOb-5X-o3R"; */ +"VOb-5X-o3R.title" = "https://github.com/kyleneideck/BackgroundMusic"; + +/* Class = "NSTextFieldCell"; title = "App name here"; ObjectID = "ZHF-ZW-Oqg"; */ +"ZHF-ZW-Oqg.title" = "Название приложения"; + +/* Class = "NSMenuItem"; title = "Output Device"; ObjectID = "chk-9C-pab"; */ +"chk-9C-pab.title" = "Устройство вывода"; + +/* Class = "NSTextFieldCell"; title = "Copyright © 2016-2026"; ObjectID = "ctF-95-uVu"; */ +"ctF-95-uVu.title" = "Copyright © 2016-2026"; + +/* Class = "NSSlider"; ibExternalAccessibilityDescription = "System Sounds Volume"; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityDescription" = "Громкость системных звуков"; + +/* Class = "NSSlider"; ibExternalAccessibilityHelp = "Volume of alerts, notification sounds, etc. Usually short. Can be played by any app."; ObjectID = "gyd-WV-2ju"; */ +"gyd-WV-2ju.ibExternalAccessibilityHelp" = "Громкость предупреждений, звуков уведомлений и т. д. Обычно короткие. Может воспроизводиться любым приложением."; + +/* Class = "NSTextFieldCell"; title = "L"; ObjectID = "hgE-7A-bez"; */ +"hgE-7A-bez.title" = "Л"; + +/* Class = "NSTextFieldCell"; title = "The AirPlay Logo is a trademark of Apple Inc."; ObjectID = "lx7-k3-q16"; */ +"lx7-k3-q16.title" = "Логотип AirPlay является товарным знаком Apple Inc."; + +/* Class = "NSTextFieldCell"; title = "R"; ObjectID = "lzr-NO-0Na"; */ +"lzr-NO-0Na.title" = "П"; + +/* Class = "NSMenuItem"; ibExternalAccessibilityHelp = "Enable to automatically pause your selected music player when a different app starts playing audio."; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.ibExternalAccessibilityHelp" = "Включите, чтобы выбранный музыкальный плеер автоматически ставился на паузу, когда другое приложение начинает воспроизводить звук."; + +/* Class = "NSMenuItem"; title = "Auto-pause Music"; ObjectID = "nHv-T8-1nb"; */ +"nHv-T8-1nb.title" = "Автопауза музыки"; + +/* Class = "NSMenuItem"; ibShadowedToolTip = "Log detailed messages to help diagnose bugs. Search for \"bgm\" or \"background music\" in Console.app."; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.ibShadowedToolTip" = "Записывает подробные сообщения для диагностики ошибок. Найдите «bgm» или «background music» в Консоли.app."; + +/* Class = "NSMenuItem"; title = "Debug Logging"; ObjectID = "sc9-vO-KyP"; */ +"sc9-vO-KyP.title" = "Отладочные журналы";