localizationlinter
Verify consistency over your project localizable files (localizable.strings and Localizable.stringdict) It uses Swiftgen to generate a localizables output per target and language and compare the output with a reference language one. The comparison ensure:
- missing keys
- additional keys
- wrong parameters in string format
Verify my project localizables consistencylocalizationlinter.lint
Attributes
clean_after_execution - Keep or clean derived data after execution
inline_mode - Print inline or as markdown
verbose - Print execution logs
language_configuration_path - Path to language configuration yml, defining main language per target
example:
My_target: en
My_other_target: fr
Default value is Configuration/Defaults/all_target_main_language.yml
If no file is provided, the default language for each target is en
swift_gen_path - Path to swift gen, default value is Pods/SwiftGen/bin/swiftgen
derived_data_path - Path to derived data, default value is localization_linter_derived_data
resource_path - Path to derived data, default value is Resources
project_path - Path to xcode project, default is taking the first project in root folder
Methods
lint - Verify the localizable files integrity over the project
rubocop:disable Metrics/MethodLength
linter - Returns the object in charge of verification
Installation
$ gem install danger-localizationlinter
Development
- Clone this repo
- Run
bundle installto setup dependencies. - Run
bundle exec rake specto run the tests. - Use
bundle exec guardto automatically have tests run as you make changes. - Make your changes.
To update swiftgen bin, use Test project in spec:
cd spec/Test- Open Podfile and update SwiftGen version
pod update SwiftGen