Under the Radar

41: Internationalization


00:00:00   Welcome to Under the Radar, a show about independent iOS app development.

00:00:03   I'm Marco Arment.

00:00:04   And I'm David Smith.

00:00:05   Under the Radar is never longer than 30 minutes, so let's get started.

00:00:10   So today we wanted to dive into the topic of localization, or some people call it internationalization,

00:00:17   and some people think those are different.

00:00:18   I don't really know, I just call it all localization, and that works for me.

00:00:22   But more generally, we're talking about the concept of taking your application and making

00:00:25   it, having its appearance and its strings and the things in it be adaptive based on

00:00:32   where in the world your user is and what language they're speaking, and being adaptive in those

00:00:37   kinds of ways.

00:00:39   And generally this is kind of one of those things that I feel like it's a lot of times

00:00:46   viewed as kind of like a hygiene thing, like in the sense of it's this thing that maybe

00:00:51   you think you should do, but often you don't.

00:00:56   For a long time, I had none of my applications localized at all, and it was always this thing

00:01:00   that I'd go to the session at WWDC and kind of feel bad about myself and say, "Oh, this

00:01:04   year I'll do it," and then I'd go back and I wouldn't actually do it.

00:01:08   And I think it's a tricky one because unless you live in a multilingual or international

00:01:14   life, you know, where if you speak two languages at home or you live abroad from where your

00:01:20   native language is or something like that, it's not something that you would necessarily

00:01:25   come across in your day-to-day life.

00:01:28   And it's always hard, I think, to write features for an application that you yourself won't

00:01:34   benefit from in using it.

00:01:36   So when I make my app display all of its strings in German, that's great, but I don't speak

00:01:45   German, so I have no idea if, A, if they're right, which we'll get into a bit later, and

00:01:51   B, I don't feel that benefit.

00:01:54   And so I've struggled for a long time to do it.

00:01:56   And I'll certainly say it's a bit of a pain to do because if you want to do this, you

00:02:02   have to structure a lot of the visual components of your application very differently.

00:02:07   You have to make things very flexible, you can't hard-code a lot of values, everything

00:02:11   has to be able to be switched in and out and adaptable depending on what language and locale

00:02:18   your app is being used.

00:02:19   But one day, I bit the bullet, and the first app I ever localized was Pedometer++, and

00:02:27   I localized it and had a pretty impactful change as a result.

00:02:31   I found that my downloads outside of English-speaking countries, so outside of the United States,

00:02:37   Great Britain, Australia, New Zealand, Canada, Canada with an asterisk, because obviously

00:02:42   they speak French there too, but outside of those countries, I found that my downloads

00:02:48   went up by about three times.

00:02:51   And overall, that meant that my overall sales didn't go up by three times, because most

00:02:55   of my sales were still coming from English-speaking countries, but overall my sales did go up.

00:03:00   I think it went up by about 50%, which was encouraging.

00:03:08   And the effort it took to get there has certainly--it's debatable overall whether it was the right

00:03:15   tradeoff, but I think in general it taught me the lesson that there is an impact to this,

00:03:18   and it is something that we at least all need to consider.

00:03:22   Because I've also had the flip side, where I've localized some of my other applications,

00:03:26   and I've had essentially no increase.

00:03:28   And so it's not like a silver bullet, it's not like if you localized your app, your sales

00:03:31   would go up three times.

00:03:33   That's definitely not the case.

00:03:35   The experience I had in Podometer++ was by far the best I've had, but it's somewhat distinct

00:03:42   from some of my other experiences.

00:03:45   Have you ever localized any of your applications?

00:03:48   >>

00:03:58   I've had a lot of great jobs, and so I kind of know what's involved.

00:04:01   And I know--I too have gone every year to the WWDC sessions about localization, and I

00:04:07   too have sat there feeling bad about myself, thinking, "Why don't I just do this already?

00:04:11   Let's just do it."

00:04:13   But as you mentioned, it is not easy to do.

00:04:16   And one of the biggest questions in my mind, which I hear people ask me all the time, is

00:04:22   will this actually increase sales, and by how much?

00:04:24   And as you said, a big increase for you in non-English speaking countries, that's great.

00:04:30   However, it's hard to know.

00:04:32   As you said, it's hard to know whether that will apply to my app or not.

00:04:36   And it's hard to know how big the increase will be and then whether it will be worth

00:04:38   the cost.

00:04:39   But to me, I kind of see internationalization and localization--I also don't know the difference.

00:04:45   I know there is one, and people get mad at us for not knowing it, but I don't know what

00:04:48   it is.

00:04:50   I see them too as kind of a code hygiene thing, and it's kind of similar to accessibility

00:04:55   in some ways, where if you make an interface accessible via the iOS accessibility mechanisms

00:05:02   for things like voiceover and other assistive technologies, sometimes it takes a little

00:05:08   bit more work in the coding and design stage, but it usually isn't that much more work to

00:05:13   make it possible and to do it well.

00:05:18   Usually it's actually very little work because Apple's stuff is so good.

00:05:20   You just kind of have to be aware of it as you're coding.

00:05:23   And there are certain aspects of internationalization that are that easy.

00:05:29   Things like date formatting and stuff like that, like number formatting, currency formatting.

00:05:34   In those kind of areas, Apple provides really easy APIs, date formatters, that kind of stuff,

00:05:40   that if you just use them correctly at all, then you will just get nicely formatted things.

00:05:47   Your strings won't be automatically translated to different languages, but things like displaying

00:05:52   numbers and things like that, that's very easy to get right and to have kind of done

00:05:58   for you automatically.

00:06:01   In Overcast, I make extensive use of that kind of thing, and for the strings, I do wrap

00:06:07   all of my UI strings in NSLocalizedString, which is this macro that you should look up

00:06:13   NSLocalizedString if you don't know what it is.

00:06:14   You should be using it.

00:06:16   I do that for preparation for potential future internationalization efforts so that it's

00:06:23   easy to see all my UI strings and easy to pull them out and have them translated in

00:06:29   an automated kind of way if I ever need that.

00:06:33   But I don't actually do that.

00:06:34   I haven't actually translated it.

00:06:36   So I have a few instances where I'm kind of abusing the formatters.

00:06:41   In my list of episodes, I omit the year from the date from an episode's release date if

00:06:49   it's the current year because I think that's just a nice little thing to get a little bit

00:06:53   less clutter.

00:06:54   If your episode was released on August 1st and that was two weeks ago, I don't need

00:06:59   to know that it was 2016 because I already know it's 2016, thank you.

00:07:04   And this works.

00:07:05   There's no built-in function that I know of to do this very well.

00:07:10   So I do kind of a hack which is I get the localized version of the current year and

00:07:15   just remove that substring from the date string.

00:07:18   And this turns out to be a really dumb implementation because in certain countries, there's a -- I

00:07:23   forget exactly where it was.

00:07:24   I think it was -- it might have been in a Portuguese-speaking country or a Spanish-speaking

00:07:28   country but there was something where I got an email from users saying this is kind of

00:07:32   weird looking because there's like -- there's a word between the day or the month and the

00:07:38   year in the way it's formatted where it's like of or the.

00:07:42   So it's like, you know, July of 2016, you know, whatever the translated version of that

00:07:47   is.

00:07:48   And so in my version of this, it just says, you know, 16th July of.

00:07:52   >> That's not great.

00:07:53   >> No, it's not great.

00:07:54   So I have to probably revisit this strategy.

00:07:58   But for the most part, everything else has been done only in the ways of like using the

00:08:04   built-in formatters for numbers and dates and currencies and things but not actually

00:08:08   translating the strings but making it easy to do so in the future if I want to.

00:08:11   >> Yeah.

00:08:12   And I think the approach you're taking is certainly the one that is at the very least

00:08:17   the right approach.

00:08:18   That making -- as you're going -- as you're building an app, being aware that this might

00:08:23   be something you want to do later, I think will certainly increase the likelihood that

00:08:26   one day you will actually get to it rather than hitting the point where it's like, okay,

00:08:31   I need to now like search in my app for every string that is being displayed and then add

00:08:39   the NS localized string macro to it.

00:08:42   Or I need to now go and switch everything over to using formatters.

00:08:47   And I'm an iOS 10.

00:08:50   I think there's the new units formatters, which are even -- take this even farther that

00:08:53   you can now -- it's not even just dates and currency that you can do in numbers.

00:08:59   You could -- you can even do clever things about speeds or distances.

00:09:03   So like I run into this with a couple of my workout apps where, you know, it's how far

00:09:07   did you run.

00:09:08   And right now I do some things like where I need to be clever about which unit to use

00:09:14   and have options in the application for switching that.

00:09:17   You know, on first launch I'll see what country you're in.

00:09:22   And I assume that if you're not in the United States you're probably going to use metric

00:09:26   units, which in general I think is pretty much the case.

00:09:30   And so I do those switches manually.

00:09:32   And then, you know, iOS 10 I can do this automatically.

00:09:34   But by and large it seems like in general a good idea to keep this as something that

00:09:39   -- it's part of building an app properly.

00:09:42   And just like you were saying with accessibility.

00:09:44   Like if you build an app to do this, you're probably ultimately also going to be a better

00:09:48   app because you're being thoughtful about what you're displaying to your user at a different

00:09:54   level.

00:09:55   And sometimes I run into situations where I'm just being lazy.

00:09:59   And so I'll add some words of explanation for something.

00:10:04   And in that case it's probably symptomatic of my app actually being too confusing and

00:10:11   not obvious enough about how to operate it if I have to sort of build instructions into

00:10:15   it.

00:10:16   And if you're in a localization mindset, there's a cost to adding that string because now that

00:10:21   gets added to your list of things that you need to translate and have localized.

00:10:26   And so it's -- in some ways it helps you think about your application in a constructive way

00:10:31   to make sure that if you couldn't read anything in this application, could you still use it?

00:10:37   And if you can, that's probably a good indication that even if you can read the strings and

00:10:43   the labels and things in your application, you know, it's still going to be a good experience.

00:10:48   But by and large it's a funny thing because I think doing localizing just to have more

00:10:53   downloads is I think a good reason.

00:10:55   And I think in general for most people there is going to be -- it's very unlikely that

00:10:59   you're going to have a negative correlation there.

00:11:02   It would only be if you had a terrible translation and the app was actually worse after localizing

00:11:08   it.

00:11:09   But generally speaking I think, you know, having something that's more relevant to a

00:11:12   customer by nature should increase that somewhat.

00:11:16   But the other reason that I think is good to keep in mind when you're thinking about

00:11:20   whether you should or shouldn't localize your application is in general I think Apple tends

00:11:25   to only feature applications that are localized in the country's app store that they're doing

00:11:32   the feature in.

00:11:34   And so if you want to be featured in the Japanese app store, in the German app store, in the

00:11:38   French app store, in the Spanish app store, you probably need to be localized into that

00:11:44   country and probably at the very least have your screenshots and app store description

00:11:49   localized and probably even your app as well.

00:11:53   And that certainly is, again, it's just one of these opportunities that, you know, in

00:11:57   -- as cutthroat of a market as the app store is, those little edges, those little things

00:12:03   that in general localization isn't a mountain of work.

00:12:08   It's something that you have to work on and it will lose you a day out of a point release

00:12:14   kind of work.

00:12:16   You will make -- it's hard to put your finger on exactly the impact that it's having, but

00:12:21   I think it'll have an impact.

00:12:22   And the reality is it's like it's a little advantage that you may as well take, that

00:12:28   you may -- you know, it's something you can do directly and it's not like you have to

00:12:32   think of this grand new innovative vision for something where you've come up with something

00:12:38   totally new.

00:12:39   Like you're just doing the basics better and maybe if your competitors aren't localized

00:12:44   then you'll have that little edge on them.

00:12:46   And especially I think a lot of app store algorithms, as best I can tell, have this

00:12:51   kind of -- this built-in sense of as you get a little bit better there's a stronger benefit

00:12:58   to the person in front, which is problematic in some ways, but in this case can be beneficial

00:13:03   that if you can do lots of little things to be slightly better than your competitor, you're

00:13:07   showing up higher in charts, you're more likely to be featured, you may show up higher in

00:13:11   search.

00:13:12   There's all these little things that can add up and this is just one of them.

00:13:14   And so in general I'd say you should localize your app.

00:13:17   And I mean I was actually looking at Overcast before your recording and it's a funny app

00:13:23   because I think most of the app you could localize very easily because most of it is

00:13:28   not -- it's content that's relevant to the user already.

00:13:31   It's like it's self-localizing.

00:13:33   If I'm in France listening to French podcasts you don't have to like translate the time

00:13:37   title of the podcasts.

00:13:40   All that is already there.

00:13:41   It's just the surrounding infrastructure around it and even the names of the -- the name of

00:13:45   the playlist, they're going to name the playlist whatever they want to name it.

00:13:49   It's not like you have to do something clever there.

00:13:51   It's just some other labels.

00:13:52   And so it's probably something worth doing.

00:13:55   >> KEVIN: Yeah, I mean, and also beyond like selfish reasons of this will get more downloads,

00:14:01   which are very important, beyond that though a lot of people -- if you don't localize,

00:14:07   and I know this from the experience of having apps that I haven't localized, if you don't

00:14:11   localize a lot of people who don't speak your language will still use the app anyway.

00:14:16   They'll just fumble through.

00:14:17   Like they'll just -- you know, because like a lot of times like there might not be any

00:14:20   other apps to do the thing or they might have heard about yours and yours might be the best

00:14:24   one or they just might want to try yours or whatever the reason.

00:14:27   A lot of people who don't speak the language of your app will try to use it regardless.

00:14:32   And so it's really a design question of like do you want the experience of using your app

00:14:38   to be better for people who don't speak the language that it's in?

00:14:40   Do you want them to be able to use it?

00:14:44   Do you want to be able to provide value to people who don't speak your language?

00:14:46   And to some degree, as you said, if you look at Overcast, I've taken a lot of this to heart

00:14:51   where I try to basically avoid a lot of text where possible.

00:14:56   But just avoiding the need for text and translation will get you a lot of the way there and will

00:15:02   let people try to kind of figure out and fumble through more easily.

00:15:07   Like I mean I see even like with games, like my four-year-old son can't read yet but he

00:15:12   knows how to play a lot of games on his iPad because they don't rely so much on text.

00:15:16   They just have buttons and icons and things and he's able to figure those out.

00:15:22   The more your app cannot rely on text, the better.

00:15:24   But for the text that it does rely on, you're doing a great service to the design and experience

00:15:31   of a lot of real-world users by localizing because people who don't speak your language

00:15:36   are going to try to use it anyway.

00:15:38   But anyway, in the case of Overcast though, I am also a little bit scared of a number

00:15:43   of issues that we'll probably get to in the second half of the show.

00:15:44   But like I mean little things like what you mentioned, the UI design, like there are so

00:15:49   many features and labels in the interface where like I've chosen the words extremely

00:15:55   carefully and like I will choose the name of a feature based on what will fit in the

00:16:02   table view cell in the settings screen.

00:16:04   Like I will often like make decisions about like exactly what words this has to be based

00:16:10   on like what will fit.

00:16:11   And I know that if I localize everything, it will add a lot of overhead to a lot of

00:16:18   the testing and the validation of the UI and everything on different sized devices especially

00:16:23   and some of that we can automate, some of it we can't.

00:16:26   But also it will be very easy for my app to be misunderstood.

00:16:32   But I guess this is kind of the perfect being the enemy of the good.

00:16:34   Like right now my app is being understood even worse by people who don't speak my language.

00:16:39   So I guess maybe that's just a cost I'd have to bear.

00:16:43   Yeah well before we continue on that front, we are brought to you this week by Cococonf.

00:16:49   Now this upcoming March 20th through 23rd, Cococonf is returning to Yosemite National

00:16:54   Park for its third Yosemite event and let me tell you people, I have heard so many great

00:16:59   things about this.

00:17:00   I'm going to try to go this year I think because I've heard so many great things about it and

00:17:02   I keep having scheduling problems and I can't go but I wish I can go to this event.

00:17:06   I think I'm going to try to make it work this year, we'll see.

00:17:08   Anyway this event, March 20th through 23rd, held again at the Yosemite Lodge at the Falls

00:17:14   in Yosemite National Park.

00:17:15   Speakers include Ashley Nelson Hornstein, friend of the show David Smith, Andy Anako, Matt

00:17:20   Drance, Jamie Newberry, Brent Simmons and Daniel Steinberg.

00:17:23   Sessions run in the mornings and evenings and afternoons are spent exploring Yosemite

00:17:27   National Park with activities including ranger led hikes, a bus tour of the valley, a photo

00:17:33   walk by TED photographer James Duncan Davidson.

00:17:35   These are all great options for you to choose if you want to.

00:17:37   There's also music by James Dempsey and the Breakpoints and by Jonathan "Songaday" Mann

00:17:43   and you can use code "under theradar" to save 20% on your tickets to Yosemite.

00:17:47   So head on over to cococonf.com/yosemite to register.

00:17:51   David you'll be there obviously because you're speaking, I really hope to be there, looks

00:17:54   to be a great conference and thanks a lot to CocoConf for sponsoring our show once again.

00:17:59   So to pick back up what you were talking about, I think there is a fundamental thing and I

00:18:04   think for the rest of the show we'll kind of dive into a bit of the mechanics of what

00:18:08   localization is, that once you finally decide it's something that you're going to do.

00:18:13   I think you kind of have to let go a little bit on perfection in order to approach this

00:18:21   because just fundamentally the width of words in languages is just mind-bendingly different

00:18:31   between languages.

00:18:32   The classic example is something like German which tends to have these very long words

00:18:37   for relatively simple concepts.

00:18:40   You go all the way to some of the more Asian languages where you'll have a single one-character

00:18:45   symbol as the equivalent of what's being said there.

00:18:48   And so you'll never have, I know the feeling of what you're talking about where you want

00:18:52   to have just that perfect word that makes everything line up nicely or it gives you

00:18:59   a good balance to the screen.

00:19:03   And when you're localizing, you just at a certain point have to say, "It's going to

00:19:07   be impossible."

00:19:08   And I'd rather it be understandable than visually perfect.

00:19:16   And maybe there's a way that if you were really a linguistic genius that you could find different

00:19:20   words that are more appropriate or might convey the same meaning but have a more similar length,

00:19:27   maybe that's possible.

00:19:28   But I think I've just had to accept that going down this road is probably better because

00:19:34   not doing it, it's like having something that looks visually slightly less balanced perhaps

00:19:40   is going to be better than something that looks balanced but is unintelligible.

00:19:46   So when you're localizing something, I think there's probably, I think briefly I'll just

00:19:51   say there's two things that you're sort of typically doing.

00:19:53   You're localizing the language, so I'm an English speaker, that's the only language that

00:19:59   I really can speak with any fluency, and so I write my applications in English as a result.

00:20:07   And I can take all the English words and translate them into another language.

00:20:13   And then there's the more cultural differences, and this can both be things like we were saying

00:20:18   with units, so metric versus imperial units or date formats, or even getting into differences

00:20:25   within a language.

00:20:26   So for example, we spell the word "color" differently in the United States than they

00:20:30   do in Great Britain.

00:20:32   And so you can get into those kind of cultural differences.

00:20:34   But we're right.

00:20:35   Of course we are.

00:20:36   You don't need that U. That U is completely unnecessary.

00:20:40   And that's the way it is.

00:20:41   UIColor doesn't have a U in it, so for the way I'm working on iOS.

00:20:44   UIColor.

00:20:45   UIColor.

00:20:46   UIColor.

00:20:47   So you can do those two different things that you can be localizing.

00:20:51   And in general, the more cultural ones are a lot of the things that you're probably going

00:20:56   to want to lean on Apple for, for their date formatters and unit formatters and number

00:21:02   formatters.

00:21:03   And the language ones is probably what I'll talk mostly about now, because that's what

00:21:06   most people think of localization.

00:21:07   I think that's what we think of.

00:21:08   And that's taking all of the strings that are displayed in your application and wrapping

00:21:13   them up in NSLocalizedString macros.

00:21:17   And I don't actually know how you do this in Swift, but I'm sure there's something similar

00:21:22   to it.

00:21:23   But it's probably not called NSLocalizedString.

00:21:26   But there's something I'm sure that can translate back and forth.

00:21:29   And you run a little script that pulls all those out of your application.

00:21:33   And you end up with this little configuration file that's basically just a string and then

00:21:38   a translation.

00:21:40   And you can take that file and send it to a translation service.

00:21:44   There's many of these.

00:21:45   I've used a bunch of them.

00:21:46   In general, I'm sure there maybe are some differences, but by and large, I've used a

00:21:51   couple and they've all been about the same.

00:21:53   At this point in iOS development, I think the tools are mature enough that any of these

00:22:00   -- and I think Apple even has a website where they recommend a bunch of them -- you just

00:22:04   take your strings file, you send it to them, and they'll have a translator translate it

00:22:08   back.

00:22:09   One thing you want to do there is in NSLocalizedString, you give both the string you want to translate

00:22:13   and you can have a little comments field.

00:22:16   And it's very strongly recommended that you put something useful in that comments field,

00:22:19   not just the same string again or leaving it blank.

00:22:22   Because you want to give the translator a sense of what the string actually means in

00:22:28   context.

00:22:29   I know some translation services also even request that you send screenshots of your

00:22:33   application to the translator so they can see what it looks like in context.

00:22:37   So they're going to translate it and send it back to you.

00:22:39   Or something you can also do is ask a friend or a colleague.

00:22:42   I've started actually doing this a few times, especially when I'm doing small translation

00:22:46   batches.

00:22:47   I'll just ask on Twitter, "Hey..."

00:22:49   I'll make a little Google form and say, "Hey, here's this one string that I need for a point

00:22:53   release."

00:22:55   If you speak any of the languages that my app's translated in, which I think right now

00:22:59   is German, Spanish, French, Russian, Chinese, Japanese, and Korean, I think are the ones

00:23:05   that I use typically, maybe Portuguese.

00:23:09   If you speak any of those languages, translate it.

00:23:11   Obviously that's nice for me because I have a large enough audience that I can find someone

00:23:16   who speaks one of those languages.

00:23:19   But otherwise just use a translation service and it's the same.

00:23:21   I will say generally what you want is somebody who is native to the target language but fluent

00:23:29   in yours, not vice versa.

00:23:32   If you come up with somebody who grew up speaking English but learned a bit of French in high

00:23:37   school, ideally you want a French person to do the translation for you instead who just

00:23:43   knows enough English to understand what you're trying to say.

00:23:48   Because a native speaker, there's a lot of differences and nuance to these languages,

00:23:52   to any language, and ideally you want a native speaker.

00:23:57   And I've run into this a few times with translation services in an ideal way, and this is why

00:24:03   I've actually started leaning more on asking friends and people I know who speak the languages

00:24:08   that I'm translating into, is if someone who actually uses your application on a regular

00:24:13   basis will have a better translation.

00:24:16   Because I've definitely had a thing where they say the word you're using here is the

00:24:20   right word.

00:24:21   It's not like you messed up the translation.

00:24:24   But the way in which they're using it is different than what a typical person would expect it

00:24:29   to be said as.

00:24:32   And I will raise my hand and confess that I have used Google Translate a few times.

00:24:39   >> COREY: Oh, don't do that.

00:24:40   >> BRIAN: When I was trying to rush out an update, and I didn't--usually this is the

00:24:44   problem with localization, is once you do it, you kind of have to keep doing it.

00:24:47   If you make a small change that adds a string or changes a string, it's like, "Oh, I don't

00:24:51   want to have to go through a translation service or go through a big process."

00:24:54   So I always just go to Google Translate and did a few translations.

00:24:58   And it's a train wreck.

00:25:00   I've done it, and I've lived to tell the tale, but I would not recommend it.

00:25:05   It is definitely not something--you'll get some very strange customer support emails

00:25:10   where they're just like, "So, I don't know how to say this best, but the person who did

00:25:17   your translation didn't really translate it so much as turned it into unintelligible gibberish."

00:25:24   And so, avoid that.

00:25:27   If you're just wanting to have a placeholder there, a much better placeholder is in Xcode,

00:25:32   you can launch your application with a pseudo-language, which is designed to test your layout, and

00:25:38   so things are really long and have to use different character sets and things.

00:25:42   If you want to just have something there to test, validate your layout with, use that.

00:25:49   Don't use Google Translate.

00:25:50   I made a mistake.

00:25:51   But then, yeah, you just go through that, you end up with the strings back, you put

00:25:54   them back into your application, and now your application, when you launch it, will be in

00:25:58   the new language.

00:25:59   And it's kind of cool the first time you launch your application and you don't understand

00:26:03   any of the text.

00:26:06   It's kind of a strange feeling, but it's kind of cool.

00:26:08   And then you have an app that is localized.

00:26:10   And as you go, as you make changes, you just need to keep track of the differences, the

00:26:15   new strings, or if you make changes to strings.

00:26:20   And your app's localized.

00:26:21   And I don't know if that's anything more on that process.

00:26:24   Apple has gotten the toolset to, at this point, be pretty good.

00:26:30   There was a time, I think earlier, when I looked into localization back in iOS 3 or

00:26:36   4 days, and it was much more manual and much more cumbersome.

00:26:40   But in general now, you just kind of run the few scripts, it pulls it out, you send those

00:26:44   off-shore translation service, you get them back, you put them back in, and you're up

00:26:50   and running.

00:26:51   - So, how do you handle the issue of other language support?

00:26:56   If people who don't speak your language email you for technical support.

00:27:00   'Cause that's always been my concern with localizing my stuff, is like, well, even if

00:27:03   I localized the whole app, am I also gonna localize the whole website, the content I'm

00:27:08   showing in the app, the podcast storefronts, all that stuff, and then also my support,

00:27:13   which I'm a bad example, 'cause I don't really provide support, I guess.

00:27:17   But for people who are better people than me, who provide support, how do you handle

00:27:21   that question?

00:27:22   - Yeah, and so this is something that actually was the last topic I wanted to touch on, because

00:27:25   I feel like it's easy to think, oh, well, then I have to provide support in these languages,

00:27:29   and I don't speak those languages.

00:27:31   And A, you'll get support in the native language of your users, either way.

00:27:37   And so sometimes people who know who I am and know that I'm based in the US and that

00:27:43   I speak English will email me in English, even though I know they're German or they're

00:27:49   French or they're Spanish.

00:27:50   But generally, you'll just get emails from people who found your app on the app store,

00:27:54   downloaded it, and have a question, and they'll hit the contact button if they can find it.

00:27:59   Because obviously it may, if it's email us is the button label, they may not actually

00:28:04   know what that means, but maybe email is a fairly good term, but maybe as a side point,

00:28:09   it's a good idea to put an icon on that button, either way.

00:28:14   But you get an email, and those will happen either way.

00:28:17   And so I really wouldn't worry about it too much.

00:28:20   And my experience is I take that, and this is an example where Google Translate is your

00:28:25   friend rather than in your in-app translations.

00:28:29   If you take what they sent you and run it through Google Translate, it's usually good

00:28:32   enough that you can understand what the intent is, especially because customer support by

00:28:40   its nature is somewhat repetitive.

00:28:42   There tend to be certain issues that come up over and over again.

00:28:45   And so you'll get an email and you run it through Google Translate, you'll get a sense

00:28:49   of what they're saying.

00:28:51   And then what I typically do is I'll respond in English, because I can't write in a new

00:28:59   language, so that's all I can do.

00:29:01   And then I'll take that and run my response through Google Translate into whatever language

00:29:07   they emailed me in, and I put that underneath my English text and send it back, in the hopes

00:29:14   that the combination of if they speak some English and then having the Google Translate

00:29:19   rough translation, they'll be able to understand.

00:29:22   And I would say by and large, that works.

00:29:24   That people understand that I don't speak their language, that I don't get a lot of

00:29:29   people upset about that or have issues with that.

00:29:31   There's this natural thing that I'm an American company, I speak English, and I'm

00:29:36   just doing the best I can.

00:29:38   And I think I wouldn't worry about it beyond that.

00:29:40   I think you might have converted me.

00:29:42   Let's see it.

00:29:43   I look forward to launching Overcast in German and seeing all those nice big long strings.

00:29:48   Oh man, I'm not looking forward to testing that.

00:29:50   All right, thanks for listening everybody, and we will talk to you next week.

00:29:54   Bye.

00:29:55   [BLANK_AUDIO]