2016-03-22 16 views
0

Ich muss die Kosten berechnen, um eine iOS-App zu übersetzen. Die Preise basieren auf der Anzahl der Wörter. Ich habe alles, was ich in einer Localizable.strings-Datei übersetzen muss.iOS Localizable Strings Word Count

Gibt es ein Tool oder einen Befehl oder etwas, das ich verwenden kann, um mir zu sagen, wie viele Wörter es in dieser Datei gibt? Es wird nicht darum gehen, dies in Word einzufügen, da ich alle Schlüssel und alle Kommentare ignorieren muss.

+0

Haben Sie grundlegende Kommandozeilen-Tools wie [ 'wc'] betrachtet (https://developer.apple.com/library /mac/documentation/Darwin/Reference/ManPages/man1/wc.1.html)? –

+0

Das wird Kommentare und Schlüssel nicht aus meiner .string-Datei ausschließen, soweit ich das beurteilen kann. –

+0

Wüsste nicht, was Ihre Datei ist sieht aus wie ohne eine Probe. –

Antwort

1

Versuchen Sie dieses Bash-Skript. Speichern Sie in einer Textdatei (ich nannte es counter.sh) in demselben Verzeichnis wie Ihr Ordner en.lproj.

# Delete the comments 
cat en.lproj/Localizable.strings | sed '/^\\\*/ d' | sed '/^\/\/*/ d' > temp 

# Delete everything up to and including the equals sign 
cat temp | sed s/.*\=// > temp.1 

# Delete the remaining quotes and semi-colon 
cat temp.1 | sed s/\"// | sed s/\"// | sed s/\;// > temp.2 

# Use wc to sount and spit out the number of words 
wc -w < temp.2 

# Remove the temp files 
rm -f temp 
rm -f temp.1 
rm -f temp.2 

Öffnen Sie das Verzeichnis im Terminal.

Geben Sie dem Skript ausführbare Berechtigungen, indem Sie chmod +x counter.sh ausführen.

Führen Sie das Skript, indem Sie ./counter.sh eingeben, und es sollte die Anzahl der Wörter in Ihrer Localizable.strings Datei ausspucken.

Haftungsausschluss! - Meine Bash Script Fähigkeiten sind ziemlich schlecht! Dieses Skript wird wahrscheinlich kaputt gehen, wenn Ihre Strings "oder = chars" enthalten. Es wurde also etwas verschärft. Es ist auch schrecklich, aber sollte tun, was Sie tun müssen!

0

Ich beendete das Schreiben eines Snippets in Swift , die ich in einer neuen OSX Anwendung, lief die Worte in der Datei zu zählen.

let stringFileContents = try! NSString(contentsOfFile: "/path/to/file/Localizable.strings", encoding: NSUTF8StringEncoding) 
let stringsDictionary = stringFileContents.propertyListFromStringsFileFormat() 

var words:[String] = [] 

stringsDictionary?.forEach({ (key, value) in 
    words += value.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) 
}) 

// Ignore any word with % in it, since it's probably just a format substitution 
let filteredWords = words.filter { $0.containsString("%") == false } 

print(filteredWords.count)