"Menu item" condition, internationalization

I was trying to replicate one of Matt Gemmel's macros, specifically the one about the Services menu, triggered by a key press. I am italian, so I have some localized applications in Italian, and some in the original English. The Italian name for the Services menu is Servizi. When I put as condition A menu item with name containing Services exists, everything works perfectly for English applications. However, when I put in the localized name Servizi, the condition always evaluate as false, both for English and localized applications. However, when I use as the name Cerca (Italian for Find), the condition evaluates as true for Italian applications.
Is there any reason why the Services submenu should behave differently from the Find submenu?

Attached a capture of the action

Thanks in advance for any help

1 Like

The Services menu is a system wide menu. Its name changes when you change the system language. I expect Apple does this by leaving the menu alone (ie ‚ÄúServices‚ÄĚ) and translating it on the fly based on the language. Hence you see ‚ÄúServizi‚ÄĚ, but really the menu name is ‚ÄúServices‚ÄĚ.

Whereas the Find menu is part of the application - it will be translated according to the application, and the language it is localized for that is selected. This could be any number of different languages depending on the application. So the menu name is whatever is in the translation of the application that is active. Thus what you see is what the menu actually is.

At least that would be my guess based on your described behaviour.

Ok, that clears it up. I'm not sure if that is the only menu that behaves this way. I tried assigning a shortcut via system preferences, and Services was the only one I was unable to make work, at least among the ones I tried.
As a workaround, I set the macro to check for the Preferences… menu: it has the same localization as Services, and is recognized. So the full working macro is:

If anyone has even more languages to contend with, it is easy to nest additional if/then/else conditions.