<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14113" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
- <development version="8000" identifier="xcode"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14113"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vFP-nq-IQg">
- <rect key="frame" x="110" y="282" width="132" height="28"/>
+ <rect key="frame" x="110" y="282" width="132" height="27"/>
<string key="toolTip">Configure audio tracks Selection Behavior. These settings affect which tracks will be added to the audio tracks list, and the settings used for each track.</string>
<buttonCell key="cell" type="push" title="Selection Behavior…" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="aYF-d5-Ya6">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
</connections>
</button>
<button toolTip="Reload the audio tracks list using the configured Selection Behavior." verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wcL-rL-aYS">
- <rect key="frame" x="240" y="282" width="62" height="28"/>
+ <rect key="frame" x="240" y="282" width="62" height="27"/>
<buttonCell key="cell" type="push" title="Reload" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="q2P-Tg-cBJ">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
- <tableColumn identifier="" width="322" minWidth="40" maxWidth="1000" id="7sz-4X-5jA">
+ <tableColumn width="322" minWidth="40" maxWidth="1000" id="7sz-4X-5jA">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Track">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
</tableCellView>
</prototypeCellViews>
</tableColumn>
- <tableColumn identifier="" width="143" minWidth="143" maxWidth="1000" id="lnO-sZ-6xv">
+ <tableColumn width="143" minWidth="143" maxWidth="1000" id="lnO-sZ-6xv">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Codec">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
</tableCellView>
</prototypeCellViews>
</tableColumn>
- <tableColumn identifier="" width="128" minWidth="128" maxWidth="3.4028234663852886e+38" id="qS7-Xr-9N8">
+ <tableColumn width="128" minWidth="128" maxWidth="3.4028234663852886e+38" id="qS7-Xr-9N8">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Mixdown">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
</popUpButtonCell>
<accessibility description="Mixdown"/>
<connections>
- <binding destination="JWs-Gl-4kd" name="enabled" keyPath="objectValue.isEnabled" id="tgd-cw-Xvj"/>
- <binding destination="JWs-Gl-4kd" name="selectedValue" keyPath="objectValue.mixdown" previousBinding="N2w-i8-sMD" id="0hr-bn-M8A">
+ <binding destination="JWs-Gl-4kd" name="contentValues" keyPath="objectValue.mixdowns" id="TBt-aW-GnZ">
<dictionary key="options">
- <string key="NSValueTransformerName">HBMixdownTransformer</string>
+ <string key="NSValueTransformerName">HBMixdownsTransformer</string>
</dictionary>
</binding>
- <binding destination="JWs-Gl-4kd" name="enabled2" keyPath="objectValue.mixdownEnabled" previousBinding="tgd-cw-Xvj" id="cYM-fO-KQf">
+ <binding destination="JWs-Gl-4kd" name="enabled2" keyPath="objectValue.mixdownEnabled" previousBinding="tgd-cw-Xvj" id="9fu-9h-CoA">
<dictionary key="options">
<integer key="NSMultipleValuesPlaceholder" value="-1"/>
<integer key="NSNoSelectionPlaceholder" value="-1"/>
<integer key="NSNullPlaceholder" value="-1"/>
</dictionary>
</binding>
- <binding destination="JWs-Gl-4kd" name="content" keyPath="objectValue.mixdowns" id="N2w-i8-sMD"/>
+ <binding destination="JWs-Gl-4kd" name="enabled" keyPath="objectValue.isEnabled" id="tgd-cw-Xvj"/>
+ <binding destination="JWs-Gl-4kd" name="selectedValue" keyPath="objectValue.mixdown" id="gf4-Y4-8kb">
+ <dictionary key="options">
+ <string key="NSValueTransformerName">HBMixdownTransformer</string>
+ </dictionary>
+ </binding>
</connections>
</popUpButton>
</subviews>
</tableCellView>
</prototypeCellViews>
</tableColumn>
- <tableColumn identifier="" width="74" minWidth="74" maxWidth="3.4028234663852886e+38" id="jub-Uq-qYL">
+ <tableColumn width="74" minWidth="74" maxWidth="3.4028234663852886e+38" id="jub-Uq-qYL">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Samplerate">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
</tableCellView>
</prototypeCellViews>
</tableColumn>
- <tableColumn identifier="" width="74" minWidth="74" maxWidth="3.4028234663852886e+38" id="obP-lK-sY0">
+ <tableColumn width="74" minWidth="74" maxWidth="3.4028234663852886e+38" id="obP-lK-sY0">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Bitrate">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
</tableCellView>
</prototypeCellViews>
</tableColumn>
- <tableColumn identifier="" width="61" minWidth="61" maxWidth="3.4028234663852886e+38" id="5xO-DR-4cR">
+ <tableColumn width="61" minWidth="61" maxWidth="3.4028234663852886e+38" id="5xO-DR-4cR">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Gain">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField toolTip="Audio gain in decibels (dB). Increases or decreases audio volume." verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2c7-G5-4KL">
- <rect key="frame" x="31" y="5" width="29" height="14"/>
+ <rect key="frame" x="31" y="6" width="29" height="14"/>
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingTail" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" alignment="center" title="0" id="Q4T-80-wxf">
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="uNn-5A-2RM"/>
<font key="font" metaFont="smallSystem"/>
</tableCellView>
</prototypeCellViews>
</tableColumn>
- <tableColumn identifier="" width="61" minWidth="61" maxWidth="3.4028234663852886e+38" id="eAS-E5-fip">
+ <tableColumn width="61" minWidth="61" maxWidth="3.4028234663852886e+38" id="eAS-E5-fip">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="DRC">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<slider horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="o3M-fP-6Ps">
- <rect key="frame" x="3" y="1" width="22" height="22"/>
+ <rect key="frame" x="3" y="2" width="22" height="22"/>
<string key="toolTip">Dynamic Range Compression. Reduces the volume difference between loud and quiet sounds. Only applies to AC-3 source tracks when encoding to another format.
0: Do not apply DRC.
</connections>
</slider>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yPh-4R-HRQ">
- <rect key="frame" x="31" y="5" width="29" height="14"/>
+ <rect key="frame" x="31" y="6" width="29" height="14"/>
<string key="toolTip">Dynamic Range Compression. Reduces the volume difference between loud and quiet sounds. Only applies to AC-3 source tracks when encoding to another format.
0: Do not apply DRC.
</tableView>
</subviews>
</clipView>
- <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="Pf5-Yq-6oL">
+ <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="Pf5-Yq-6oL">
<rect key="frame" x="1" y="247" width="884" height="16"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
- <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="1ow-7B-J0g">
+ <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="1ow-7B-J0g">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</popUpButtonCell>
<accessibility description="Mixdown"/>
<connections>
- <binding destination="uS1-Fd-V9I" name="selectedValue" keyPath="objectValue.mixdown" previousBinding="Mgj-Wp-HJE" id="uAM-Z4-LBG">
+ <binding destination="uS1-Fd-V9I" name="content" keyPath="objectValue.mixdowns" id="NKE-F5-7xp">
<dictionary key="options">
- <string key="NSValueTransformerName">HBMixdownTransformer</string>
+ <string key="NSValueTransformerName">HBMixdownsTransformer</string>
</dictionary>
</binding>
<binding destination="uS1-Fd-V9I" name="enabled" keyPath="objectValue.mixdownEnabled" id="c7n-yf-re8"/>
- <binding destination="uS1-Fd-V9I" name="content" keyPath="objectValue.mixdowns" id="Mgj-Wp-HJE"/>
+ <binding destination="uS1-Fd-V9I" name="selectedValue" keyPath="objectValue.mixdown" previousBinding="NKE-F5-7xp" id="OiI-FJ-A66">
+ <dictionary key="options">
+ <string key="NSValueTransformerName">HBMixdownTransformer</string>
+ </dictionary>
+ </binding>
</connections>
</popUpButton>
</subviews>
@interface HBEncoderTransformer : NSValueTransformer
@end
+@interface HBMixdownsTransformer : NSValueTransformer
+@end
+
@interface HBMixdownTransformer : NSValueTransformer
@end
@end
-@implementation HBMixdownTransformer
+static NSDictionary<NSString *, NSString *> *localizedMixdownsNames;
+static NSDictionary<NSString *, NSNumber *> *localizedReversedMixdownsNames;
-+ (Class)transformedValueClass
+@implementation HBMixdownsTransformer
+
++ (void)initialize
{
- return [NSString class];
+ if (self == [HBMixdownsTransformer class]) {
+ localizedMixdownsNames =
+ @{@"None": HBKitLocalizedString(@"None", @"HBAudio -> Mixdown"),
+ @"Mono": HBKitLocalizedString(@"Mono", @"HBAudio -> Mixdown"),
+ @"Mono (Left Only)": HBKitLocalizedString(@"Mono (Left Only)", @"HBAudio -> Mixdown"),
+ @"Mono (Right Only)": HBKitLocalizedString(@"Mono (Right Only)", @"HBAudio -> Mixdown"),
+ @"Stereo": HBKitLocalizedString(@"Stereo", @"HBAudio -> Mixdown"),
+ @"Dolby Surround": HBKitLocalizedString(@"Dolby Surround", @"HBAudio -> Mixdown"),
+ @"Dolby Pro Logic II": HBKitLocalizedString(@"Dolby Pro Logic II", @"HBAudio -> Mixdown"),
+ @"5.1 Channels": HBKitLocalizedString(@"5.1 Channels", @"HBAudio -> Mixdown"),
+ @"6.1 Channels": HBKitLocalizedString(@"6.1 Channels", @"HBAudio -> Mixdown"),
+ @"7.1 Channels": HBKitLocalizedString(@"7.1 Channels", @"HBAudio -> Mixdown"),
+ @"7.1 (5F/2R/LFE)": HBKitLocalizedString(@"7.1 (5F/2R/LFE)", @"HBAudio -> Mixdown"),
+ };
+
+ localizedReversedMixdownsNames =
+ @{HBKitLocalizedString(@"None", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_NONE),
+ HBKitLocalizedString(@"Mono", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_MONO),
+ HBKitLocalizedString(@"Mono (Left Only)", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_LEFT),
+ HBKitLocalizedString(@"Mono (Right Only)", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_RIGHT),
+ HBKitLocalizedString(@"Stereo", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_STEREO),
+ HBKitLocalizedString(@"Dolby Surround", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_DOLBY),
+ HBKitLocalizedString(@"Dolby Pro Logic II", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_DOLBYPLII),
+ HBKitLocalizedString(@"5.1 Channels", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_5POINT1),
+ HBKitLocalizedString(@"6.1 Channels", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_6POINT1),
+ HBKitLocalizedString(@"7.1 Channels", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_7POINT1),
+ HBKitLocalizedString(@"7.1 (5F/2R/LFE)", @"HBAudio -> Mixdown"): @(HB_AMIXDOWN_5_2_LFE),
+ };
+ }
}
-- (id)transformedValue:(id)value
++ (NSString *)localizedNameFromMixdown:(int)mixdown
{
- const char *name = hb_mixdown_get_name([value intValue]);
- if (name)
+ switch(mixdown)
{
- return @(name);
+ case HB_AMIXDOWN_NONE:
+ return HBKitLocalizedString(@"None", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_MONO:
+ return HBKitLocalizedString(@"Mono", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_LEFT:
+ return HBKitLocalizedString(@"Mono (Left Only)", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_RIGHT:
+ return HBKitLocalizedString(@"Mono (Right Only)", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_STEREO:
+ return HBKitLocalizedString(@"Stereo", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_DOLBY:
+ return HBKitLocalizedString(@"Dolby Surround", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_DOLBYPLII:
+ return HBKitLocalizedString(@"Dolby Pro Logic II", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_5POINT1:
+ return HBKitLocalizedString(@"5.1 Channels", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_6POINT1:
+ return HBKitLocalizedString(@"6.1 Channels", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_7POINT1:
+ return HBKitLocalizedString(@"7.1 Channels", @"HBAudio -> Mixdown");
+ case HB_AMIXDOWN_5_2_LFE:
+ return HBKitLocalizedString(@"7.1 (5F/2R/LFE)", @"HBAudio -> Mixdown");
+ default:
+ {
+ const char *name = hb_mixdown_get_name(mixdown);
+ return name ? @(name) : nil;
+ }
}
- else
+}
+
++ (NSNumber *)mixdownFromLocalizedName:(NSString *)name
+{
+ NSNumber *mixdown = localizedReversedMixdownsNames[name];
+ return mixdown ? mixdown : @(hb_mixdown_get_from_name(name.UTF8String));
+}
+
++ (Class)transformedValueClass
+{
+ return [NSArray class];
+}
+
+- (id)transformedValue:(id)value
+{
+ if (value != nil)
{
- return nil;
+ NSMutableArray *localizedArray = [[NSMutableArray alloc] initWithCapacity:[value count]];
+
+ for (NSString *text in value)
+ {
+ NSString *localizedName = localizedMixdownsNames[text];
+ if (localizedName)
+ {
+ [localizedArray addObject:localizedName];
+ }
+ }
+ return localizedArray;
}
+
+ return value;
+}
+
++ (BOOL)allowsReverseTransformation
+{
+ return NO;
+}
+
+@end
+
+@implementation HBMixdownTransformer
+
++ (Class)transformedValueClass
+{
+ return [NSString class];
+}
+
+- (id)transformedValue:(id)value
+{
+ return [HBMixdownsTransformer localizedNameFromMixdown:[value intValue]];
}
+ (BOOL)allowsReverseTransformation
- (id)reverseTransformedValue:(id)value
{
- return @(hb_mixdown_get_from_name([value UTF8String]));
+ return [HBMixdownsTransformer mixdownFromLocalizedName:value];
}
@end
/* Title description */
"2 Video Passes First Turbo" = "2 passaggi video primo in turbo";
+/* HBAudio -> Mixdown */
+"5.1 Channels" = "5.1 Canali";
+
+/* HBAudio -> Mixdown */
+"6.1 Channels" = "6.1 Canali";
+
+/* HBAudio -> Mixdown */
+"7.1 (5F/2R/LFE)" = "7.1 (5F/2R/LFE)";
+
+/* HBAudio -> Mixdown */
+"7.1 Channels" = "7.1 Canali";
+
/* Audio description */
"Audio:" = "Audio:";
/* Dimensions description */
"Dimensions:" = "Dimensioni:";
+/* HBAudio -> Mixdown */
+"Dolby Pro Logic II" = "Dolby Pro Logic II";
+
+/* HBAudio -> Mixdown */
+"Dolby Surround" = "Dolby Surround";
+
+/* Audio description */
+"DRC: %.2f" = "DRC: %.2f";
+
/* Video description */
"Encoder: %@, " = "Codificatore: %@, ";
/* HBJob -> Format display name */
"MKV File" = "MKV File";
+/* HBAudio -> Mixdown */
+"Mono" = "Mono";
+
+/* HBAudio -> Mixdown */
+"Mono (Left Only)" = "Mono (Solo sinistro)";
+
+/* HBAudio -> Mixdown */
+"Mono (Right Only)" = "Mono (Solo destro)";
+
/* HBJob -> Format display name */
"MP4 File" = "MP4 File";
/* HBVideo -> tune */
"none" = "nessuna";
-/* HBAudio -> none track name
+/* HBAudio -> Mixdown
+ HBAudio -> none track name
HBJob -> filters short description
HBSubtitles -> none track name */
"None" = "Nessuno";
/* HBStateFormatter -> work pass number format */
"Pass %d of %d, %.2f %%" = "Passaggio %1$d di %2$d, %3$.2f %%";
+/* HBStateFormatter -> work first pass number format */
+"Pass 1" = "Passaggio 1";
+
/* HBStateFormatter -> pass display name */
"Paused" = "In pausa";
/* HBPicture -> short info */
"Source: %dx%d, " = "Sorgente: %1$dx%2$d, ";
+/* HBAudio -> Mixdown */
+"Stereo" = "Stereo";
+
/* Subtitles description */
"Subtitles:" = "Sottotitoli:";
"GaR-qk-UW7.title" = "Sommario";
/* Class = "NSButtonCell"; title = "Reset"; ObjectID = "hgl-N3-x4S"; */
-"hgl-N3-x4S.title" = "Reset";
+"hgl-N3-x4S.title" = "Ripristina";
/* Class = "NSTextFieldCell"; title = "Statistics"; ObjectID = "S15-bh-qKU"; */
"S15-bh-qKU.title" = "Statistiche";
/* Touch bar */
"Done" = "Fine";
+/* HBQueueItemView -> Encode state accessibility label */
+"Encode canceled" = "Conversione annullata";
+
/* Queue status */
"Encode Canceled." = "Conversione annullata.";
-/* Queue done notification failed message */
+/* HBQueueItemView -> Encode state accessibility label */
+"Encode complete" = "Conversione completata";
+
+/* HBQueueItemView -> Encode state accessibility label
+ Queue done notification failed message */
"Encode failed" = "Conversione fallita";
/* Queue status */
/* Queue status */
"Encode Finished." = "Conversione completata.";
+/* HBQueueItemView -> Encode state accessibility label */
+"Encode ready" = "Conversione pronta";
+
+/* HBQueueItemView -> Encode state accessibility label */
+"Encode working" = "Conversione in corso";
+
/* No comment provided by engineer. */
"Encoding %@\n%@" = "Converto %1$@\n%2$@";
/* Touch bar */
"Remaining Time" = "Tempo rimanente";
+/* HBQueueItemView -> Remove button accessibility label */
+"Remove job" = "Rimuovi lavoro";
+
/* Queue undo action name */
"Remove Job From Queue" = "rimuovi lavoro dalla coda";
Toolbar Pause Item */
"Resume Encoding" = "Riprendi conversione";
+/* HBQueueItemView -> Reveal button accessibility label */
+"Reveal destination in Finder" = "Mostra destinazione nel Finder";
+
/* Job statistics */
"Run time:" = "Tempo di conversione:";