mirror of
https://github.com/transmission/transmission.git
synced 2025-12-26 21:29:18 +00:00
Adopt localizedStringWithFormat for displayed quantities (#4109)
* Adopt localizedStringWithFormat for displayed quantities * xib internationalization support is done
This commit is contained in:
@@ -320,7 +320,7 @@ typedef NS_ENUM(NSUInteger, PopupPriority) {
|
||||
NSUInteger count = self.torrent.fileCount;
|
||||
if (count != 1)
|
||||
{
|
||||
fileString = [NSString stringWithFormat:NSLocalizedString(@"%lu files", "Add torrent -> info"), count];
|
||||
fileString = [NSString localizedStringWithFormat:NSLocalizedString(@"%lu files", "Add torrent -> info"), count];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
NSParameterAssert(torrent != nil);
|
||||
|
||||
[self.fHashes addObject:torrent.hashString];
|
||||
NSApp.dockTile.badgeLabel = [NSString formattedUInteger:self.fHashes.count];
|
||||
NSApp.dockTile.badgeLabel = [NSString localizedStringWithFormat:@"%lu", self.fHashes.count];
|
||||
}
|
||||
|
||||
- (void)removeTorrent:(Torrent*)torrent
|
||||
@@ -59,7 +59,7 @@
|
||||
[self.fHashes removeObject:torrent.hashString];
|
||||
if (self.fHashes.count > 0)
|
||||
{
|
||||
NSApp.dockTile.badgeLabel = [NSString formattedUInteger:self.fHashes.count];
|
||||
NSApp.dockTile.badgeLabel = [NSString localizedStringWithFormat:@"%lu", self.fHashes.count];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -969,11 +969,11 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
@"There is an active transfer that will be paused on quit."
|
||||
" The transfer will automatically resume on the next launch.",
|
||||
"Confirm Quit panel -> message") :
|
||||
[NSString stringWithFormat:NSLocalizedString(
|
||||
@"There are %lu active transfers that will be paused on quit."
|
||||
" The transfers will automatically resume on the next launch.",
|
||||
"Confirm Quit panel -> message"),
|
||||
active];
|
||||
[NSString localizedStringWithFormat:NSLocalizedString(
|
||||
@"There are %lu active transfers that will be paused on quit."
|
||||
" The transfers will automatically resume on the next launch.",
|
||||
"Confirm Quit panel -> message"),
|
||||
active];
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"Quit", "Confirm Quit panel -> button")];
|
||||
[alert addButtonWithTitle:NSLocalizedString(@"Cancel", "Confirm Quit panel -> button")];
|
||||
alert.showsSuppressionButton = YES;
|
||||
@@ -1787,30 +1787,30 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
{
|
||||
if (deleteData)
|
||||
{
|
||||
title = [NSString stringWithFormat:NSLocalizedString(
|
||||
@"Are you sure you want to remove %lu transfers from the transfer list"
|
||||
" and trash the data files?",
|
||||
"Removal confirm panel -> title"),
|
||||
selected];
|
||||
title = [NSString localizedStringWithFormat:NSLocalizedString(
|
||||
@"Are you sure you want to remove %lu transfers from the transfer list"
|
||||
" and trash the data files?",
|
||||
"Removal confirm panel -> title"),
|
||||
selected];
|
||||
}
|
||||
else
|
||||
{
|
||||
title = [NSString stringWithFormat:NSLocalizedString(
|
||||
@"Are you sure you want to remove %lu transfers from the transfer list?",
|
||||
"Removal confirm panel -> title"),
|
||||
selected];
|
||||
title = [NSString localizedStringWithFormat:NSLocalizedString(
|
||||
@"Are you sure you want to remove %lu transfers from the transfer list?",
|
||||
"Removal confirm panel -> title"),
|
||||
selected];
|
||||
}
|
||||
|
||||
if (selected == active)
|
||||
{
|
||||
message = [NSString stringWithFormat:NSLocalizedString(@"There are %lu active transfers.", "Removal confirm panel -> message part 1"),
|
||||
active];
|
||||
message = [NSString localizedStringWithFormat:NSLocalizedString(@"There are %lu active transfers.", "Removal confirm panel -> message part 1"),
|
||||
active];
|
||||
}
|
||||
else
|
||||
{
|
||||
message = [NSString stringWithFormat:NSLocalizedString(@"There are %1$lu transfers (%2$lu active).", "Removal confirm panel -> message part 1"),
|
||||
selected,
|
||||
active];
|
||||
message = [NSString localizedStringWithFormat:NSLocalizedString(@"There are %1$lu transfers (%2$lu active).", "Removal confirm panel -> message part 1"),
|
||||
selected,
|
||||
active];
|
||||
}
|
||||
message = [message stringByAppendingFormat:@" %@",
|
||||
NSLocalizedString(
|
||||
@@ -1983,10 +1983,10 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
}
|
||||
else
|
||||
{
|
||||
message = [NSString stringWithFormat:NSLocalizedString(
|
||||
@"Are you sure you want to remove %lu completed transfers from the transfer list?",
|
||||
"Remove completed confirm panel -> title"),
|
||||
torrents.count];
|
||||
message = [NSString localizedStringWithFormat:NSLocalizedString(
|
||||
@"Are you sure you want to remove %lu completed transfers from the transfer list?",
|
||||
"Remove completed confirm panel -> title"),
|
||||
torrents.count];
|
||||
|
||||
info = NSLocalizedString(
|
||||
@"Once removed, continuing the transfers will require the torrent files or magnet links.",
|
||||
@@ -2040,7 +2040,8 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
else
|
||||
{
|
||||
panel.message = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"Select the new folder for %lu data files.", "Move torrent -> select destination folder"), count];
|
||||
localizedStringWithFormat:NSLocalizedString(@"Select the new folder for %lu data files.", "Move torrent -> select destination folder"),
|
||||
count];
|
||||
}
|
||||
|
||||
[panel beginSheetModalForWindow:self.fWindow completionHandler:^(NSInteger result) {
|
||||
@@ -2314,7 +2315,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
NSUInteger totalCount = self.fTorrents.count;
|
||||
if (totalCount != 1)
|
||||
{
|
||||
totalTorrentsString = [NSString stringWithFormat:NSLocalizedString(@"%lu transfers", "Status bar transfer count"), totalCount];
|
||||
totalTorrentsString = [NSString localizedStringWithFormat:NSLocalizedString(@"%lu transfers", "Status bar transfer count"), totalCount];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2330,7 +2331,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
}
|
||||
|
||||
totalTorrentsString = [NSString stringWithFormat:NSLocalizedString(@"%@ of %@", "Status bar transfer count"),
|
||||
[NSString formattedUInteger:count],
|
||||
[NSString localizedStringWithFormat:@"%lu", count],
|
||||
totalTorrentsString];
|
||||
}
|
||||
|
||||
@@ -4971,13 +4972,13 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
||||
|
||||
if (seeding > 0)
|
||||
{
|
||||
NSString* title = [NSString stringWithFormat:NSLocalizedString(@"%lu Seeding", "Dock item - Seeding"), seeding];
|
||||
NSString* title = [NSString localizedStringWithFormat:NSLocalizedString(@"%lu Seeding", "Dock item - Seeding"), seeding];
|
||||
[menu addItemWithTitle:title action:nil keyEquivalent:@""];
|
||||
}
|
||||
|
||||
if (downloading > 0)
|
||||
{
|
||||
NSString* title = [NSString stringWithFormat:NSLocalizedString(@"%lu Downloading", "Dock item - Downloading"), downloading];
|
||||
NSString* title = [NSString localizedStringWithFormat:NSLocalizedString(@"%lu Downloading", "Dock item - Downloading"), downloading];
|
||||
[menu addItemWithTitle:title action:nil keyEquivalent:@""];
|
||||
}
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ NSMutableSet* creatorWindowControllerSet = nil;
|
||||
{
|
||||
NSUInteger const count = self.fBuilder->fileCount();
|
||||
NSString* const fileString = count != 1 ?
|
||||
[NSString stringWithFormat:NSLocalizedString(@"%lu files", "Create torrent -> info"), count] :
|
||||
[NSString localizedStringWithFormat:NSLocalizedString(@"%lu files", "Create torrent -> info"), count] :
|
||||
NSLocalizedString(@"1 file", "Create torrent -> info");
|
||||
status_string = [NSString stringWithFormat:@"%@, %@", fileString, status_string];
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
fileString = [NSString stringWithFormat:NSLocalizedString(@"%lu files", "Drag overlay -> torrents"), fileCount];
|
||||
fileString = [NSString localizedStringWithFormat:NSLocalizedString(@"%lu files", "Drag overlay -> torrents"), fileCount];
|
||||
}
|
||||
secondString = [NSString stringWithFormat:@"%@, %@", fileString, secondString];
|
||||
}
|
||||
@@ -117,7 +117,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
name = [NSString stringWithFormat:NSLocalizedString(@"%lu Torrent Files", "Drag overlay -> torrents"), count];
|
||||
name = [NSString localizedStringWithFormat:NSLocalizedString(@"%lu Torrent Files", "Drag overlay -> torrents"), count];
|
||||
secondString = [secondString stringByAppendingString:@" total"];
|
||||
icon = [NSImage imageNamed:@"TransmissionDocument.icns"];
|
||||
}
|
||||
|
||||
@@ -25,8 +25,9 @@
|
||||
|
||||
_count = count;
|
||||
|
||||
self.toolTip = count == 1 ? NSLocalizedString(@"1 transfer", "Filter Button -> tool tip") :
|
||||
[NSString stringWithFormat:NSLocalizedString(@"%lu transfers", "Filter Bar Button -> tool tip"), count];
|
||||
self.toolTip = count == 1 ?
|
||||
NSLocalizedString(@"1 transfer", "Filter Button -> tool tip") :
|
||||
[NSString localizedStringWithFormat:NSLocalizedString(@"%lu transfers", "Filter Bar Button -> tool tip"), count];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -160,9 +160,9 @@
|
||||
{
|
||||
Torrent* torrent = self.fTorrents[0];
|
||||
|
||||
#warning candidate for localizedStringWithFormat (although then we'll get two commas)
|
||||
// Associated Press Style: "Use a semicolon to clarify a series that includes a number of commas."
|
||||
NSString* piecesString = !torrent.magnet ?
|
||||
[NSString stringWithFormat:@"%ld, %@", torrent.pieceCount, [NSString stringForFileSize:torrent.pieceSize]] :
|
||||
[NSString localizedStringWithFormat:@"%ld; %@", torrent.pieceCount, [NSString stringForFileSize:torrent.pieceSize]] :
|
||||
@"";
|
||||
self.fPiecesField.stringValue = piecesString;
|
||||
|
||||
|
||||
@@ -187,7 +187,8 @@ static NSString* const kWebSeedAnimationId = @"webSeed";
|
||||
}
|
||||
else
|
||||
{
|
||||
connectedText = [NSString stringWithFormat:NSLocalizedString(@"%lu Connected", "Inspector -> Peers tab -> peers"), connected];
|
||||
connectedText = [NSString
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu Connected", "Inspector -> Peers tab -> peers"), connected];
|
||||
}
|
||||
|
||||
if (connected > 0)
|
||||
@@ -196,12 +197,12 @@ static NSString* const kWebSeedAnimationId = @"webSeed";
|
||||
if (toUs > 0)
|
||||
{
|
||||
[upDownComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"DL from %lu", "Inspector -> Peers tab -> peers"), toUs]];
|
||||
addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"DL from %lu", "Inspector -> Peers tab -> peers"), toUs]];
|
||||
}
|
||||
if (fromUs > 0)
|
||||
{
|
||||
[upDownComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"UL to %lu", "Inspector -> Peers tab -> peers"), fromUs]];
|
||||
addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"UL to %lu", "Inspector -> Peers tab -> peers"), fromUs]];
|
||||
}
|
||||
if (upDownComponents.count > 0)
|
||||
{
|
||||
@@ -211,38 +212,38 @@ static NSString* const kWebSeedAnimationId = @"webSeed";
|
||||
NSMutableArray* fromComponents = [NSMutableArray arrayWithCapacity:7];
|
||||
if (tracker > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu tracker", "Inspector -> Peers tab -> peers"), tracker]];
|
||||
[fromComponents addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu tracker", "Inspector -> Peers tab -> peers"),
|
||||
tracker]];
|
||||
}
|
||||
if (incoming > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu incoming", "Inspector -> Peers tab -> peers"), incoming]];
|
||||
[fromComponents addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu incoming", "Inspector -> Peers tab -> peers"),
|
||||
incoming]];
|
||||
}
|
||||
if (cache > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu cache", "Inspector -> Peers tab -> peers"), cache]];
|
||||
addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu cache", "Inspector -> Peers tab -> peers"), cache]];
|
||||
}
|
||||
if (lpd > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu local discovery", "Inspector -> Peers tab -> peers"), lpd]];
|
||||
[fromComponents addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu local discovery", "Inspector -> Peers tab -> peers"),
|
||||
lpd]];
|
||||
}
|
||||
if (pex > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu PEX", "Inspector -> Peers tab -> peers"), pex]];
|
||||
addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu PEX", "Inspector -> Peers tab -> peers"), pex]];
|
||||
}
|
||||
if (dht > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu DHT", "Inspector -> Peers tab -> peers"), dht]];
|
||||
addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu DHT", "Inspector -> Peers tab -> peers"), dht]];
|
||||
}
|
||||
if (ltep > 0)
|
||||
{
|
||||
[fromComponents
|
||||
addObject:[NSString stringWithFormat:NSLocalizedString(@"%lu LTEP", "Inspector -> Peers tab -> peers"), ltep]];
|
||||
addObject:[NSString localizedStringWithFormat:NSLocalizedString(@"%lu LTEP", "Inspector -> Peers tab -> peers"), ltep]];
|
||||
}
|
||||
|
||||
connectedText = [connectedText stringByAppendingFormat:@"\n%@", [fromComponents componentsJoinedByString:@", "]];
|
||||
|
||||
@@ -410,8 +410,8 @@ typedef NS_ENUM(NSInteger, TrackerSegmentTag) {
|
||||
if (removeTrackerCount > 1)
|
||||
{
|
||||
alert.messageText = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"Are you sure you want to remove %lu trackers?", "Remove trackers alert -> title"),
|
||||
removeTrackerCount];
|
||||
localizedStringWithFormat:NSLocalizedString(@"Are you sure you want to remove %lu trackers?", "Remove trackers alert -> title"),
|
||||
removeTrackerCount];
|
||||
alert.informativeText = NSLocalizedString(
|
||||
@"Once removed, Transmission will no longer attempt to contact them."
|
||||
" This cannot be undone.",
|
||||
|
||||
@@ -504,7 +504,7 @@ typedef NS_ENUM(unsigned int, tabTag) {
|
||||
self.fImageView.image = [NSImage imageNamed:NSImageNameMultipleDocuments];
|
||||
|
||||
self.fNameField.stringValue = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"%lu Torrents Selected", "Inspector -> selected torrents"), numberSelected];
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu Torrents Selected", "Inspector -> selected torrents"), numberSelected];
|
||||
self.fNameField.hidden = NO;
|
||||
|
||||
uint64_t size = 0;
|
||||
@@ -529,7 +529,8 @@ typedef NS_ENUM(unsigned int, tabTag) {
|
||||
}
|
||||
else
|
||||
{
|
||||
fileString = [NSString stringWithFormat:NSLocalizedString(@"%lu files", "Inspector -> selected torrents"), fileCount];
|
||||
fileString = [NSString
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu files", "Inspector -> selected torrents"), fileCount];
|
||||
}
|
||||
[fileStrings addObject:fileString];
|
||||
}
|
||||
@@ -543,7 +544,7 @@ typedef NS_ENUM(unsigned int, tabTag) {
|
||||
else
|
||||
{
|
||||
magnetString = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"%lu magnetized transfers", "Inspector -> selected torrents"), magnetCount];
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu magnetized transfers", "Inspector -> selected torrents"), magnetCount];
|
||||
}
|
||||
[fileStrings addObject:magnetString];
|
||||
}
|
||||
@@ -606,7 +607,8 @@ typedef NS_ENUM(unsigned int, tabTag) {
|
||||
}
|
||||
else
|
||||
{
|
||||
fileString = [NSString stringWithFormat:NSLocalizedString(@"%lu files", "Inspector -> selected torrents"), fileCount];
|
||||
fileString = [NSString
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu files", "Inspector -> selected torrents"), fileCount];
|
||||
}
|
||||
basicString = [NSString stringWithFormat:@"%@, %@", fileString, basicString];
|
||||
}
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
@property(nonatomic, class, readonly) NSString* ellipsis;
|
||||
@property(nonatomic, readonly, copy) NSString* stringByAppendingEllipsis;
|
||||
|
||||
+ (NSString*)formattedUInteger:(NSUInteger)value;
|
||||
|
||||
+ (NSString*)stringForFileSize:(uint64_t)size;
|
||||
+ (NSString*)stringForFilePartialSize:(uint64_t)partialSize fullSize:(uint64_t)fullSize;
|
||||
|
||||
|
||||
@@ -25,12 +25,6 @@
|
||||
return [self stringByAppendingString:NSString.ellipsis];
|
||||
}
|
||||
|
||||
#warning use localizedStringWithFormat: directly when 10.9-only and stringsdict translations are in place
|
||||
+ (NSString*)formattedUInteger:(NSUInteger)value
|
||||
{
|
||||
return [NSString localizedStringWithFormat:@"%lu", value];
|
||||
}
|
||||
|
||||
// Maximum supported localization is 9.22 EB, which is the maximum supported filesystem size by macOS, 8 EiB.
|
||||
// https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/VolumeFormatComparison/VolumeFormatComparison.html
|
||||
+ (NSString*)stringForFileSize:(uint64_t)size
|
||||
@@ -44,7 +38,7 @@
|
||||
{
|
||||
NSByteCountFormatter* fileSizeFormatter = [[NSByteCountFormatter alloc] init];
|
||||
|
||||
NSString* fullString = [fileSizeFormatter stringFromByteCount:fullSize];
|
||||
NSString* fullSizeString = [fileSizeFormatter stringFromByteCount:fullSize];
|
||||
|
||||
//figure out the magnitude of the two, since we can't rely on comparing the units because of localization and pluralization issues (for example, "1 byte of 2 bytes")
|
||||
BOOL partialUnitsSame;
|
||||
@@ -61,9 +55,9 @@
|
||||
}
|
||||
|
||||
fileSizeFormatter.includesUnit = !partialUnitsSame;
|
||||
NSString* partialString = [fileSizeFormatter stringFromByteCount:partialSize];
|
||||
NSString* partialSizeString = [fileSizeFormatter stringFromByteCount:partialSize];
|
||||
|
||||
return [NSString stringWithFormat:NSLocalizedString(@"%@ of %@", "file size string"), partialString, fullString];
|
||||
return [NSString stringWithFormat:NSLocalizedString(@"%@ of %@", "file size string"), partialSizeString, fullSizeString];
|
||||
}
|
||||
|
||||
+ (NSString*)stringForSpeed:(CGFloat)speed
|
||||
|
||||
@@ -607,8 +607,8 @@ static NSString* const kWebUIURLFormat = @"http://localhost:%ld/";
|
||||
if (exists)
|
||||
{
|
||||
self.fBlocklistMessageField.stringValue = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"%lu IP address rules in list", "Prefs -> blocklist -> message"),
|
||||
tr_blocklistGetRuleCount(self.fHandle)];
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu IP address rules in list", "Prefs -> blocklist -> message"),
|
||||
tr_blocklistGetRuleCount(self.fHandle)];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -86,7 +86,7 @@ OSStatus GeneratePreviewForURL(void* thisInterface, QLPreviewRequestRef preview,
|
||||
if (is_multifile)
|
||||
{
|
||||
NSString* fileCountString = [NSString
|
||||
stringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu files", nil, bundle, "quicklook file count"), n_files];
|
||||
localizedStringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu files", nil, bundle, "quicklook file count"), n_files];
|
||||
fileSizeString = [NSString stringWithFormat:@"%@, %@", fileCountString, fileSizeString];
|
||||
}
|
||||
[htmlString appendFormat:@"<p>%@</p>", fileSizeString];
|
||||
@@ -143,7 +143,8 @@ OSStatus GeneratePreviewForURL(void* thisInterface, QLPreviewRequestRef preview,
|
||||
|
||||
NSString* headerTitleString = n_webseeds == 1 ?
|
||||
NSLocalizedStringFromTableInBundle(@"1 Web Seed", nil, bundle, "quicklook web seed header") :
|
||||
[NSString stringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu Web Seeds", nil, bundle, "quicklook web seed header"), n_webseeds];
|
||||
[NSString localizedStringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu Web Seeds", nil, bundle, "quicklook web seed header"),
|
||||
n_webseeds];
|
||||
[listSection appendFormat:@"<tr><th>%@</th></tr>", headerTitleString];
|
||||
|
||||
for (size_t i = 0; i < n_webseeds; ++i)
|
||||
@@ -165,7 +166,7 @@ OSStatus GeneratePreviewForURL(void* thisInterface, QLPreviewRequestRef preview,
|
||||
auto const n = std::size(announce_list);
|
||||
NSString* headerTitleString = n == 1 ?
|
||||
NSLocalizedStringFromTableInBundle(@"1 Tracker", nil, bundle, "quicklook tracker header") :
|
||||
[NSString stringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu Trackers", nil, bundle, "quicklook tracker header"), n];
|
||||
[NSString localizedStringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu Trackers", nil, bundle, "quicklook tracker header"), n];
|
||||
[listSection appendFormat:@"<tr><th>%@</th></tr>", headerTitleString];
|
||||
|
||||
#warning handle tiers?
|
||||
@@ -185,7 +186,7 @@ OSStatus GeneratePreviewForURL(void* thisInterface, QLPreviewRequestRef preview,
|
||||
[listSection appendString:@"<table>"];
|
||||
|
||||
NSString* fileTitleString = [NSString
|
||||
stringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu Files", nil, bundle, "quicklook file header"), n_files];
|
||||
localizedStringWithFormat:NSLocalizedStringFromTableInBundle(@"%lu Files", nil, bundle, "quicklook file header"), n_files];
|
||||
[listSection appendFormat:@"<tr><th>%@</th></tr>", fileTitleString];
|
||||
|
||||
#warning display folders?
|
||||
|
||||
@@ -222,7 +222,7 @@ tr_session* fLib = NULL;
|
||||
else
|
||||
{
|
||||
self.fNumOpenedField.stringValue = [NSString
|
||||
stringWithFormat:NSLocalizedString(@"%llu times", "stats window -> times opened"), statsAll.sessionCount];
|
||||
localizedStringWithFormat:NSLocalizedString(@"%llu times", "stats window -> times opened"), statsAll.sessionCount];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -166,8 +166,8 @@ typedef NS_ENUM(unsigned int, statusTag) {
|
||||
{
|
||||
if ([NSUserDefaults.standardUserDefaults boolForKey:@"CheckUpload"])
|
||||
{
|
||||
uploadText = [NSString stringWithFormat:NSLocalizedString(@"%ld KB/s", "Status Bar -> speed tooltip"),
|
||||
[NSUserDefaults.standardUserDefaults integerForKey:@"UploadLimit"]];
|
||||
uploadText = [NSString localizedStringWithFormat:NSLocalizedString(@"%ld KB/s", "Status Bar -> speed tooltip"),
|
||||
[NSUserDefaults.standardUserDefaults integerForKey:@"UploadLimit"]];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -176,8 +176,8 @@ typedef NS_ENUM(unsigned int, statusTag) {
|
||||
|
||||
if ([NSUserDefaults.standardUserDefaults boolForKey:@"CheckDownload"])
|
||||
{
|
||||
downloadText = [NSString stringWithFormat:NSLocalizedString(@"%ld KB/s", "Status Bar -> speed tooltip"),
|
||||
[NSUserDefaults.standardUserDefaults integerForKey:@"DownloadLimit"]];
|
||||
downloadText = [NSString localizedStringWithFormat:NSLocalizedString(@"%ld KB/s", "Status Bar -> speed tooltip"),
|
||||
[NSUserDefaults.standardUserDefaults integerForKey:@"DownloadLimit"]];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1107,11 +1107,11 @@ bool trashDataFile(char const* filename, void* /*user_data*/, tr_error** error)
|
||||
break;
|
||||
|
||||
case TR_STATUS_DOWNLOAD:
|
||||
if (self.totalPeersConnected != 1)
|
||||
if (NSUInteger const totalPeersCount = self.totalPeersConnected; totalPeersCount != 1)
|
||||
{
|
||||
string = [NSString stringWithFormat:NSLocalizedString(@"Downloading from %lu of %lu peers", "Torrent -> status string"),
|
||||
self.peersSendingToUs,
|
||||
self.totalPeersConnected];
|
||||
string = [NSString localizedStringWithFormat:NSLocalizedString(@"Downloading from %lu of %lu peers", "Torrent -> status string"),
|
||||
self.peersSendingToUs,
|
||||
totalPeersCount];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1122,13 +1122,14 @@ bool trashDataFile(char const* filename, void* /*user_data*/, tr_error** error)
|
||||
if (NSUInteger const webSeedCount = self.fStat->webseedsSendingToUs; webSeedCount > 0)
|
||||
{
|
||||
NSString* webSeedString;
|
||||
if (webSeedCount == 1)
|
||||
if (webSeedCount != 1)
|
||||
{
|
||||
webSeedString = NSLocalizedString(@"web seed", "Torrent -> status string");
|
||||
webSeedString = [NSString
|
||||
localizedStringWithFormat:NSLocalizedString(@"%lu web seeds", "Torrent -> status string"), webSeedCount];
|
||||
}
|
||||
else
|
||||
{
|
||||
webSeedString = [NSString stringWithFormat:NSLocalizedString(@"%lu web seeds", "Torrent -> status string"), webSeedCount];
|
||||
webSeedString = NSLocalizedString(@"web seed", "Torrent -> status string");
|
||||
}
|
||||
|
||||
string = [string stringByAppendingFormat:@" + %@", webSeedString];
|
||||
@@ -1137,14 +1138,18 @@ bool trashDataFile(char const* filename, void* /*user_data*/, tr_error** error)
|
||||
break;
|
||||
|
||||
case TR_STATUS_SEED:
|
||||
if (self.totalPeersConnected != 1)
|
||||
if (NSUInteger const totalPeersCount = self.totalPeersConnected; totalPeersCount != 1)
|
||||
{
|
||||
string = [NSString stringWithFormat:NSLocalizedString(@"Seeding to %1$lu of %2$lu peers", "Torrent -> status string"),
|
||||
self.peersGettingFromUs,
|
||||
self.totalPeersConnected];
|
||||
string = [NSString localizedStringWithFormat:NSLocalizedString(@"Seeding to %1$lu of %2$lu peers", "Torrent -> status string"),
|
||||
self.peersGettingFromUs,
|
||||
totalPeersCount];
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: "%lu of 1" vs "%u of 1" disparity
|
||||
// - either change "Downloading from %lu of 1 peer" to "Downloading from %u of 1 peer"
|
||||
// - or change "Seeding to %u of 1 peer" to "Seeding to %lu of 1 peer"
|
||||
// then update Transifex accordingly
|
||||
string = [NSString stringWithFormat:NSLocalizedString(@"Seeding to %u of 1 peer", "Torrent -> status string"),
|
||||
(unsigned int)self.peersGettingFromUs];
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ static NSTimeInterval const kToggleProgressSeconds = 0.175;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [NSString stringWithFormat:NSLocalizedString(@"%lu transfers", "Torrent table -> group row -> tooltip"), count];
|
||||
return [NSString localizedStringWithFormat:NSLocalizedString(@"%lu transfers", "Torrent table -> group row -> tooltip"), count];
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -817,17 +817,17 @@ static NSTimeInterval const kToggleProgressSeconds = 0.175;
|
||||
NSMenuItem* item;
|
||||
if (menu.numberOfItems == 3)
|
||||
{
|
||||
NSInteger const speedLimitActionValue[] = { 50, 100, 250, 500, 1000, 2500, 5000, 10000, -1 };
|
||||
static NSArray<NSNumber*>* const speedLimitActionValues = @[ @50, @100, @250, @500, @1000, @2500, @5000, @10000 ];
|
||||
|
||||
for (NSInteger i = 0; speedLimitActionValue[i] != -1; i++)
|
||||
for (NSNumber* i in speedLimitActionValues)
|
||||
{
|
||||
item = [[NSMenuItem alloc]
|
||||
initWithTitle:[NSString stringWithFormat:NSLocalizedString(@"%ld KB/s", "Action menu -> upload/download limit"),
|
||||
speedLimitActionValue[i]]
|
||||
initWithTitle:[NSString localizedStringWithFormat:NSLocalizedString(@"%ld KB/s", "Action menu -> upload/download limit"),
|
||||
i.integerValue]
|
||||
action:@selector(setQuickLimit:)
|
||||
keyEquivalent:@""];
|
||||
item.target = self;
|
||||
item.representedObject = @(speedLimitActionValue[i]);
|
||||
item.representedObject = i;
|
||||
[menu addItem:item];
|
||||
}
|
||||
}
|
||||
@@ -837,8 +837,8 @@ static NSTimeInterval const kToggleProgressSeconds = 0.175;
|
||||
|
||||
item = [menu itemWithTag:ActionMenuTagLimit];
|
||||
item.state = limit ? NSControlStateValueOn : NSControlStateValueOff;
|
||||
item.title = [NSString stringWithFormat:NSLocalizedString(@"Limit (%ld KB/s)", "torrent action menu -> upload/download limit"),
|
||||
[self.fMenuTorrent speedLimit:upload]];
|
||||
item.title = [NSString localizedStringWithFormat:NSLocalizedString(@"Limit (%ld KB/s)", "torrent action menu -> upload/download limit"),
|
||||
[self.fMenuTorrent speedLimit:upload]];
|
||||
|
||||
item = [menu itemWithTag:ActionMenuTagUnlimited];
|
||||
item.state = !limit ? NSControlStateValueOn : NSControlStateValueOff;
|
||||
@@ -848,15 +848,15 @@ static NSTimeInterval const kToggleProgressSeconds = 0.175;
|
||||
NSMenuItem* item;
|
||||
if (menu.numberOfItems == 4)
|
||||
{
|
||||
float const ratioLimitActionValue[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, -1.0 };
|
||||
static NSArray<NSNumber*>* const ratioLimitActionValue = @[ @0.25, @0.5, @0.75, @1.0, @1.5, @2.0, @3.0 ];
|
||||
|
||||
for (NSInteger i = 0; ratioLimitActionValue[i] != -1.0; i++)
|
||||
for (NSNumber* i in ratioLimitActionValue)
|
||||
{
|
||||
item = [[NSMenuItem alloc] initWithTitle:[NSString localizedStringWithFormat:@"%.2f", ratioLimitActionValue[i]]
|
||||
item = [[NSMenuItem alloc] initWithTitle:[NSString localizedStringWithFormat:@"%.2f", i.floatValue]
|
||||
action:@selector(setQuickRatio:)
|
||||
keyEquivalent:@""];
|
||||
item.target = self;
|
||||
item.representedObject = @(ratioLimitActionValue[i]);
|
||||
item.representedObject = i;
|
||||
[menu addItem:item];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,8 @@ NSMutableSet* fTrackerIconLoading;
|
||||
|
||||
- (NSAttributedString*)attributedCount:(NSInteger)count
|
||||
{
|
||||
NSString* countString = count != -1 ? [NSString stringWithFormat:@"%ld", count] : NSLocalizedString(@"N/A", "tracker peer stat");
|
||||
NSString* countString = count != -1 ? [NSString localizedStringWithFormat:@"%ld", count] :
|
||||
NSLocalizedString(@"N/A", "tracker peer stat");
|
||||
return [[NSAttributedString alloc] initWithString:countString attributes:self.fStatusAttributes];
|
||||
}
|
||||
|
||||
|
||||
@@ -139,8 +139,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
peerString = [NSString stringWithFormat:NSLocalizedString(@"got %lu peers", "Tracker last announce"),
|
||||
(size_t)self.fStat.lastAnnouncePeerCount];
|
||||
peerString = [NSString localizedStringWithFormat:NSLocalizedString(@"got %lu peers", "Tracker last announce"),
|
||||
(size_t)self.fStat.lastAnnouncePeerCount];
|
||||
}
|
||||
baseString = [baseString stringByAppendingFormat:@" (%@)", peerString];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user