Remove unused strings

This commit is contained in:
Niels Andriesse 2021-04-29 15:20:11 +10:00
parent b625d3962b
commit 601df96058
14 changed files with 38 additions and 29667 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
#!/usr/bin/env xcrun swift
import Foundation
// The way this works is:
// Run the AbandonedStrings executable (see https://www.avanderlee.com/xcode/unused-localized-strings/)
// Paste the list of unused strings below
// Run this script by doing:
// swiftc remove_unused_strings.swift
// ./remove_unused_strings
let unusedStringKeys = [
]
let allFileURLs = try! FileManager.default.contentsOfDirectory(at: URL(string: "./")!, includingPropertiesForKeys: nil)
let translationFiles = allFileURLs.map { $0.lastPathComponent }.filter { $0.hasSuffix(".lproj") }
for translationFile in translationFiles {
let contents = try! String(contentsOfFile: "\(translationFile)/Localizable.strings")
let lines = contents.split(separator: "\n")
var filteredLines0: [String] = []
for line in lines {
if !unusedStringKeys.contains(where: { line.hasPrefix("\"\($0)\"") }) {
filteredLines0.append(String(line))
}
}
var filteredLines1: [String] = []
for (index, line) in filteredLines0.enumerated() {
if line.hasPrefix("/*") && index != (filteredLines0.count - 1) && filteredLines0[index + 1].hasPrefix("/*") {
// Orphaned comment; drop it
} else {
filteredLines1.append(line)
}
}
let newContents = filteredLines1.joined(separator: "\n")
try newContents.write(to: URL(fileURLWithPath: "\(FileManager.default.currentDirectoryPath)/\(translationFile)/Localizable.strings"), atomically: true, encoding: String.Encoding.utf8)
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff