Acknowledged

Problem with installing app

One of my user has tried to install widget PSX-7 (https://apps.garmin.com/apps/1944b8b4-409e-482d-b7b3-becd4e8b1b05) but he couldn't due the incapability error but he has installed PSX-6 (https://apps.garmin.com/apps/e4ce9423-c37e-4aa7-b778-f24c2347c923). Both are built the same SDK (7.3.1m PSX-7 few days later), both have the same min API level to 2.4.

  • There is no default language but there is default resource and inside "strings" - it means default strings.

    The manifest defines languages or nothing -> compiler builds languages or none but ALWAYS default.

    Watch, user -> language = LAN, starting app, system check if there is a resources for LAN, if not, simple load res from default.

    So if a dev prepare only default resource and inside Esperanto strings all will be shown in Esperanto independent of LAN.

  • > There's default language resources, but not a "default language" (as in an unspecified / generic language). I think every device always has a language set: e.g.

    To be clear, a given string resource in your app may not have a language associated with it (because it's in the default resource folder), but when your app runs on a device, that device is always configured with a specific language. (e.g. My fr955 is currently set to English. I can't set it to "no language", I can only change the language to an actual language that's supported by the device.)

  • > No, I had always at least pol (and others if I plan real translation) because thought that for not chosen language default is applied!

    That's because you're only looking at it from the POV of how language resources work, and not from the POV of how Garmin knows what languages your app supports.

    For example, most devs probably put all their English strings in resource (the default) resource folder, so that if they also support other languages, the English strings will be used as a default. But if you don't put "eng" in the manifest, how does Garmin know your app supports English. For all they know, your default strings could be French or German.

    Clearly the only way for Garmin to know what languages your app supports is for you to specify them in the manifest.

    And now we know that Garmin actually does something with this information.

    > There is a default language!

    There's default language resources, but not a "default language" (as in an unspecified / generic language). I think every device always has a language set: e.g.

    https://developer.garmin.com/connect-iq/api-docs/Toybox/System/DeviceSettings.html#systemLanguage-var

    https://developer.garmin.com/connect-iq/api-docs/Toybox/System.html#Language-module

    That's why I mentioned that if you don't specify a language in manifest.xml, the compiler apparently assumes your app supports English. That's the one sense where there"s a "default language" (setting), but I don't think that's what you meant.

  • No, I had always at least pol (and others if I plan real translation) because thought that for not chosen language default is applied!

    So usually it looks like:

    and of course in resources I put English translation. So now, I've added eng, nothing change without additional line in manifest but device is included...

    But, without warning, I have to check if eng is specified in json in any part number....

  • The other interesting thing to me is that the store doesn't display the app's supported languages (to the end user). The internal app info API (used by the store) doesn't seem to return the app's supported languages either.