Helps in localizing Cocoa applications by showing unused/missing keys in Localizable.strings.
Switch branches/tags
Nothing to show
Latest commit a064c50 Aug 29, 2016 @nst committed on GitHub Merge pull request #22 from sirnacnud/space
Add support to handle space in NSLocalizedString
Failed to load latest commit information.


Helps Cocoa applications localization by detecting unused and missing keys in '.strings' files.


Path of an Objective-C project.


  1. warnings for untranslated strings in *.m
  2. warnings for unused keys in Localization.strings
  3. errors for keys defined twice or more in the same .strings file

Typical usage

$ python -p /path/to/obj_c/project
./MyProject/en.lproj/Localizable.strings:13: warning: unused key in en.lproj: "Misc"
./MyProject/ViewController.m:16: warning: missing key in fr.lproj: "World"

Xcode integration

  1. make executable

    $ chmod +x

  2. copy to the root of your project

  3. add a "Run Script" build phase to your target

  4. move this build phase in second position

  5. set the script path to "${SOURCE_ROOT}/"

settings warnings

Common Issues

Some may experience UnicodeDecodeError when running the script. The problem is that the script runs through all directories to look for .strings files, which may include already compile .strings files which can not be parsed. Often you have some in Build/ or if you integrate CocoaPods ( Pods/ )

To prevent this you can add dirs which you want to have excluded like this

"${SRCROOT}/" --exclude-dirs=['Build','Pods']

or if you are on terminal

$ --project-path /path/to/obj_c/project --exclude-dirs=['Build','Pods']


  • Scan Interface Builder (.xib) Files for localized Strings