There are some generic I18N issues with in-app development:
When I deselect the workflows tab in the demo, one of the new options is [none(unknown).title] and a missing I18N is logged accordingly:
Missing resource '[none(unknown).title]'.
~~The relevant part of the stack: ~~
at com.top_logic.basic.util.DefaultBundle.getString(DefaultBundle.java:220) at com.top_logic.mig.html.layout.TabInfo.getLabel(TabInfo.java:114) at com.top_logic.layout.component.TabbedLayoutComponentResourceProvider.getLabelNullSafe(TabbedLayoutComponentResourceProvider.java:23)
For this tab, the problem can probably be easily fixed. But it's an example of a general problem: when a view is configured "wrong", it causes a "Missing resource" error that the client can't do anything with. Because he can't put [none(unknown).title] into the properties files. And he doesn't see in the error message which view causes the problem or how it can be fixed. And what exactly is "wrongly" configured about the view is not clear either. So this generic problem should be fixed first. Fixing the problem for that one view would just make the generic problem invisible until a customer stumbles upon it. Therefore, I will not fix it directly in #25048. Since the specific example is in the demo, this shouldn't affect customers unless I fix this one example directly.
When a dialog is configured, the next time I log in, I have a missing I18N key in the log:
Missing resource [none(unknown).openAsDialog].
the none(unknown) comes from here: LayoutComponent.Config.getResPrefix(), because from the configuration of the dialog getResPrefix() is used to create the label of the opener button. And none(unknown) is the default.
Generally none(unknown) is unfavorable for the customer, because in case of doubt he doesn't know at all where it comes from and even if he knew, he couldn't do anything about it. And also I have to debug in such cases to find out where it comes from. Against the latter problem it would help a bit if at least the class that creates the NoKey is written out.Even better would be to reduce the usage of NoKey / NoPrefix. For example, if a component doesn't have a ResPrefix, why does it need to supply NoPrefix? Can't it supply a prefix for "component without ResPrefix", for example? DEFAULT_COMPONENT_PREFIX?
- Error messages like none(unknown) have been extended with context information. If the tl:ResPrefix of a component configuration is not set, instead of the meaningless tl:ResPrefix.NONE, a tl:NoPrefix with the fully qualified name of the component, if any, or the name of the implementation class is now returned as fallback.
When creating a dialog, the default for the title is "No Content". However, when I open the dialog, instead of an empty dialog title, the following is displayed:
When I create a new view but don't enter a name, the title says [none(unknown).title]. I expected an empty title.
- Titles for views are mandatory now.
Titles when creating views are mandatory. Creating a tab, table, tree, etc. without a title must not be possible.