App rejected over mixed localizations

When I set my Xojo app to german locale then the About menu item says “ber …” which is correct. So the question is: does this only occur for Arabic? Is anyone brave to check an Arabic locale?

But is it unreasonable to expect Xojo to do the same thing as Xcode? I would wager not.

Xojo does not have to use the template, they can do handstands internally if they like, but the outcome should be the same.

Maybe it does, but a bug in the OS is hitting Sam’s App? We don’t know yet and should not start blaming Xojo or anyone, before we even know what’s exactly happening…

How do you get to “a bug in the OS”?

How many of us have experience with Arabic locale? I have a bug with string where for some hebrew text is empty after doing a DefineEncoding. <https://xojo.com/issue/41168> . Why is this bug closed??? Need to investigate.

The only way to verify the bug is to set a VM to arabic.

Okay, so now this is interesting. You’re saying that in your Xojo made application, it automatically translates your “About ” to German?

So I wonder what you and I do differently that causes yours to work and mine not too.

First off I am using Xojo 2017r3, my application is a 64-Bit application. I have a menuitem with the text “AboutAppName”, then in the open event of the application it renames that to "About " and inserts the applicationName. This is part of my own AppKit.

Are you hard coding the “About My Application” into the menuitem?

I thought that Xojo did this automatically. But you are correct, I have this localized myself. There is a constant:

Protected Const kAbout as String = About <<appname>>

But where do I replace the the <<…>>?

Here is the code:

FileAbout.Text = Replace(FileAbout.Text, "<<appname>>", app.getMyAppName)

from EnableMenuitems.

I only make assumptions here.

What i tried to say is; maybe Xojo IS doing the same as Xcode and maybe this is a bug in the Operating System of the Reviewer or Sam?
You seem to be strictly on the assumption that Xojo is doing something wrong here. We just do not know it yet.

De: Und bitte vergiss nicht das Englisch nicht meine Muttersprache ist… :wink:
En: And please do not forget that English is not my native language… :wink:

App localized for English and German.

“About” with the system set to

Englisch: English
German: German
Russian: English
Arabic: English
Chinese: English
Thai: English

It’s as expected but not as Apple requires according to what Sam quoted.

I find it interesting that people lament the demise of Jobs and his immaculate near obsessive attention to detail, but then complain when Apple does exactly what they want them to do.

As far as I understand it Apple HAD let it slide before (aka pester the reviewer until he wonders if it is worth it for him). Maybe they don’t anymore.

But the questions unanswered are still:

Is it automatically translated in Xcode apps?
Is it automatically translated in Swift apps?
If yes, why is it not automatically translated in Xojo apps?

Now that seems a stretch. Usually the simplest explanation is the right one, so that one should be examined first (“Occam’s razor”). And the simplest is that Xojo is not using the more restrictive template (or its equivalent implementation) that now seems required according to what Sam quoted from Apple’s website.

Strictly? No. It just seems much more plausible.

Idea : instead of using a regular string for the “About SVG Converter” menuitem, use a dynamic constant and add a value for Arabic. So your pesky reviewer will be happy.

SVG Converter ???

Thank you all for helping me out with this, I really appreciate it.

Thank you Markus for your research. I would like to add my own. I have switched the language on my system to Taiwanese (as I can read all of two words).

Brand new Xcode made application; displays the entire “Application” menu in English.
App Wrapper 3, which I just built, displays the entire “Application” menu in English.
SVG Converter (the app that’s being rejected) displays “About SVG Converter” in English, the rest is in Mandarin, all the other menu items are in English.
Brand new application created in Xojo, 32-Bit & 64-Bit, same issue as SVG Converter.

I’ve looked at all of plist files and “CFBundleDevelopmentRegion” is set to “en” in all of them.
App Wrapper contains a “en.lproj” folder.
Objective-C app has a Base.lproj.
The empty Xojo product & SVG converter do not have any language packs.

For shits and giggles I added an empty folder called “en.lproj” to the Resources folder and guess what? The Application menu is now all in English.

So there we have it ladies and gentlemen. If your application gets rejected for having mixed localizations, add an empty, yes empty “en.lproj” folder to your application.

Edit: I attempted to use an empty folder named “Base.lproj” like the Objective-C application and that failed too, so for some reason it must match your language.

Off to file a bug report with Apple (and they say we mustn’t use the Mac App Store as a bug testing service) and to complain that it took 8 developers working together an entire day to figure out that this bug in the macOS can cause App Store rejections, then to update App Wrapper to ensure that this doesn’t happen to anyone else.

Addendum: I am wrong.

When I was reading the plists I must have gotten mixed up as the empty 64-Bit Xojo project had the development region set to Taiwan. Which is why it was displaying the menus in Taiwanese. Adding the empty “en.lproj” folder must have just confused the OS.

I have rebuilt the empty 64-Bit application when the system language is set to English, switch to Taiwanese and it still displays in English even without a “en.lproj” folder.

What I have done is narrowed it down to something wrong with SVG Converter, it’s weird as adding the empty folder resolves the issue, but clearly I don’t understand what is wrong.

Odd

If I build an empty project with default language to “german” (for example and my system is Italian) then I see the “system” menu in german.
in your application contents the localized .lproj are within Frameworks/XojoFramework/Resources/

Yeah: I need a break. I’ve gotten myself and everyone else all wound up in a tizzy. I am still none the wiser.

I re-did all my tests, built all the test applications while my system was in English. Then I changed to Taiwanese and tried to open the applications. Everything worked this time except SVG Converter. I am at a complete loss.

It’s clear that there is a problem with the product when it’s run on a non-English system, on the grand scale of things is it worth the time investigating the cause, especially considering how much time you guys and I have already put in. I think I’ll just pull the product from the Mac App Store for the moment. I have other far more important things to get on with than worry about whether or not it displays English in the Application menu on a non-English system.

Empty all the caches and restart the computer.

Open it in Arbed and check for corruption?

Or copy the project contents to a new project and try again?

Maybe even just try with a new App name.

[quote=391325:@Antonio Rinaldi]Odd

If I build an empty project with default language to “german” (for example and my system is Italian) then I see the “system” menu in german.
in your application contents the localized .lproj are within Frameworks/XojoFramework/Resources/[/quote]
Yes that looks like it, en.lproj was missing and when I added an empty folder it fixed it.

So tomorrow, I’ll reboot my Mac, run fsck on it, rebuild Xojo caches and add some code to App Wrapper to make sure that it warns people if this happens again.

So much time wasted over 5 little menu items.

P.s Thank you all for your help and suggestions.

Framework xx.lproj folders within, added by Xojo compiler, which probably could be rmvd by AppWrapper, when using “Remove selected languages” in the “Other” tab?