Resource strings of numbers as default for all languages

How can I define resource strings which are only numbers to apply to all languages since translations aren't necessary? Right now I have them in the resource base directory, so they do get picked up by the compiler and used as expected. However the compiler is complaining that these strings aren't defined for each language. Is there a proper way to do this without duplication of the strings so I don't get compiler warnings, or is ignoring the compiler complaints the only way?

  • <string id="board_4x4" translatable="false">4x4</string>

  • Thanks, that fixed it. Curiously though, I have three languages defined so far, English, Spanish, and Russian. The compiler only complained that there were no Russian translations, but it didn't complain about Spanish. If I had to guess I would say that all the letters in the English alphabet are also in Spanish so it takes English as Spanish, but the same isn't true for Russian because of the Cyrillic alphabet. Either it's not saying that's what it's doing, or because I only see warnings and errors I don't see those messages.

  • Curiously though, I have three languages defined so far, English, Spanish, and Russian. The compiler only complained that there were no Russian translations, but it didn't complain about Spanish.

    I did a quick test with multiple languages defined in manifest.xml and found:

    1) the compiler warns about missing strings for only one language at a time. If all the warnings for one language are resolved, then the compiler will move on to warning about missing strings for another language

    2) if a given language has no strings defined at all, the compiler will not output any warnings about missing strings for that language. I imagine some people might disagree with this, but I'm guessing the intent is to avoid outputting a ton of warnings when multiple languages are defined but some of those languages currently have no translations at all

  • Hmmmm, I'm not sure what the effect is, or in other words what is the difference between not listing a language in the manifest and listing it but not having any string translated to that language. I'd definitely would want to see at least 1 warning per language so in case I added a language but have a typo in the resource-xyz folder name then at least I'll get notified.

  • I'm not sure what the effect is, or in other words what is the difference between not listing a language in the manifest and listing it but not having any string translated to that language

    There seems to be no difference at all from the compiler's POV [*], I was only trying to guess at 2 possible explanations for the observed behaviour. And to note 2 quirks that I observed which are relevant to the topic.

    [*] Ofc there's is a difference from the POV of the dev: the dev probably expects that if they list a language in the manifest, they should get warnings if strings are not provided for that language

    To be clear, I was guessing that either:

    - warnings for spa weren't seen (yet) because the warnings for rus still existed (perhaps unlikely, given that OP should have seen additional warnings after "that fixed it")

    - warnings for spa aren't seen because coincidentally, there are no strings for spa (perhaps unlikely as well)

    I think those two possibilities (or even some other unknown cause) are much more likely than:

    "If I had to guess I would say that all the letters in the English alphabet are also in Spanish so it takes English as Spanish, but the same isn't true for Russian because of the Cyrillic alphabet."

    I mean, by the same argument, does Garmin think French and Italian are also the same as English (or "close enough"), so you're not obligated to provide translations for those languages weither?

    I'd definitely would want to see at least 1 warning per language so in case I added a language but have a typo in the resource-xyz folder name then at least I'll get notified.

    You said it yourself: there is a difference.

    If you list a language in the manifest, you want to see warnings about the language whether or not you have any strings defined.

    If you open a bug report, I'll upvote it.

  • Here is the relevant part of my monkey.jungle file. The strings defined in rezBase (intended to be a default for languages not specified), are also defined in the separate languages even though right now the only difference is the days of the week. 

    project.manifest = manifest.xml
    
    srcBase = source
    rezBase = resources-base
    rezDebug = resources-debug
    base.lang.eng = resources-eng
    base.lang.spa = resources-spa
    base.lang.rus = resources-rus
    base.sourcePath = $(srcBase)
    base.resourcePath = $(rezBase);$(rezDebug)
    

    Specifically the errors were about strings in the resources-debug directory only. These do not have counterparts in the individual language specific directories. So it does seem curious that only Russian is called out and not Spanish.

    I have every language there is a check box for in my manifest.xml file, and I'm not seeing any messages about the languages I haven't set a path for. I set the debug log level to verbose "--debug-log-level 3" but I didn't see anything in any of the files that looked like messages related to languages. I'm not sure how to file this as a bug report. "Developer support for languages seems weak" probably won't get much attention.