ワンクリックで
jmix-add-i18n-keys
Add complete Jmix message keys for entities, enums, views, actions, and validation text.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Add complete Jmix message keys for entities, enums, views, actions, and validation text.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Open a Jmix entity detail view from a button/action and refresh related data after save.
Add Jmix entity lifecycle event listeners to perform additional actions with saved or loaded entities.
Configure or audit Jmix fetch plans in XML views, fragments, DataManager loads, repositories, and entity events when loading references, avoiding N+1 queries, fixing unfetched attribute errors, or tuning data loading.
Add inline editable parent-child composition UI to a Jmix detail view, when a parent entity owns child records edited via a property-bound collection container (no query loader).
Create a Jmix Flow UI detail view with XML descriptor, save-close action, messages, and policies.
Create or change Jmix DTO entities and other non-persistent transfer models for UI data containers, REST/API payloads, custom data stores, external data, or calculated read models.
| name | jmix-add-i18n-keys |
| description | Add complete Jmix message keys for entities, enums, views, actions, and validation text. |
Use this skill whenever adding user-visible text, entities, enum values, views, or validation messages.
msg:// in XML descriptors.MessageBundle in view controllers and Messages in services/beans.msg:// reference against the bundle key exactly; key lookup is case-sensitive.msg://<message-group>/<key> references when the key belongs to another message group.com.company.app.entity/Customer=Customer
com.company.app.entity/Customer.name=Name
com.company.app.entity/OrderStatus=Order status
com.company.app.entity/OrderStatus.NEW=New
customerListView.title=Customers
customerDetailView.title=Customer
createOrderButton.text=Create order
A Jmix message reference has two forms:
msg://<key>.msg://<message-group>/<key>.The message group is usually the Java package-style bundle group before / in a properties key. Entity messages often use the entity package group, for example com.company.app.entity/Customer.name. View-local messages usually live in the view package group, for example com.company.app.view.customer/customerListView.title.
Brief references are resolved against the current XML descriptor message group. They are fine for keys stored next to that descriptor:
<view title="msg://customerListView.title">
<button id="createOrderButton" text="msg://createOrderButton.text"/>
</view>
Use a full reference when the key is in another group, for example entity captions, menu keys, shared application keys, or text used from a descriptor whose package does not match the key group:
<item view="Customer.list" title="msg://com.company.app.view.customer/customerListView.title"/>
<h4 text="msg://com.company.app.entity/Customer.orders"/>
For Bean Validation messages, keep the same full reference inside braces:
@NotNull(message = "{msg://com.company.app.entity/Customer.email.required}")
private String email;
@ViewComponent
private MessageBundle messageBundle;
String text = messageBundle.getMessage("createOrderButton.text");
For localized entity/attribute captions (not bundle-key formatting), inject io.jmix.core.MessageTools and Metadata: messageTools.getEntityCaption(metadata.getClass(Customer.class)) and messageTools.getPropertyCaption(metadata.getClass(Customer.class), "name").
Before finishing, search changed XML and Java for message references and verify the keys exist in the correct bundle with identical casing.
<button id="createOrderButton" text="msg://createOrderButton.text"/>
createOrderButton.text=Create order
Do not rely on similar casing such as CreateOrderButton.text or createorderButton.text.
msg:// keys that differ from properties keys only by case.msg://key references to keys stored in another message group.${0} placeholders in formatMessage; use Java formatter placeholders such as %s.