If your application's menu entry shows as menu__yourapp_settings_0 instead of its name, the shape of data/acpmenu.json is wrong — not your language file.
Wrong, and it looks perfectly reasonable:
{ "settings": [ { "tab": "community", "controller": "settings" } ] }
Right:
{ "settings": { "settings": { "tab": "community", "controller": "settings" } } }
Why the trailing number appears
The structure is { module: { item: { … } } }, and the item key becomes part of the language key — menu__<app>_<module>_<item>. Written as an array, the item key is the array index 0, so Invision looks up a string that does not exist and prints the raw key. That trailing _0 is the whole diagnosis.
Worth knowing when you fix it
Application::acpMenu()reads the file from disk rather than a cached copy, so the corrected file takes effect on upload — no upgrade step is needed for the menu itself.- Ship it as a new version. Invision compares versions on upload and silently does nothing when they are equal, so re-uploading a corrected build under the same version number looks like it worked and changes nothing.
- To find these reliably, scan the rendered AdminCP for visible text matching
^(menu__|module__|r__|acplogs__)[a-z0-9_]+$rather than reading through your language file — it finds every raw key on the page at once, including ones you did not know about.
Recommended Comments