mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Swift
		
	
#!/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)
 | 
						|
}
 |