Skip to content

dulacp/igenstrings

Repository files navigation

igenstrings

build-status-image build-coverage-image pypi-version-image docs-image

Eventually, all things merge into one, and a river runs through it.

Enhance the genstrings command by adding merging capabilities
Documentation is available at https://igenstrings.readthedocs.org.

Features

  • Ensure your files are encoded in UTF-8 (as recommended by Apple now)
  • Takes care of runing the genstrings command on all files \*.m, \*.mm and \*.swift
  • Merge the results with previous version of the Localizable.string files you may have
  • Inform you if it works correctly

Installation

$ pip install igenstrings

Support

Python 2.7 Python 3.4+

Requirements

Ensure your *.strings files are UTF-8 encoded as Apple recommends it now :

It is recommended that you save strings files using the UTF-8 encoding, which is the default encoding for standard strings files. Xcode automatically transcodes strings files from UTF-8 to UTF-16 when they’re copied into the product.

Usage

$ igenstrings ./MyXcodeProjectDir

output

Running the script on path ./MyXcodeProjectDir
Excluded path regex: None
languages found : ['./MyXcodeProjectDir/en.lproj', './MyXcodeProjectDir/fr.lproj']
Job done for language: ./MyXcodeProjectDir/en.lproj
Job done for language: ./MyXcodeProjectDir/fr.lproj

Known Issues

  • The Apple genstrings command doesn't like path that contains spaces. So avoid subfolders containing spaces, otherwise the Localizable.string will not be complete
  • You need to respect the format used by the genstrings command unless it will breaks. So, to avoid issues use strictly the format below for each translated text. Also do not remove the line break between two fields or it will breaks too.
/* Comment for localizable string */
"Your string" = "Translated string";

/* Comment for localizable string */
"Your string #2" = "Translated string #2";

Credits

Tools used in rendering this package:

Contact

Pierre Dulac
@_dulacp

License

igenstrings is available under the MIT license. See the LICENSE file for more info.