So there’s a new app out today purporting to be of assistance with that pesky translation task for your iOS and OS X apps:
Linguan greatly simplifies localizing your Mac and iOS apps. It gives you an intelligent editor for all strings files contained in your Xcode project.
You get warned about duplicate tokens or missing translations. Then you can export and e-mail all missing tokens for a specific language to your translator, who can also use Linguan for filling in the translations or use his text editor of choice.
When you get the translators results back Linguan automatically merges the results into your project, even if the tokens originated from multiple different strings files.
That all sounds pretty handy then, doesn’t it now? As it happens, just a little while back we did a 12-language-localized project, and the memory is fresh enough to remember the hassles involved. So let’s start out by seeing how Linguan handles opening that file and sorting out the contents:
… why, with perfect aplomb, that’s how. And well look at that, it found an error: “Multiple translations for token ‘PRODUCTINFOLINK”. Seriously? OMG, it’s right. Well, apparently the shipping version is using the right one, otherwise we probably would have heard. Still, nice catch already.
Moving on, let’s see the missing translation finding. We know we don’t have any so we’ll have to seed it with one, but just to check … wait, what? Ah, that’s it, it found an untranslated one in a comment we’d left in for some reason:
//controller.title = NSLocalizedString(@”TITLEROOTTABLE”, nil);
And it seeds it into the table of tokens above. So let’s call it “A table.” in English, and hit ‘Wizard’ to see how wizardly helpful it is. And very so. So let’s put in a Spanish translation,
Hit save … why yes, there’s our newly translated string appearing over in Xcode. Now let’s check out the export functionality to provide lists for translators when you need those, this string in Korean say … why yes, yes it does so nicely.
*/<br /><br />/* No comment provided by engineer. */
"TITLEROOTTABLE" = "";<br />
Alright, we’re convinced. It’s evident in mere minutes that this would have saved us on the order of days developing the project we’re checking it out with. Straight to the head of our Essential Third Party Development Tools list it goes. And for only five bucks? A veritable steal, we tell you. From the announcement post:
… We believe that Linguan provides a piece of functionality that should have been provided by Apple, but wasn’t. So we tried to make a tool thats worthy of being mentioned with Xcode on the same breath. Check it out on the Mac App Store. If you find any issues or have feature requests then you can use our bug tracker for that.
And succeeded nothing short of magnificently, it appears. If you’re shipping your projects in anything other than your native language — and if you’re not, you should be! — buy it NOW. NOW! NOW! NOW!
(And you, yeah you, the twerp in said announcement post’s comments bitching “I won’t make them pay some software, no matter how great it is” — for the love of God Almighty, man up already and gift it to your volunteers then. $5 a language? Suck it up, buttercup.)
Having trouble with the Xcode 5 preview? Xcode-select will help!