Popularity
2.7
Stable
Activity
0.0
Stable
106
4
14

Programming language: Ruby
Tags: Localization    
Latest version: v0.0.3

Rubustrings alternatives and similar libraries

Based on the "Localization" category.
Alternatively, view Rubustrings alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Rubustrings or a related project?

Add another 'Localization' Library

README

Rubustrings Build Status

Check the format and consistency of the Localizable.strings files of iOS Apps with multi-language support

Rubustrings is also available for Android here

Usage

It only needs the files to validate as arguments

rubustrings Localizable.strings

Additionally to the filenames, including the option --onlyformat will only assert for the format.

Install

gem install rubustrings

Validators

Currently Rubustrings validates:

  • The syntaxis of the strings file: Just the format of each line: "key" = "value";
  • Dynamic values (%@, %d, %ld,...): It checks that the translation include the same set of them than the original string.
  • Special characters at the beginning or at the end: If the original string begins or ends with a white space,\n or \r it tests that the translation also does.

It also warning on:

  • Untranslated strings: In missing translations
  • Translation significantly large: In translations 3 times larger than original string

Example

[email protected]:~$ rubustrings Localizable.strings
Processing file: "Localizable.strings"

Localizable.strings:217: error: beginning mismatch: "Tubasa" = " Tubasa";
Localizable.strings:220: error: number of variables mismatch: "Web %@" = "Web";
Localizable.strings:225: error: invalid format: "bad format" = "because of a missing quote;

Result: ✘ Some errors detected
[email protected]:~$ rubustrings Localizable.strings
Processing file: "Localizable.strings"

Result: ✓ Strings file validated succesfully

XCode

Rubustrings can also be used as a custom build rule so that all .strings files are automatically validated at build time. This will also attempt to highlight offending lines in XCode.

[Xcode build rule example](./xcode_example.png "example")

Just add a new "Run Script Phase" with:

if which rubustrings>/dev/null; then
  find "${SRCROOT}" -type f -name Localizable.strings -print0 | xargs -0 -n1 rubustrings
else
  echo "warning: Rubustrings not installed, download from https://github.com/dcordero/Rubustrings"
fi

[Xcode setting example](./xcode_setting.png "configuration")

License

MIT License (MIT) Copyright (c) 2017 @dcordero


*Note that all licence references and agreements mentioned in the Rubustrings README section above are relevant to that project's source code only.