summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
authorDamiano Galassi <[email protected]>2018-10-20 13:31:06 +0200
committerDamiano Galassi <[email protected]>2018-10-20 13:31:06 +0200
commit4854e51a58cad3b6ce06cf02d1bec15a5fc38d34 (patch)
tree5bf4a11c2f8aa8282c0d9e0e9272cdc7ba49fc22 /macosx
parent70f1438bd17a9eea7e18db17d0bbc5b1ec11ac93 (diff)
MacGui: load the HandBrakeKit framework localized strings from the framework bundle.
Diffstat (limited to 'macosx')
-rw-r--r--macosx/HBAudio.m3
-rw-r--r--macosx/HBFilters+UIAdditions.m32
-rw-r--r--macosx/HBFilters.m33
-rw-r--r--macosx/HBJob+UIAdditions.m152
-rw-r--r--macosx/HBJob.m5
-rw-r--r--macosx/HBLocalizationUtilities.h15
-rw-r--r--macosx/HBPicture+UIAdditions.m4
-rw-r--r--macosx/HBPreset.m9
-rw-r--r--macosx/HBRange+UIAdditions.m7
-rw-r--r--macosx/HBStateFormatter+Private.m25
-rw-r--r--macosx/HBSubtitles.m5
-rw-r--r--macosx/HBTitle.m13
-rw-r--r--macosx/HBVideo+UIAdditions.m8
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj48
14 files changed, 219 insertions, 140 deletions
diff --git a/macosx/HBAudio.m b/macosx/HBAudio.m
index 4daf72e36..ad9b4b3b8 100644
--- a/macosx/HBAudio.m
+++ b/macosx/HBAudio.m
@@ -14,6 +14,7 @@
#import "HBAudioDefaults.h"
#import "HBCodingUtilities.h"
+#import "HBLocalizationUtilities.h"
#import "HBJob+Private.h"
#include "hb.h"
@@ -44,7 +45,7 @@ NSString *HBAudioEncoderChangedNotification = @"HBAudioEncoderChangedNotificatio
// Add the none and foreign track to the source array
NSMutableArray *sourceTracks = [job.title.audioTracks mutableCopy];
- NSDictionary *none = @{keyAudioTrackName: NSLocalizedString(@"None", @"HBAudio -> none track name")};
+ NSDictionary *none = @{keyAudioTrackName: HBKitLocalizedString(@"None", @"HBAudio -> none track name")};
[sourceTracks insertObject:none atIndex:0];
_sourceTracks = [sourceTracks copy];
}
diff --git a/macosx/HBFilters+UIAdditions.m b/macosx/HBFilters+UIAdditions.m
index 71ce759f8..814482f8e 100644
--- a/macosx/HBFilters+UIAdditions.m
+++ b/macosx/HBFilters+UIAdditions.m
@@ -5,6 +5,8 @@
It may be used under the terms of the GNU General Public License. */
#import "HBFilters+UIAdditions.h"
+#import "HBLocalizationUtilities.h"
+
#import "hb.h"
/**
@@ -21,7 +23,7 @@ static NSArray * filterParamsToNamesArray(hb_filter_param_t * (f)(int), int filt
{
NSString *name = @(preset->name);
if ([name isEqualToString:@"Off"]) {
- name = NSLocalizedString(@"Off", @"HBFilters -> off display name");
+ name = NSLocalizedStringFromTableInBundle(@"Off", nil, [NSBundle bundleForClass:[HBFilters class]], "HBFilters -> off display name");
}
[presets addObject:name];
}
@@ -43,7 +45,7 @@ static NSDictionary * filterParamsToNamesDict(hb_filter_param_t * (f)(int), int
{
NSString *name = @(preset->name);
if ([name isEqualToString:@"Off"]) {
- name = NSLocalizedString(@"Off", @"HBFilters -> off display name");
+ name = NSLocalizedStringFromTableInBundle(@"Off", nil, [NSBundle bundleForClass:[HBFilters class]], "HBFilters -> off display name");
}
[presets setObject:@(preset->short_name) forKey:name];
}
@@ -264,16 +266,16 @@ static NSDictionary *sharpenTypesDict = nil;
{
if (!deinterlaceTypesDict)
{
- deinterlaceTypesDict = @{NSLocalizedString(@"Off", @"HBFilters -> filter display name"): @"off",
- NSLocalizedString(@"Yadif", @"HBFilters -> filter display name"): @"deinterlace",
- NSLocalizedString(@"Decomb", @"HBFilters -> filter display name"): @"decomb"};;
+ deinterlaceTypesDict = @{HBKitLocalizedString(@"Off", @"HBFilters -> filter display name"): @"off",
+ HBKitLocalizedString(@"Yadif", @"HBFilters -> filter display name"): @"deinterlace",
+ HBKitLocalizedString(@"Decomb", @"HBFilters -> filter display name"): @"decomb"};;
}
return deinterlaceTypesDict;
}
- (NSArray *)deinterlaceTypes
{
- return @[NSLocalizedString(@"Off", @"HBFilters -> filter display name"), NSLocalizedString(@"Yadif", @"HBFilters -> filter display name"), NSLocalizedString(@"Decomb", @"HBFilters -> filter display name")];
+ return @[HBKitLocalizedString(@"Off", @"HBFilters -> filter display name"), HBKitLocalizedString(@"Yadif", @"HBFilters -> filter display name"), HBKitLocalizedString(@"Decomb", @"HBFilters -> filter display name")];
}
+ (NSDictionary *)decombPresetsDict
@@ -316,9 +318,9 @@ static NSDictionary *sharpenTypesDict = nil;
{
if (!denoiseTypesDict)
{
- denoiseTypesDict = @{NSLocalizedString(@"Off", @"HBFilters -> filter display name"): @"off",
- NSLocalizedString(@"NLMeans", @"HBFilters -> filter display name"): @"nlmeans",
- NSLocalizedString(@"HQDN3D", @"HBFilters -> filter display name"): @"hqdn3d"};;
+ denoiseTypesDict = @{HBKitLocalizedString(@"Off", @"HBFilters -> filter display name"): @"off",
+ HBKitLocalizedString(@"NLMeans", @"HBFilters -> filter display name"): @"nlmeans",
+ HBKitLocalizedString(@"HQDN3D", @"HBFilters -> filter display name"): @"hqdn3d"};;
}
return denoiseTypesDict;
}
@@ -351,9 +353,9 @@ static NSDictionary *sharpenTypesDict = nil;
{
if (!sharpenTypesDict)
{
- sharpenTypesDict = @{NSLocalizedString(@"Off", @"HBFilters -> filter display name"): @"off",
- NSLocalizedString(@"Unsharp", @"HBFilters -> filter display name"): @"unsharp",
- NSLocalizedString(@"Lapsharp", @"HBFilters -> filter display name"): @"lapsharp"};;
+ sharpenTypesDict = @{HBKitLocalizedString(@"Off", @"HBFilters -> filter display name"): @"off",
+ HBKitLocalizedString(@"Unsharp", @"HBFilters -> filter display name"): @"unsharp",
+ HBKitLocalizedString(@"Lapsharp", @"HBFilters -> filter display name"): @"lapsharp"};;
}
return sharpenTypesDict;
}
@@ -382,7 +384,7 @@ static NSDictionary *sharpenTypesDict = nil;
- (NSArray *)denoiseTypes
{
- return @[NSLocalizedString(@"Off", @"HBFilters -> filter display name"), NSLocalizedString(@"NLMeans", @"HBFilters -> filter display name"), NSLocalizedString(@"HQDN3D", @"HBFilters -> filter display name")];
+ return @[HBKitLocalizedString(@"Off", @"HBFilters -> filter display name"), HBKitLocalizedString(@"NLMeans", @"HBFilters -> filter display name"), HBKitLocalizedString(@"HQDN3D", @"HBFilters -> filter display name")];
}
- (NSArray *)denoisePresets
@@ -397,7 +399,7 @@ static NSDictionary *sharpenTypesDict = nil;
- (NSArray *)sharpenTypes
{
- return @[NSLocalizedString(@"Off", @"HBFilters -> filter display name"), NSLocalizedString(@"Unsharp", @"HBFilters -> filter display name"), NSLocalizedString(@"Lapsharp", @"HBFilters -> filter display name")];
+ return @[HBKitLocalizedString(@"Off", @"HBFilters -> filter display name"), HBKitLocalizedString(@"Unsharp", @"HBFilters -> filter display name"), HBKitLocalizedString(@"Lapsharp", @"HBFilters -> filter display name")];
}
- (NSArray *)sharpenPresets
@@ -478,7 +480,7 @@ static NSDictionary *sharpenTypesDict = nil;
{
if (self.deblock == 0)
{
- return NSLocalizedString(@"Off", @"HBFilters -> filter summary");
+ return HBKitLocalizedString(@"Off", @"HBFilters -> filter summary");
}
else
{
diff --git a/macosx/HBFilters.m b/macosx/HBFilters.m
index a0f1ae3f1..c6c99d2e5 100644
--- a/macosx/HBFilters.m
+++ b/macosx/HBFilters.m
@@ -6,6 +6,7 @@
#import "HBFilters.h"
#import "HBCodingUtilities.h"
+#import "HBLocalizationUtilities.h"
#import "NSDictionary+HBAdditions.h"
#import "HBMutablePreset.h"
@@ -114,9 +115,9 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
retval = NO;
if (outError)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid custom detelecine settings.",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid custom detelecine settings.",
@"HBFilters -> invalid detelecine custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Syntax: skip-left=s:skip-right=s:skip-top=s:skip-bottom=s:strict-breaks=s:plane=p:parity=p:disable=d\n\nDefault: skip-left=1:skip-right=1:skip-top=4:skip-bottom=4:plane=0", @"HBJob -> invalid detelecine custom settings error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"Syntax: skip-left=s:skip-right=s:skip-top=s:skip-bottom=s:strict-breaks=s:plane=p:parity=p:disable=d\n\nDefault: skip-left=1:skip-right=1:skip-top=4:skip-bottom=4:plane=0", @"HBJob -> invalid detelecine custom settings error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
}
@@ -179,9 +180,9 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
retval = NO;
if (outError)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid custom comb detect settings.",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid custom comb detect settings.",
@"HBFilters -> invalid comb detect custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Syntax: mode=m:spatial-metric=s:motion-thresh=m:spatial-thresh=s:filter-mode=f:block-thresh=b:block-width=b:block-height=b:disable=d\n\nDefault: mode=3:spatial-metric=2:motion-thresh=1:spatial-thresh=1:filter-mode=2:block-thresh=40:block-width=16:block-height=16", @"HBJob -> invalid comb detect custom settings error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"Syntax: mode=m:spatial-metric=s:motion-thresh=m:spatial-thresh=s:filter-mode=f:block-thresh=b:block-width=b:block-height=b:disable=d\n\nDefault: mode=3:spatial-metric=2:motion-thresh=1:spatial-thresh=1:filter-mode=2:block-thresh=40:block-width=16:block-height=16", @"HBJob -> invalid comb detect custom settings error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
}
@@ -288,16 +289,16 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
{
if (filter_id == HB_FILTER_DEINTERLACE)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid Yadif custom settings.",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid Yadif custom settings.",
@"HBFilters -> invalid Yadif custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Yadif syntax: mode=m:parity=p\n\nYadif default: mode=3", @"HBJob -> invalid Yadif custom settings error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"Yadif syntax: mode=m:parity=p\n\nYadif default: mode=3", @"HBJob -> invalid Yadif custom settings error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
else if (filter_id == HB_FILTER_DECOMB)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid Decomb custom settings.",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid Decomb custom settings.",
@"HBFilters -> invalid Decomb custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Decomb syntax: mode=m:magnitude-thresh=m:variance-thresh=v:laplacian-thresh=l:dilation-thresh=d:erosion-thresh=e:noise-thresh=n:search-distance=s:postproc=p:parity=p\n\nDecomb default: mode=7", @"HBJob -> invalid Decomb custom settings error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"Decomb syntax: mode=m:magnitude-thresh=m:variance-thresh=v:laplacian-thresh=l:dilation-thresh=d:erosion-thresh=e:noise-thresh=n:search-distance=s:postproc=p:parity=p\n\nDecomb default: mode=7", @"HBJob -> invalid Decomb custom settings error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
}
@@ -404,16 +405,16 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
{
if (filter_id == HB_FILTER_HQDN3D)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid custom HQDN3D settings",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid custom HQDN3D settings",
@"HBFilters -> invalid denoise custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"HQDN3D syntax: y-spatial=y:cb-spatial=c:cr-spatial=c:y-temporal=y:cb-temporal=c:cr-temporal=c\n\nDefault settings: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3:cr-temporal=3", @"HBJob -> invalid name error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"HQDN3D syntax: y-spatial=y:cb-spatial=c:cr-spatial=c:y-temporal=y:cb-temporal=c:cr-temporal=c\n\nDefault settings: y-spatial=3:cb-spatial=2:cr-spatial=2:y-temporal=2:cb-temporal=3:cr-temporal=3", @"HBJob -> invalid name error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
else if (filter_id == HB_FILTER_NLMEANS)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid custom NLMeans settings",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid custom NLMeans settings",
@"HBFilters -> invalid denoise custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"NLMeans syntax: y-strength=y:y-origin-tune=y:y-patch-size=y:y-range=y:y-frame-count=y:y-prefilter=y:cb-strength=c:cb-origin-tune=c:cb-patch-size=c:cb-range=c:cb-frame-count=c:cb-prefilter=c:cr-strength=c:cr-origin-tune=c:cr-patch-size=c:cr-range=c:cr-frame-count=c:cr-prefilter=c:threads=t\n\nDefault settings: y-strength=6:y-origin-tune=1:y-patch-size=7:y-range=3:y-frame-count=2:y-prefilter=0:cb-strength=6:cb-origin-tune=1:cb-patch-size=7:cb-range=3:cb-frame-count=2:cb-prefilter=0", @"HBJob -> invalid name error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"NLMeans syntax: y-strength=y:y-origin-tune=y:y-patch-size=y:y-range=y:y-frame-count=y:y-prefilter=y:cb-strength=c:cb-origin-tune=c:cb-patch-size=c:cb-range=c:cb-frame-count=c:cb-prefilter=c:cr-strength=c:cr-origin-tune=c:cr-patch-size=c:cr-range=c:cr-frame-count=c:cr-prefilter=c:threads=t\n\nDefault settings: y-strength=6:y-origin-tune=1:y-patch-size=7:y-range=3:y-frame-count=2:y-prefilter=0:cb-strength=6:cb-origin-tune=1:cb-patch-size=7:cb-range=3:cb-frame-count=2:cb-prefilter=0", @"HBJob -> invalid name error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
}
@@ -554,16 +555,16 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
{
if (filter_id == HB_FILTER_UNSHARP)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid unsharp custom settings.",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid unsharp custom settings.",
@"HBFilters -> invalid unsharp custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Unsharp syntax: y-strength=y:y-size=y:cb-strength=c:cb-size=c:cr-strength=c:cr-size=c\n\nUnsharp default: y-strength=0.25:y-size=7:cb-strength=0.25:cb-size=7", @"HBJob -> invalid unsharp custom settings error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"Unsharp syntax: y-strength=y:y-size=y:cb-strength=c:cb-size=c:cr-strength=c:cr-size=c\n\nUnsharp default: y-strength=0.25:y-size=7:cb-strength=0.25:cb-size=7", @"HBJob -> invalid unsharp custom settings error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
else if (filter_id == HB_FILTER_LAPSHARP)
{
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid lapsharp custom settings.",
+ NSDictionary *userInfo = @{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid lapsharp custom settings.",
@"HBFilters -> invalid lapsharp custom string description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Lapsharp syntax: y-strength=y:y-kernel=y:cb-strength=c:cb-kernel=c:cr-strength=c:cr-kernel=c\n\nLapsharp default: y-strength=0.2:y-kernel=isolap:cb-strength=0.2:cb-kernel=isolap", @"HBJob -> invalid lapsharp custom settings error recovery suggestion")};
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"Lapsharp syntax: y-strength=y:y-kernel=y:cb-strength=c:cb-kernel=c:cr-strength=c:cr-kernel=c\n\nLapsharp default: y-strength=0.2:y-kernel=isolap:cb-strength=0.2:cb-kernel=isolap", @"HBJob -> invalid lapsharp custom settings error recovery suggestion")};
*outError = [NSError errorWithDomain:@"HBFilterError" code:0 userInfo:userInfo];
}
}
diff --git a/macosx/HBJob+UIAdditions.m b/macosx/HBJob+UIAdditions.m
index bc3ab2bd1..f8b273804 100644
--- a/macosx/HBJob+UIAdditions.m
+++ b/macosx/HBJob+UIAdditions.m
@@ -18,6 +18,8 @@
#import "HBPicture+UIAdditions.h"
#import "HBFilters+UIAdditions.h"
+#import "HBLocalizationUtilities.h"
+
#include "hb.h"
// Text Styles
@@ -70,11 +72,11 @@ static NSDictionary *shortHeightAttr;
NSString *title = nil;
if (container->format & HB_MUX_MASK_MP4)
{
- title = NSLocalizedString(@"MP4 File", @"HBJob -> Format display name");
+ title = HBKitLocalizedString(@"MP4 File", @"HBJob -> Format display name");
}
else if (container->format & HB_MUX_MASK_MKV)
{
- title = NSLocalizedString(@"MKV File", @"HBJob -> Format display name");
+ title = HBKitLocalizedString(@"MKV File", @"HBJob -> Format display name");
}
else
{
@@ -126,45 +128,45 @@ static NSDictionary *shortHeightAttr;
if (self.range.type == HBRangeTypeChapters)
{
startStopString = (self.range.chapterStart == self.range.chapterStop) ?
- [NSString stringWithFormat:NSLocalizedString(@"Chapter %d", @"Title description"), self.range.chapterStart + 1] :
- [NSString stringWithFormat:NSLocalizedString(@"Chapters %d through %d", @"Title description"), self.range.chapterStart + 1, self.range.chapterStop + 1];
+ [NSString stringWithFormat:HBKitLocalizedString(@"Chapter %d", @"Title description"), self.range.chapterStart + 1] :
+ [NSString stringWithFormat:HBKitLocalizedString(@"Chapters %d through %d", @"Title description"), self.range.chapterStart + 1, self.range.chapterStop + 1];
}
else if (self.range.type == HBRangeTypeSeconds)
{
- startStopString = [NSString stringWithFormat:NSLocalizedString(@"Seconds %d through %d", @"Title description"), self.range.secondsStart, self.range.secondsStop];
+ startStopString = [NSString stringWithFormat:HBKitLocalizedString(@"Seconds %d through %d", @"Title description"), self.range.secondsStart, self.range.secondsStop];
}
else if (self.range.type == HBRangeTypeFrames)
{
- startStopString = [NSString stringWithFormat:NSLocalizedString(@"Frames %d through %d", @"Title description"), self.range.frameStart, self.range.frameStop];
+ startStopString = [NSString stringWithFormat:HBKitLocalizedString(@"Frames %d through %d", @"Title description"), self.range.frameStart, self.range.frameStop];
}
NSMutableString *passesString = [NSMutableString string];
// check to see if our first subtitle track is Foreign Language Search, in which case there is an in depth scan
if (self.subtitles.tracks.firstObject.sourceTrackIdx == 1)
{
- [passesString appendString:NSLocalizedString(@"1 Foreign Language Search Pass - ", @"Title description")];
+ [passesString appendString:HBKitLocalizedString(@"1 Foreign Language Search Pass - ", @"Title description")];
}
if (self.video.qualityType != 1 && self.video.twoPass == YES)
{
if (self.video.turboTwoPass == YES)
{
- [passesString appendString:NSLocalizedString(@"2 Video Passes First Turbo", @"Title description")];
+ [passesString appendString:HBKitLocalizedString(@"2 Video Passes First Turbo", @"Title description")];
}
else
{
- [passesString appendString:NSLocalizedString(@"2 Video Passes", @"Title description")];
+ [passesString appendString:HBKitLocalizedString(@"2 Video Passes", @"Title description")];
}
}
if (passesString.length)
{
- [attrString appendString:[NSString stringWithFormat:NSLocalizedString(@" (Title %d, %@, %@) ▸ %@\n", @"Title description"),
+ [attrString appendString:[NSString stringWithFormat:HBKitLocalizedString(@" (Title %d, %@, %@) ▸ %@\n", @"Title description"),
self.titleIdx, startStopString, passesString, self.outputFileName]
withAttributes:detailAttr];
}
else
{
- [attrString appendString:[NSString stringWithFormat:NSLocalizedString(@" (Title %d, %@) ▸ %@\n", @"Title description"),
+ [attrString appendString:[NSString stringWithFormat:HBKitLocalizedString(@" (Title %d, %@) ▸ %@\n", @"Title description"),
self.titleIdx, startStopString, self.outputFileName]
withAttributes:detailAttr];
}
@@ -177,7 +179,7 @@ static NSDictionary *shortHeightAttr;
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] init];
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Preset:", @"Preset description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Preset:", @"Preset description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:self.presetName withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -194,22 +196,22 @@ static NSDictionary *shortHeightAttr;
if (self.chaptersEnabled)
{
- [options appendString:NSLocalizedString(@", Chapter Markers", @"Format description")];
+ [options appendString:HBKitLocalizedString(@", Chapter Markers", @"Format description")];
}
if ((self.container & HB_MUX_MASK_MP4) && self.mp4HttpOptimize)
{
- [options appendString:NSLocalizedString(@", Web Optimized", @"Format description")];
+ [options appendString:HBKitLocalizedString(@", Web Optimized", @"Format description")];
}
if ((self.container & HB_MUX_MASK_MP4) && self.alignAVStart)
{
- [options appendString:NSLocalizedString(@", Align A/V Start", @"Format description")];
+ [options appendString:HBKitLocalizedString(@", Align A/V Start", @"Format description")];
}
if ((self.container & HB_MUX_MASK_MP4) && self.mp4iPodCompatible)
{
- [options appendString:NSLocalizedString(@", iPod 5G Support", @"Format description")];
+ [options appendString:HBKitLocalizedString(@", iPod 5G Support", @"Format description")];
}
if ([options hasPrefix:@", "])
@@ -218,7 +220,7 @@ static NSDictionary *shortHeightAttr;
}
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Format:", @"Format description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Format:", @"Format description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:options withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -231,7 +233,7 @@ static NSDictionary *shortHeightAttr;
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] init];
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Destination:", @"Destination description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Destination:", @"Destination description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:self.completeOutputURL.path withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -246,10 +248,10 @@ static NSDictionary *shortHeightAttr;
NSString *pictureInfo = self.picture.summary;
if (self.picture.keepDisplayAspect)
{
- pictureInfo = [pictureInfo stringByAppendingString:NSLocalizedString(@" Keep Aspect Ratio", @"Dimensions description")];
+ pictureInfo = [pictureInfo stringByAppendingString:HBKitLocalizedString(@" Keep Aspect Ratio", @"Dimensions description")];
}
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Dimensions:", @"Dimensions description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Dimensions:", @"Dimensions description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:pictureInfo withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -269,11 +271,11 @@ static NSDictionary *shortHeightAttr;
{
if ([filters.detelecine isEqualToString:@"custom"])
{
- [summary appendFormat:@", %@ (%@)", NSLocalizedString(@"Detelecine", @"Dimensions description"), filters.detelecineCustomString];
+ [summary appendFormat:@", %@ (%@)", HBKitLocalizedString(@"Detelecine", @"Dimensions description"), filters.detelecineCustomString];
}
else
{
- [summary appendFormat:@", %@ (%@)", NSLocalizedString(@"Detelecine", @"Dimensions description"), [[[HBFilters detelecinePresetsDict] allKeysForObject:filters.detelecine] firstObject]];
+ [summary appendFormat:@", %@ (%@)", HBKitLocalizedString(@"Detelecine", @"Dimensions description"), [[[HBFilters detelecinePresetsDict] allKeysForObject:filters.detelecine] firstObject]];
}
}
else if (![filters.deinterlace isEqualToString:@"off"])
@@ -301,13 +303,13 @@ static NSDictionary *shortHeightAttr;
// Deblock
if (filters.deblock > 0)
{
- [summary appendFormat:@", %@ (%d)", NSLocalizedString(@"Deblock", @"Filters description"), filters.deblock];
+ [summary appendFormat:@", %@ (%d)", HBKitLocalizedString(@"Deblock", @"Filters description"), filters.deblock];
}
// Denoise
if (![filters.denoise isEqualToString:@"off"])
{
- [summary appendFormat:@", %@ (%@", NSLocalizedString(@"Denoise", @"Filters description"), [[[HBFilters denoiseTypesDict] allKeysForObject:filters.denoise] firstObject]];
+ [summary appendFormat:@", %@ (%@", HBKitLocalizedString(@"Denoise", @"Filters description"), [[[HBFilters denoiseTypesDict] allKeysForObject:filters.denoise] firstObject]];
if (![filters.denoisePreset isEqualToString:@"custom"])
{
[summary appendFormat:@", %@", [[[HBFilters denoisePresetDict] allKeysForObject:filters.denoisePreset] firstObject]];
@@ -329,7 +331,7 @@ static NSDictionary *shortHeightAttr;
// Sharpen
if (![filters.sharpen isEqualToString:@"off"])
{
- [summary appendFormat:@", %@ (%@", NSLocalizedString(@"Sharpen", @"Filters description"), [[[HBFilters sharpenTypesDict] allKeysForObject:filters.sharpen] firstObject]];
+ [summary appendFormat:@", %@ (%@", HBKitLocalizedString(@"Sharpen", @"Filters description"), [[[HBFilters sharpenTypesDict] allKeysForObject:filters.sharpen] firstObject]];
if (![filters.sharpenPreset isEqualToString:@"custom"])
{
[summary appendFormat:@", %@", [[[HBFilters sharpenPresetDict] allKeysForObject:filters.sharpenPreset] firstObject]];
@@ -355,7 +357,7 @@ static NSDictionary *shortHeightAttr;
// Grayscale
if (filters.grayscale)
{
- [summary appendFormat:@", %@", NSLocalizedString(@"Grayscale", @"Filters description")];
+ [summary appendFormat:@", %@", HBKitLocalizedString(@"Grayscale", @"Filters description")];
}
if ([summary hasPrefix:@", "])
@@ -367,7 +369,7 @@ static NSDictionary *shortHeightAttr;
if (summary.length)
{
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Filters:", @"Filters description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Filters:", @"Filters description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:summary withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -382,21 +384,21 @@ static NSDictionary *shortHeightAttr;
NSMutableString *videoInfo = [NSMutableString string];
const char *encoderName = hb_video_encoder_get_name(self.video.encoder);
- [videoInfo appendFormat:NSLocalizedString(@"Encoder: %@, ", @"Video description"),
- encoderName ? @(encoderName) : NSLocalizedString(@"Unknown", @"Video description")];
+ [videoInfo appendFormat:HBKitLocalizedString(@"Encoder: %@, ", @"Video description"),
+ encoderName ? @(encoderName) : HBKitLocalizedString(@"Unknown", @"Video description")];
- [videoInfo appendString:NSLocalizedString(@"Framerate: ", @"Video description")];
+ [videoInfo appendString:HBKitLocalizedString(@"Framerate: ", @"Video description")];
if (self.video.frameRate == 0)
{
if (self.video.frameRateMode == 0)
{
// we are using same as source with vfr
- [videoInfo appendFormat:NSLocalizedString(@"Same as source (variable)", @"Video description")];
+ [videoInfo appendString:HBKitLocalizedString(@"Same as source (variable)", @"Video description")];
}
else
{
- [videoInfo appendFormat:NSLocalizedString(@"Same as source (constant)", @"Video description")];
+ [videoInfo appendString:HBKitLocalizedString(@"Same as source (constant)", @"Video description")];
}
}
else
@@ -404,27 +406,27 @@ static NSDictionary *shortHeightAttr;
// we have a specified, constant framerate
if (self.video.frameRateMode == 0)
{
- [videoInfo appendFormat:NSLocalizedString(@"Peak %@ (may be lower)", @"Video description"), @(hb_video_framerate_get_name(self.video.frameRate))];
+ [videoInfo appendFormat:HBKitLocalizedString(@"Peak %@ (may be lower)", @"Video description"), @(hb_video_framerate_get_name(self.video.frameRate))];
}
else
{
- [videoInfo appendFormat:NSLocalizedString(@"Peak %@ (constant frame rate)", @"Video description"), @(hb_video_framerate_get_name(self.video.frameRate))];
+ [videoInfo appendFormat:HBKitLocalizedString(@"Peak %@ (constant frame rate)", @"Video description"), @(hb_video_framerate_get_name(self.video.frameRate))];
}
}
if (self.video.qualityType == 0) // ABR
{
[videoInfo appendFormat:@", "];
- [videoInfo appendFormat:NSLocalizedString(@"Bitrate: %d kbps", @"Video description"), self.video.avgBitrate];
+ [videoInfo appendFormat:HBKitLocalizedString(@"Bitrate: %d kbps", @"Video description"), self.video.avgBitrate];
}
else // CRF
{
[videoInfo appendFormat:@", "];
- [videoInfo appendFormat:NSLocalizedString(@"Constant Quality: %.2f %s", @"Video description"), self.video.quality, hb_video_quality_get_name(self.video.encoder)];
+ [videoInfo appendFormat:HBKitLocalizedString(@"Constant Quality: %.2f %s", @"Video description"), self.video.quality, hb_video_quality_get_name(self.video.encoder)];
}
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Video:", @"Video description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Video:", @"Video description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:videoInfo withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -442,18 +444,18 @@ static NSDictionary *shortHeightAttr;
}
else
{
- [encoderPresetInfo appendString:NSLocalizedString(@"default settings", @"Video description")];
+ [encoderPresetInfo appendString:HBKitLocalizedString(@"default settings", @"Video description")];
}
}
else
{
// we are using the x264 system
- [encoderPresetInfo appendFormat:NSLocalizedString(@"Preset: %@", @"Video description"), self.video.preset];
+ [encoderPresetInfo appendFormat:HBKitLocalizedString(@"Preset: %@", @"Video description"), self.video.preset];
if (self.video.tune.length || self.video.fastDecode)
{
[encoderPresetInfo appendString:@", "];
- [encoderPresetInfo appendString:NSLocalizedString(@"Tune: ", @"Video description")];
+ [encoderPresetInfo appendString:HBKitLocalizedString(@"Tune: ", @"Video description")];
if (self.video.tune.length)
{
@@ -461,27 +463,27 @@ static NSDictionary *shortHeightAttr;
}
if (self.video.fastDecode)
{
- [encoderPresetInfo appendString:NSLocalizedString(@" - fastdecode", @"Video description")];
+ [encoderPresetInfo appendString:HBKitLocalizedString(@" - fastdecode", @"Video description")];
}
}
if (self.video.videoOptionExtra.length)
{
[encoderPresetInfo appendString:@", "];
- [encoderPresetInfo appendFormat:NSLocalizedString(@"Options: %@", @"Video description"), self.video.videoOptionExtra];
+ [encoderPresetInfo appendFormat:HBKitLocalizedString(@"Options: %@", @"Video description"), self.video.videoOptionExtra];
}
if (self.video.profile.length)
{
[encoderPresetInfo appendString:@", "];
- [encoderPresetInfo appendFormat:NSLocalizedString(@"Profile: %@", @"Video description"), self.video.profile];
+ [encoderPresetInfo appendFormat:HBKitLocalizedString(@"Profile: %@", @"Video description"), self.video.profile];
}
if (self.video.level.length)
{
[encoderPresetInfo appendString:@", "];
- [encoderPresetInfo appendFormat:NSLocalizedString(@"Level: %@", @"Video description"), self.video.level];
+ [encoderPresetInfo appendFormat:HBKitLocalizedString(@"Level: %@", @"Video description"), self.video.level];
}
}
[attrString appendString:@"\t" withAttributes:detailAttr];
- [attrString appendString:NSLocalizedString(@"Video Options:", @"Video description") withAttributes:detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Video Options:", @"Video description") withAttributes:detailBoldAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:encoderPresetInfo withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -496,11 +498,11 @@ static NSDictionary *shortHeightAttr;
}
else
{
- lavcInfo = NSLocalizedString(@"default settings", @"Video description");
+ lavcInfo = HBKitLocalizedString(@"default settings", @"Video description");
}
[attrString appendString:@"\t" withAttributes:detailBoldAttr];
- [attrString appendString:NSLocalizedString(@"Video Options:", @"Video description") withAttributes:detailAttr];
+ [attrString appendString:HBKitLocalizedString(@"Video Options:", @"Video description") withAttributes:detailAttr];
[attrString appendString:@" \t" withAttributes:detailAttr];
[attrString appendString:lavcInfo withAttributes:detailAttr];
[attrString appendString:@"\n" withAttributes:detailAttr];
@@ -515,21 +517,21 @@ static NSDictionary *shortHeightAttr;
BOOL secondLine = NO;
[attrString appendString:@"\t" withAttributes: detailBoldAttr];
- [attrString appendString:NSLocalizedString(@"Audio:", @"Audio description") withAttributes: detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Audio:", @"Audio description") withAttributes: detailBoldAttr];
[attrString appendString:@" " withAttributes: detailBoldAttr];
for (HBAudioTrack *audioTrack in self.audio.tracks)
{
if (audioTrack.isEnabled)
{
- NSMutableString *detailString = [NSMutableString stringWithFormat:NSLocalizedString(@"%@ ▸ Encoder: %@", @"Audio description"),
+ NSMutableString *detailString = [NSMutableString stringWithFormat:HBKitLocalizedString(@"%@ ▸ Encoder: %@", @"Audio description"),
self.audio.sourceTracks[audioTrack.sourceTrackIdx][keyAudioTrackName],
@(hb_audio_encoder_get_name(audioTrack.encoder))];
if ((audioTrack.encoder & HB_ACODEC_PASS_FLAG) == 0)
{
[detailString appendString:@", "];
- [detailString appendFormat:NSLocalizedString(@"Mixdown: %@, Samplerate: %@, Bitrate: %d kbps", @"Audio description"),
+ [detailString appendFormat:HBKitLocalizedString(@"Mixdown: %@, Samplerate: %@, Bitrate: %d kbps", @"Audio description"),
@(hb_mixdown_get_name(audioTrack.mixdown)),
audioTrack.sampleRate ? [NSString stringWithFormat:@"%@ khz", @(hb_audio_samplerate_get_name(audioTrack.sampleRate))] : @"Auto",
audioTrack.bitRate];
@@ -537,13 +539,13 @@ static NSDictionary *shortHeightAttr;
if (0.0 < audioTrack.drc)
{
[detailString appendString:@", "];
- [detailString appendFormat:NSLocalizedString(@"DRC: %.2f", @"Audio description"), audioTrack.drc];
+ [detailString appendFormat:HBKitLocalizedString(@"DRC: %.2f", @"Audio description"), audioTrack.drc];
}
if (0.0 != audioTrack.gain)
{
[detailString appendString:@", "];
- [detailString appendFormat:NSLocalizedString(@"Gain: %.2f", @"Audio description"), audioTrack.gain];
+ [detailString appendFormat:HBKitLocalizedString(@"Gain: %.2f", @"Audio description"), audioTrack.gain];
}
}
@@ -570,7 +572,7 @@ static NSDictionary *shortHeightAttr;
BOOL secondLine = NO;
[attrString appendString:@"\t" withAttributes: detailBoldAttr];
- [attrString appendString:NSLocalizedString(@"Subtitles:", @"Subtitles description") withAttributes: detailBoldAttr];
+ [attrString appendString:HBKitLocalizedString(@"Subtitles:", @"Subtitles description") withAttributes: detailBoldAttr];
[attrString appendString:@" " withAttributes: detailBoldAttr];
for (HBSubtitlesTrack *track in self.subtitles.tracks)
@@ -586,17 +588,17 @@ static NSDictionary *shortHeightAttr;
if (track.forcedOnly)
{
[detailString appendString:@", "];
- [detailString appendString:NSLocalizedString(@"Forced Only", @"Subtitles description")];
+ [detailString appendString:HBKitLocalizedString(@"Forced Only", @"Subtitles description")];
}
if (track.burnedIn)
{
[detailString appendString:@", "];
- [detailString appendString:NSLocalizedString(@"Burned In", @"Subtitles description")];
+ [detailString appendString:HBKitLocalizedString(@"Burned In", @"Subtitles description")];
}
if (track.def)
{
[detailString appendString:@", "];
- [detailString appendString:NSLocalizedString(@"Default", @"Subtitles description")];
+ [detailString appendString:HBKitLocalizedString(@"Default", @"Subtitles description")];
}
[attrString appendString:@"\t" withAttributes: detailAttr];
@@ -652,7 +654,7 @@ static NSDictionary *shortHeightAttr;
NSMutableString *info = [NSMutableString string];
const char *encoderName = hb_video_encoder_get_name(self.video.encoder);
- [info appendString:encoderName ? @(encoderName) : NSLocalizedString(@"Unknown", @"HBJob -> video short description encoder name")];
+ [info appendString:encoderName ? @(encoderName) : HBKitLocalizedString(@"Unknown", @"HBJob -> video short description encoder name")];
[info appendString:@", "];
@@ -661,11 +663,11 @@ static NSDictionary *shortHeightAttr;
if (self.video.frameRateMode == 0)
{
// we are using same as source with vfr
- [info appendFormat:NSLocalizedString(@"VFR", @"HBJob -> video short description framerate")];
+ [info appendString:HBKitLocalizedString(@"VFR", @"HBJob -> video short description framerate")];
}
else
{
- [info appendFormat:NSLocalizedString(@"CRF", @"HBJob -> video short description framerate")];
+ [info appendString:HBKitLocalizedString(@"CRF", @"HBJob -> video short description framerate")];
}
}
else
@@ -728,11 +730,11 @@ static NSDictionary *shortHeightAttr;
NSUInteger count = self.audio.tracks.count - 3;
if (count == 1)
{
- [info appendString:NSLocalizedString(@"+ 1 additional audio track", @"HBJob -> audio short description")];
+ [info appendString:HBKitLocalizedString(@"+ 1 additional audio track", @"HBJob -> audio short description")];
}
else
{
- [info appendFormat:NSLocalizedString(@"+ %lu additional audio tracks", @"HBJob -> audio short description"), (unsigned long)count];
+ [info appendFormat:HBKitLocalizedString(@"+ %lu additional audio tracks", @"HBJob -> audio short description"), (unsigned long)count];
}
}
@@ -759,7 +761,7 @@ static NSDictionary *shortHeightAttr;
if (track.burnedIn)
{
- [info appendString:NSLocalizedString(@", Burned", @"HBJob -> subtitles short description")];
+ [info appendString:HBKitLocalizedString(@", Burned", @"HBJob -> subtitles short description")];
}
[info appendString:@"\n"];
@@ -776,11 +778,11 @@ static NSDictionary *shortHeightAttr;
NSUInteger count = self.subtitles.tracks.count - 3;
if (count == 1)
{
- [info appendString:NSLocalizedString(@"+ 1 additional subtitles track", @"HBJob -> subtitles short description")];
+ [info appendString:HBKitLocalizedString(@"+ 1 additional subtitles track", @"HBJob -> subtitles short description")];
}
else
{
- [info appendFormat:NSLocalizedString(@"+ %lu additional subtitles tracks", @"HBJob -> subtitles short description"), (unsigned long)count];
+ [info appendFormat:HBKitLocalizedString(@"+ %lu additional subtitles tracks", @"HBJob -> subtitles short description"), (unsigned long)count];
}
}
@@ -815,7 +817,7 @@ static NSDictionary *shortHeightAttr;
if (self.chaptersEnabled && self.chapterTitles.count > 1)
{
[info appendString:@"\n"];
- [info appendString:NSLocalizedString(@"Chapter Markers", @"HBJob -> chapters short description")];
+ [info appendString:HBKitLocalizedString(@"Chapter Markers", @"HBJob -> chapters short description")];
}
return info;
@@ -829,14 +831,14 @@ static NSDictionary *shortHeightAttr;
// Detelecine
if (![filters.detelecine isEqualToString:@"off"])
{
- [summary appendString:NSLocalizedString(@"Detelecine", @"HBJob -> filters short description")];
+ [summary appendString:HBKitLocalizedString(@"Detelecine", @"HBJob -> filters short description")];
[summary appendString:@", "];
}
// Comb detect
if (![filters.combDetection isEqualToString:@"off"])
{
- [summary appendString:NSLocalizedString(@"Comb Detect", @"HBJob -> filters short description")];
+ [summary appendString:HBKitLocalizedString(@"Comb Detect", @"HBJob -> filters short description")];
[summary appendString:@", "];
}
@@ -855,7 +857,7 @@ static NSDictionary *shortHeightAttr;
// Deblock
if (filters.deblock > 0)
{
- [summary appendString:NSLocalizedString(@"Deblock", @"HBJob -> filters short description")];
+ [summary appendString:HBKitLocalizedString(@"Deblock", @"HBJob -> filters short description")];
[summary appendString:@", "];
}
@@ -884,14 +886,14 @@ static NSDictionary *shortHeightAttr;
// Grayscale
if (filters.grayscale)
{
- [summary appendString:NSLocalizedString(@"Grayscale", @"HBJob -> filters short description")];
+ [summary appendString:HBKitLocalizedString(@"Grayscale", @"HBJob -> filters short description")];
[summary appendString:@", "];
}
// Rotation
if (filters.rotate || filters.flip)
{
- [summary appendString:NSLocalizedString(@"Rotation", @"HBJob -> filters short description")];
+ [summary appendString:HBKitLocalizedString(@"Rotation", @"HBJob -> filters short description")];
[summary appendString:@", "];
}
@@ -902,7 +904,7 @@ static NSDictionary *shortHeightAttr;
if (summary.length == 0)
{
- [summary appendString:NSLocalizedString(@"None", @"HBJob -> filters short description")];
+ [summary appendString:HBKitLocalizedString(@"None", @"HBJob -> filters short description")];
}
return summary;
@@ -922,11 +924,11 @@ static NSDictionary *shortHeightAttr;
int container = [value intValue];
if (container & HB_MUX_MASK_MP4)
{
- return NSLocalizedString(@"MP4 File", @"HBJob -> Format display name");
+ return HBKitLocalizedString(@"MP4 File", @"HBJob -> Format display name");
}
else if (container & HB_MUX_MASK_MKV)
{
- return NSLocalizedString(@"MKV File", @"HBJob -> Format display name");
+ return HBKitLocalizedString(@"MKV File", @"HBJob -> Format display name");
}
else
{
@@ -949,11 +951,11 @@ static NSDictionary *shortHeightAttr;
- (id)reverseTransformedValue:(id)value
{
- if ([value isEqualToString:NSLocalizedString(@"MP4 File", @"HBJob -> Format display name")])
+ if ([value isEqualToString:HBKitLocalizedString(@"MP4 File", @"HBJob -> Format display name")])
{
return @(HB_MUX_AV_MP4);
}
- else if ([value isEqualToString:NSLocalizedString(@"MKV File", @"HBJob -> Format display name")])
+ else if ([value isEqualToString:HBKitLocalizedString(@"MKV File", @"HBJob -> Format display name")])
{
return @(HB_MUX_AV_MKV);
}
diff --git a/macosx/HBJob.m b/macosx/HBJob.m
index ccebe8a0c..beb7e5875 100644
--- a/macosx/HBJob.m
+++ b/macosx/HBJob.m
@@ -13,6 +13,7 @@
#import "HBMutablePreset.h"
#import "HBCodingUtilities.h"
+#import "HBLocalizationUtilities.h"
#import "HBUtilities.h"
#import "HBSecurityAccessToken.h"
@@ -178,8 +179,8 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
{
if (outError)
{
- *outError = [NSError errorWithDomain:@"HBError" code:0 userInfo:@{NSLocalizedDescriptionKey: NSLocalizedString(@"Invalid name", @"HBJob -> invalid name error description"),
- NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"The file name can't contain the / character.", @"HBJob -> invalid name error recovery suggestion")}];
+ *outError = [NSError errorWithDomain:@"HBError" code:0 userInfo:@{NSLocalizedDescriptionKey: HBKitLocalizedString(@"Invalid name", @"HBJob -> invalid name error description"),
+ NSLocalizedRecoverySuggestionErrorKey: HBKitLocalizedString(@"The file name can't contain the / character.", @"HBJob -> invalid name error recovery suggestion")}];
}
return NO;
}
diff --git a/macosx/HBLocalizationUtilities.h b/macosx/HBLocalizationUtilities.h
new file mode 100644
index 000000000..6db55dca2
--- /dev/null
+++ b/macosx/HBLocalizationUtilities.h
@@ -0,0 +1,15 @@
+//
+// HBLocalizationUtilities.h
+// HandBrakeKit
+//
+// Created by Damiano Galassi on 20/10/2018.
+//
+
+#ifndef HBLocalizationUtilities_h
+#define HBLocalizationUtilities_h
+
+#define HBKitLocalizedString(key, comment) \
+[[NSBundle bundleForClass:self.class] localizedStringForKey:(key) value:@"" table:nil]
+
+
+#endif /* HBLocalizationUtilities_h */
diff --git a/macosx/HBPicture+UIAdditions.m b/macosx/HBPicture+UIAdditions.m
index 39b0d378d..23d3e8b0f 100644
--- a/macosx/HBPicture+UIAdditions.m
+++ b/macosx/HBPicture+UIAdditions.m
@@ -6,6 +6,8 @@
#import "HBPicture+UIAdditions.h"
#import "HBTitle.h"
+#import "HBLocalizationUtilities.h"
+
#include "hb.h"
@implementation HBPicture (UIAdditions)
@@ -91,7 +93,7 @@
- (NSString *)shortInfo
{
- return [NSString stringWithFormat:NSLocalizedString(@"%dx%d Storage, %dx%d Display", @"HBPicture -> short info"), self.width, self.height, self.displayWidth, self.height];
+ return [NSString stringWithFormat:HBKitLocalizedString(@"%dx%d Storage, %dx%d Display", @"HBPicture -> short info"), self.width, self.height, self.displayWidth, self.height];
}
+ (NSSet<NSString *> *)keyPathsForValuesAffectingSummary
diff --git a/macosx/HBPreset.m b/macosx/HBPreset.m
index 4d3c2f095..98d424253 100644
--- a/macosx/HBPreset.m
+++ b/macosx/HBPreset.m
@@ -10,6 +10,7 @@
#include "preset.h"
#import "NSJSONSerialization+HBAdditions.h"
+#import "HBLocalizationUtilities.h"
@interface HBPreset ()
@@ -197,9 +198,9 @@
- (NSError *)invalidPresetErrorForUrl:(NSURL *)url
{
- NSString *description = [NSString stringWithFormat:NSLocalizedString(@"The preset \"%@\" could not be imported.", @"Preset -> import error description"),
+ NSString *description = [NSString stringWithFormat:HBKitLocalizedString(@"The preset \"%@\" could not be imported.", @"Preset -> import error description"),
url.lastPathComponent];
- NSString *reason = NSLocalizedString(@"The selected preset is invalid.", @"Preset -> import error reason");
+ NSString *reason = HBKitLocalizedString(@"The selected preset is invalid.", @"Preset -> import error reason");
return [NSError errorWithDomain:@"HBPresetDomain" code:1 userInfo:@{NSLocalizedDescriptionKey: description,
NSLocalizedRecoverySuggestionErrorKey: reason}];
@@ -208,9 +209,9 @@
- (NSError *)newerPresetErrorForUrl:(NSURL *)url
{
- NSString *description = [NSString stringWithFormat:NSLocalizedString(@"The preset \"%@\" could not be imported.", @"Preset -> import error description"),
+ NSString *description = [NSString stringWithFormat:HBKitLocalizedString(@"The preset \"%@\" could not be imported.", @"Preset -> import error description"),
url.lastPathComponent];
- NSString *reason = NSLocalizedString(@"The selected preset was created with a newer version of HandBrake.", @"Preset -> import error reason");
+ NSString *reason = HBKitLocalizedString(@"The selected preset was created with a newer version of HandBrake.", @"Preset -> import error reason");
return [NSError errorWithDomain:@"HBPresetDomain" code:2 userInfo:@{NSLocalizedDescriptionKey: description,
NSLocalizedRecoverySuggestionErrorKey: reason}];
diff --git a/macosx/HBRange+UIAdditions.m b/macosx/HBRange+UIAdditions.m
index 04c7bfdac..f574225a3 100644
--- a/macosx/HBRange+UIAdditions.m
+++ b/macosx/HBRange+UIAdditions.m
@@ -6,6 +6,7 @@
#import "HBRange+UIAdditions.h"
#import "HBTitle.h"
+#import "HBLocalizationUtilities.h"
@implementation HBRange (UIAdditions)
@@ -20,9 +21,9 @@
- (NSArray *)types
{
- return @[NSLocalizedString(@"Chapters", @"HBRange -> display name"),
- NSLocalizedString(@"Seconds", @"HBRange -> display name"),
- NSLocalizedString(@"Frames", @"HBRange -> display name")];
+ return @[HBKitLocalizedString(@"Chapters", @"HBRange -> display name"),
+ HBKitLocalizedString(@"Seconds", @"HBRange -> display name"),
+ HBKitLocalizedString(@"Frames", @"HBRange -> display name")];
}
- (BOOL)chaptersSelected
diff --git a/macosx/HBStateFormatter+Private.m b/macosx/HBStateFormatter+Private.m
index d02484a74..f00b4fb56 100644
--- a/macosx/HBStateFormatter+Private.m
+++ b/macosx/HBStateFormatter+Private.m
@@ -7,6 +7,7 @@
//
#import "HBStateFormatter+Private.h"
+#import "HBLocalizationUtilities.h"
@implementation HBStateFormatter (Private)
@@ -21,12 +22,12 @@
case HB_STATE_SEARCHING:
{
[string appendFormat:
- NSLocalizedString(@"Searching for start point: %.2f %%", @"HBStateFormatter -> search pass display name"),
+ HBKitLocalizedString(@"Searching for start point: %.2f %%", @"HBStateFormatter -> search pass display name"),
100.0 * p.progress];
if (p.seconds > -1)
{
- [string appendFormat:NSLocalizedString(@" (ETA %02dh%02dm%02ds)", @"HBStateFormatter -> search time format"), p.hours, p.minutes, p.seconds];
+ [string appendFormat:HBKitLocalizedString(@" (ETA %02dh%02dm%02ds)", @"HBStateFormatter -> search time format"), p.hours, p.minutes, p.seconds];
}
break;
@@ -34,7 +35,7 @@
case HB_STATE_WORKING:
{
- [string appendFormat:NSLocalizedString(@"Encoding %@ ", @"HBStateFormatter -> work pass display name"), self.title];
+ [string appendFormat:HBKitLocalizedString(@"Encoding %@ ", @"HBStateFormatter -> work pass display name"), self.title];
if (self.twoLines)
{
@@ -46,15 +47,15 @@
if (p.pass_id == HB_PASS_SUBTITLE)
{
[string appendFormat:
- NSLocalizedString(@"Pass %d %@ of %d, %.2f %%", @"HBStateFormatter -> work pass number format"),
+ HBKitLocalizedString(@"Pass %d %@ of %d, %.2f %%", @"HBStateFormatter -> work pass number format"),
p.pass,
- NSLocalizedString(@"(subtitle scan)", @"HBStateFormatter -> work pass type format"),
+ HBKitLocalizedString(@"(subtitle scan)", @"HBStateFormatter -> work pass type format"),
p.pass_count, 100.0 * p.progress];
}
else
{
[string appendFormat:
- NSLocalizedString(@"Pass %d of %d, %.2f %%", @"HBStateFormatter -> work pass number format"),
+ HBKitLocalizedString(@"Pass %d of %d, %.2f %%", @"HBStateFormatter -> work pass number format"),
p.pass, p.pass_count, 100.0 * p.progress];
}
}
@@ -64,13 +65,13 @@
if (p.rate_cur > 0.0)
{
[string appendFormat:
- NSLocalizedString(@" (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)", @"HBStateFormatter -> work time format"),
+ HBKitLocalizedString(@" (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)", @"HBStateFormatter -> work time format"),
p.rate_cur, p.rate_avg, p.hours, p.minutes, p.seconds];
}
else
{
[string appendFormat:
- NSLocalizedString(@" (ETA %02dh%02dm%02ds)", @"HBStateFormatter -> work time format"),
+ HBKitLocalizedString(@" (ETA %02dh%02dm%02ds)", @"HBStateFormatter -> work time format"),
p.hours, p.minutes, p.seconds];
}
}
@@ -81,13 +82,13 @@
case HB_STATE_MUXING:
{
- [string appendString:NSLocalizedString(@"Muxing…", @"HBStateFormatter -> pass display name")];
+ [string appendString:HBKitLocalizedString(@"Muxing…", @"HBStateFormatter -> pass display name")];
break;
}
case HB_STATE_PAUSED:
{
- [string appendString:NSLocalizedString(@"Paused", @"HBStateFormatter -> pass display name")];
+ [string appendString:HBKitLocalizedString(@"Paused", @"HBStateFormatter -> pass display name")];
break;
}
@@ -97,14 +98,14 @@
if (p.preview_cur)
{
[string appendFormat:
- NSLocalizedString(@"Scanning title %d of %d, preview %d…", @"HBStateFormatter -> scan pass format"),
+ HBKitLocalizedString(@"Scanning title %d of %d, preview %d…", @"HBStateFormatter -> scan pass format"),
p.title_cur, p.title_count,
p.preview_cur];
}
else
{
[string appendFormat:
- NSLocalizedString(@"Scanning title %d of %d…", @"HBStateFormatter -> scan pass format"),
+ HBKitLocalizedString(@"Scanning title %d of %d…", @"HBStateFormatter -> scan pass format"),
p.title_cur, p.title_count];
}
#undef p
diff --git a/macosx/HBSubtitles.m b/macosx/HBSubtitles.m
index 39f9d20b8..3193045b7 100644
--- a/macosx/HBSubtitles.m
+++ b/macosx/HBSubtitles.m
@@ -13,6 +13,7 @@
#import "HBJob+HBJobConversion.h"
#import "HBTitle.h"
#import "HBCodingUtilities.h"
+#import "HBLocalizationUtilities.h"
#import "HBUtilities.h"
#import "HBJob+Private.h"
#import "HBSecurityAccessToken.h"
@@ -63,10 +64,10 @@ extern NSString *keySubTrackSrtFileURLBookmark;
int foreignAudioType = VOBSUB;
// now set the name of the Foreign Audio Search track
- NSMutableString *foreignAudioSearchTrackName = [NSLocalizedString(@"Foreign Audio Search", "HBSubtitles -> search pass name") mutableCopy];
+ NSMutableString *foreignAudioSearchTrackName = [HBKitLocalizedString(@"Foreign Audio Search", "HBSubtitles -> search pass name") mutableCopy];
// Add the none and foreign track to the source array
- NSDictionary *none = @{ keySubTrackName: NSLocalizedString(@"None", @"HBSubtitles -> none track name")};
+ NSDictionary *none = @{ keySubTrackName: HBKitLocalizedString(@"None", @"HBSubtitles -> none track name")};
[sourceTracks insertObject:none atIndex:0];
NSDictionary *foreign = @{ keySubTrackName: [foreignAudioSearchTrackName copy],
diff --git a/macosx/HBTitle.m b/macosx/HBTitle.m
index 078257833..7a34612eb 100644
--- a/macosx/HBTitle.m
+++ b/macosx/HBTitle.m
@@ -9,6 +9,7 @@
#import "HBChapter.h"
#import "HBPreset.h"
#import "NSDictionary+HBAdditions.h"
+#import "HBLocalizationUtilities.h"
#include "lang.h"
@@ -149,18 +150,18 @@ extern NSString *keySubTrackType;
[format appendString:@", "];
- [format appendFormat:NSLocalizedString(@"%.6g FPS", @"Title short description -> video format"), _hb_title->vrate.num / (double)_hb_title->vrate.den];
+ [format appendFormat:HBKitLocalizedString(@"%.6g FPS", @"Title short description -> video format"), _hb_title->vrate.num / (double)_hb_title->vrate.den];
hb_list_t *audioList = _hb_title->list_audio;
int audioCount = hb_list_count(audioList);
if (audioCount > 1)
{
- [format appendFormat:NSLocalizedString(@", %d audio tracks", @"Title short description -> audio format"), audioCount];
+ [format appendFormat:HBKitLocalizedString(@", %d audio tracks", @"Title short description -> audio format"), audioCount];
}
else if (audioCount == 1)
{
- [format appendFormat:NSLocalizedString(@", 1 audio track", @"Title short description -> audio format")];
+ [format appendString:HBKitLocalizedString(@", 1 audio track", @"Title short description -> audio format")];
}
hb_list_t *subList = _hb_title->list_subtitle;
@@ -168,11 +169,11 @@ extern NSString *keySubTrackType;
if (subCount > 1)
{
- [format appendFormat:NSLocalizedString(@", %d subtitles tracks", @"Title short description -> subtitles format"), subCount];
+ [format appendFormat:HBKitLocalizedString(@", %d subtitles tracks", @"Title short description -> subtitles format"), subCount];
}
else if (subCount == 1)
{
- [format appendFormat:NSLocalizedString(@", 1 subtitles track", @"Title short description -> subtitles format")];
+ [format appendString:HBKitLocalizedString(@", 1 subtitles track", @"Title short description -> subtitles format")];
}
return format;
@@ -322,7 +323,7 @@ extern NSString *keySubTrackType;
}
else
{
- title = [NSString stringWithFormat:NSLocalizedString(@"Chapter %d", "Title -> chapter name"), i + 1];
+ title = [NSString stringWithFormat:HBKitLocalizedString(@"Chapter %d", "Title -> chapter name"), i + 1];
}
[chapters addObject:[[HBChapter alloc] initWithTitle:title
diff --git a/macosx/HBVideo+UIAdditions.m b/macosx/HBVideo+UIAdditions.m
index b16572990..f330e3526 100644
--- a/macosx/HBVideo+UIAdditions.m
+++ b/macosx/HBVideo+UIAdditions.m
@@ -6,6 +6,8 @@
#import "HBVideo+UIAdditions.h"
#import "HBJob+Private.h"
+#import "HBLocalizationUtilities.h"
+
#include "hb.h"
@implementation HBVideo (UIAdditions)
@@ -43,7 +45,7 @@
{
NSMutableArray *framerates = [NSMutableArray array];
- [framerates addObject:NSLocalizedString(@"Same as source", @"HBVideo -> frame rates display name")];
+ [framerates addObject:HBKitLocalizedString(@"Same as source", @"HBVideo -> frame rates display name")];
for (const hb_rate_t *video_framerate = hb_video_framerate_get_next(NULL);
video_framerate != NULL;
@@ -265,7 +267,7 @@
}
else
{
- return NSLocalizedString(@"Same as source", @"HBVideo -> frame rates display name");
+ return HBKitLocalizedString(@"Same as source", @"HBVideo -> frame rates display name");
}
}
@@ -276,7 +278,7 @@
- (id)reverseTransformedValue:(id)value
{
- if ([value isEqualTo:NSLocalizedString(@"Same as source", @"HBVideo -> frame rates display name")])
+ if ([value isEqualTo:HBKitLocalizedString(@"Same as source", @"HBVideo -> frame rates display name")])
{
return @0;
}
diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj
index 858951e7c..0de1deade 100644
--- a/macosx/HandBrake.xcodeproj/project.pbxproj
+++ b/macosx/HandBrake.xcodeproj/project.pbxproj
@@ -250,6 +250,9 @@
A9ABD1A71E2A0F7500EC8B65 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9ABD1A51E2A0F0700EC8B65 /* CoreText.framework */; };
A9ABD1A91E2A0F8200EC8B65 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9ABD1A81E2A0F8200EC8B65 /* CoreGraphics.framework */; };
A9ABD1AA1E2A0F8F00EC8B65 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9ABD1A81E2A0F8200EC8B65 /* CoreGraphics.framework */; };
+ A9B6B9EE217B38D200B957AE /* HBLocalizationUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = A9B6B9ED217B38D200B957AE /* HBLocalizationUtilities.h */; };
+ A9B6B9F1217B408E00B957AE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A9B6B9EF217B408E00B957AE /* InfoPlist.strings */; };
+ A9B6B9F4217B408E00B957AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A9B6B9F2217B408E00B957AE /* Localizable.strings */; };
A9BC24C91A69293E007DC41A /* HBAttributedStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9BC24C81A69293E007DC41A /* HBAttributedStringAdditions.m */; };
A9CE0A921F57EC3400724577 /* HBImageUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A9CE0A911F57EC3400724577 /* HBImageUtilities.m */; };
A9CF25F71990D6820023F727 /* HBPresetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9CF25F61990D6820023F727 /* HBPresetsViewController.m */; };
@@ -605,6 +608,9 @@
A9ABD1A51E2A0F0700EC8B65 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
A9ABD1A81E2A0F8200EC8B65 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
A9B34D74197696FE00871B7D /* DiskArbitration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiskArbitration.framework; path = System/Library/Frameworks/DiskArbitration.framework; sourceTree = SDKROOT; };
+ A9B6B9ED217B38D200B957AE /* HBLocalizationUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HBLocalizationUtilities.h; sourceTree = "<group>"; };
+ A9B6B9F0217B408E00B957AE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ A9B6B9F3217B408E00B957AE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
A9BC24C71A69293E007DC41A /* HBAttributedStringAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBAttributedStringAdditions.h; sourceTree = "<group>"; };
A9BC24C81A69293E007DC41A /* HBAttributedStringAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBAttributedStringAdditions.m; sourceTree = "<group>"; };
A9C183931A716B8F00C897C2 /* HBTitleSelectionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBTitleSelectionController.h; sourceTree = "<group>"; };
@@ -1034,6 +1040,7 @@
A9CE0A931F57EC4600724577 /* HBImageUtilities.h */,
A9CE0A911F57EC3400724577 /* HBImageUtilities.m */,
A9160A331AE7A165009A7818 /* HBCodingUtilities.h */,
+ A9B6B9ED217B38D200B957AE /* HBLocalizationUtilities.h */,
A997D8EB1A4ABB0900E19B6F /* HBPresetCoding.h */,
A975C08C1AE8C5270061870D /* HBStateFormatter.h */,
A975C08D1AE8C5270061870D /* HBStateFormatter.m */,
@@ -1142,6 +1149,8 @@
A9AA44791970664A00D7DEFC /* HBUtilities.m */,
A9736F041C7DA5FE008F1D18 /* HandBrakeKit.h */,
A9736F061C7DA5FE008F1D18 /* Info.plist */,
+ A9B6B9F2217B408E00B957AE /* Localizable.strings */,
+ A9B6B9EF217B408E00B957AE /* InfoPlist.strings */,
);
path = HandBrakeKit;
sourceTree = "<group>";
@@ -1384,6 +1393,7 @@
A98B8E241C7DD2A200B810C9 /* HBPresetCoding.h in Headers */,
A9294CC91DC4BBF7004D3415 /* HBJob+Private.h in Headers */,
A91CE2FE1C7DB99D0068F46F /* HBTreeNode.h in Headers */,
+ A9B6B9EE217B38D200B957AE /* HBLocalizationUtilities.h in Headers */,
A91D54871E378ABD006D0997 /* HBSecurityAccessToken.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1592,6 +1602,8 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ A9B6B9F1217B408E00B957AE /* InfoPlist.strings in Resources */,
+ A9B6B9F4217B408E00B957AE /* Localizable.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2044,6 +2056,22 @@
name = HBPreviewViewController.xib;
sourceTree = "<group>";
};
+ A9B6B9EF217B408E00B957AE /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ A9B6B9F0217B408E00B957AE /* de */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ A9B6B9F2217B408E00B957AE /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ A9B6B9F3217B408E00B957AE /* de */,
+ );
+ name = Localizable.strings;
+ sourceTree = "<group>";
+ };
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@@ -2103,6 +2131,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
+ LOCALIZED_STRING_MACRO_NAMES = (
+ NSLocalizedString,
+ CFLocalizedString,
+ HBKitLocalizedString,
+ );
MACOSX_DEPLOYMENT_TARGET = 10.10;
OTHER_LDFLAGS = (
"-filelist",
@@ -2167,6 +2200,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
+ LOCALIZED_STRING_MACRO_NAMES = (
+ NSLocalizedString,
+ CFLocalizedString,
+ HBKitLocalizedString,
+ );
MACOSX_DEPLOYMENT_TARGET = 10.10;
OTHER_LDFLAGS = (
"-filelist",
@@ -2615,6 +2653,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
+ LOCALIZED_STRING_MACRO_NAMES = (
+ NSLocalizedString,
+ CFLocalizedString,
+ HBKitLocalizedString,
+ );
MACOSX_DEPLOYMENT_TARGET = 10.10;
OTHER_LDFLAGS = (
"-filelist",
@@ -2861,6 +2904,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
+ LOCALIZED_STRING_MACRO_NAMES = (
+ NSLocalizedString,
+ CFLocalizedString,
+ HBKitLocalizedString,
+ );
MACOSX_DEPLOYMENT_TARGET = 10.10;
OTHER_LDFLAGS = (
"-filelist",