Locca is a command line tool that helps with localisation of iOS (and a bit for Android) projects.
It can:
- Scan source code and update language files
- Synchronise language files with OneSky localisation platform
- Find missing / extra / not translated keys in language files
Difference from genstrings
While updating language files locca
doesn't modify already translated keys. It adds new keys and remove keys, that are no longer present in source code.
gem install locca
Put .locca/config
file in the root of your project. Locca can be run from any folder within the project.
iOS
{
"project_file": “App.xcodeproj",
"base_lang": "en",
"prevent_sync_without_comments": false,
"targets": {
"App": {
"audit_ignore": ["key1", "key2"]
"onesky_project_id": "12345",
"onesky_public_key": "abcd",
"onesky_secret_key": "dcba"
},
"App-Watch": {
"audit_ignore": ["key1", "key2"]
"onesky_project_id": "54321",
"onesky_public_key": "abcd",
"onesky_secret_key": "dcba"
},
}
}
Android
{
"base_lang": "en",
"lang_dir": "",
"prevent_sync_without_comments": false,
"onesky_project_id": "12345",
"onesky_public_key": "abcd",
"onesky_secret_key": "dcba"
"audit_ignore": ["key1", "key2"]
}
locca build
on iOS: scans source files in one or more application targets and merges found strings with language files.
on Android: sorts keys in language files alphabetically.
locca fetch
fetches and merges keys from external translation service (OneSky) with local language files.
locca sync
fetches first and then uploads local language files to external translation service.
locca audit
checks language files for missing / extra / not translated keys.
locca translate
finds all not translated keys and opens them in an editor (using EDITOR
env variable). After saving editor content keys are merged back with language files.