Search code examples
apple-watchwatchos-2

Is Watch OS & Watch app language localization done automatically?


The documents seem to indicate localization is done automatically since the watch inherits the iOS host app settings and is also set in the language settings in the iPhone Watch app. I'd like to make sure I'm not overlooking anything because we have a global user base.

Apple documents

You can change the language on any screen where you have the option to tap Dictation. Tap Reply or Search, firmly press the screen, tap (globe icon), then select a language.

So this is force touch. Is this done globally on the watch or only where we designate?

With Dictation, you can use your voice to reply to messages and email, or for other tasks, like searching in Maps. You might also be able to use Dictation with third-party apps.

Why "might"? I'm assuming all 'major' languages are supported.

Dictation is toggled in iPhone Settings > General > Keyboard. Then turn Enable Dictation on or off. When you change the keyboard language on your iPhone for a message or app, the dictation language also changes on your Apple Watch.

I noticed that even though I set everything to English my watch is still displaying navigation in Chinese. Apparently this is because I was previously using Chinese Siri on my iPhone. So Siri usage takes priority? I tried everything to get my watch to change back to English but it's not doing it.

So to sum up. Watch OS language settings and language settings for all watch apps are set by these areas?

  1. iOS keyboard settings
  2. iOS language settings
  3. iOS Siri settings
  4. iOS Watch app language settings (mirror etc)
  5. Apple Watch force touch dictation language choice pop up?

No extra coding is needed for OS? What about custom areas in our watch apps? How do we call/set any localization from the host?


Solution

  • I can answer for the 5th point based on my experience with setting up localisation for watchos and ios: I have set up separate localization files for watchos and ios because watchos needs only 10% of whats there and it has different string values in my case.

    From my testing I saw every time I would change watchos language from iphone - > watch app -> settings, it changed the content of the whole watch and it picked my hardcoded strings for the Watchapp.

    For custom areas in Watchapp: I always send a language flag from iphone app to watchapp, and watch app accordingly calls web services based on the language flag. Another option would be to detect local language identifier on watchos and then make your web services calls based on that. So it depends upon your situation here

    Edit: How to pass data to watch app from iphone app for watchos2 and above:

    Here's a tutorial: http://www.raywenderlich.com/117329/watchos-2-tutorial-part-4-watch-connectivity