In the month since the initial release of the POEditor.com API and command line utility, I did some refinements which become necessary to support ongoing development projects. Generally speaking you should use the poet tool without parameters to refresh your strings files.
The utility requires that all translations have their context set, or else we don’t know which file they go into. Now, if you go the outmoded route of importing a strings file into POEditor.com then the context isn’t correctly set. You can fix this by manually updating it to “Localizable.strings”. The modern way that has long replaced this is to export a XLIFF file in the development language directly from Xcode. This makes sure that all contexts are set, usually either to a strings file or sometimes a storyboard file.
- FIXED: POEditor class/methods was not visible to importing app
- FIXED: Don’t write empty files or empty plurals
- CHANGED: Removed workaround that would use en-US as en language.
- ADDED: Information in README on how to uses it with Cocoapods (now that it works)
- ADDED: The poet command line utility now has a parameter to do a one-off export in a given format
The command line utility uses the JSON export format because this also contains plurals. For the BabyCheck app I needed to be able to export the XLIFF file for each language because I am building the localised checklists that come bundled with the app from that. This is why I added a parameter to poet which lets you specify the output file format.
The second change was that you couldn’t use it via CocoaPods because the framework classes did not have the correct public accessibility tags. This release fixes this. I also added some info to the README file to show how to do that and how to do a smoke test.
The ability to automate the process of updating localisations has proven to save me a great amount of time so far. I hope that it can do so for you as well. I would love to hear from you what challenges you have in your localisations and maybe see how poet and/or this API wrapper could be enhanced to address these.
This update is tagged on GitHub as well as pushed to CocoaPods trunk.
Also published on Medium.