`useI18n()` is a compatibility aggregate returning reactive translation groups and locale controls. New components should import only the product-domain composables they need, rather than subscribe to every catalog.
import { useSettingsMessages, useRenameMessages } from '@open-pencil/vue'
const settings = useSettingsMessages()
const rename = useRenameMessages()
```
Each domain composable returns a reactive ref. Read `.value` in script; Vue unwraps it in templates. See [Locale APIs](../advanced/locale-apis) for locale switching without the aggregate.
Locale controls: `locale`, `availableLocales`, `localeLabels`, and `setLocale`.
The former `dialogs` group, `useDialogMessages()`, and `dialogMessages` are removed in the development version after v0.14.0. Use the owning domain, such as `settings`, `rename`, or `recovery`, and update the corresponding message keys.