Element Plus предоставляет мощную систему локализации, позволяя создавать интерфейсы на различных языках. Для корректного отображения компонентов на нужном языке необходимо настроить локаль приложения, импортировать соответствующие файлы перевода и передать их в конфигурацию библиотеки.
Все локали в Element Plus хранятся в пакете
element-plus/es/locale/lang. Для подключения конкретной
локали используется импорт нужного файла:
import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
// Импорт русской локали
import ru from 'element-plus/es/locale/lang/ru';
const app = createApp(App);
// Применение локали через provide
app.use(ElementPlus, { locale: ru });
app.mount('#app');
Ключевые моменты:
ru) из соответствующего
пути.app.use(ElementPlus, { locale: ... }) передается
объект локали, который будет применяться ко всем компонентам
библиотеки.Element Plus позволяет менять язык компонентов на лету с помощью
функции useLocale. Она предоставляет возможность обновлять
текущую локаль без перезагрузки приложения.
import { ElMessage } from 'element-plus';
import { setLocale } from 'element-plus/es/locale';
// Импорт дополнительных локалей
import en from 'element-plus/es/locale/lang/en';
import ru from 'element-plus/es/locale/lang/ru';
// Смена локали на английский
setLocale(en);
// Использование компонента с новой локалью
ElMessage({
message: 'This message is in English',
type: 'success',
});
// Смена обратно на русский
setLocale(ru);
Особенности динамической локализации:
setLocale.setLocale работает как с предустановленными
локалями, так и с кастомными объектами перевода.Помимо стандартных языков, Element Plus позволяет создавать собственные переводы. Для этого необходимо сформировать объект с ключами, соответствующими компонентам, и передать его в конфигурацию:
import { createApp } from 'vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
const customLocale = {
name: 'ru-custom',
el: {
colorpicker: {
confirm: 'Применить',
clear: 'Очистить',
},
datepicker: {
now: 'Сейчас',
today: 'Сегодня',
cancel: 'Отмена',
},
// остальные компоненты по необходимости
},
};
const app = createApp(App);
app.use(ElementPlus, { locale: customLocale });
app.mount('#app');
Рекомендации по кастомным локалям:
el, которая строго соблюдается.В больших приложениях часто используется глобальный конфиг для Vue. Локаль можно интегрировать через provide/inject:
import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
import ru from 'element-plus/es/locale/lang/ru';
const app = createApp(App);
app.provide('ELEMENT_LOCALE', ru);
app.use(ElementPlus);
app.mount('#app');
provide позволяет компонентам получать
локаль через inject.app.use или подключается лениво.Element Plus официально поддерживает множество языков: английский,
русский, испанский, немецкий, французский, китайский и другие. Список
доступных локалей находится в element-plus/es/locale/lang и
может расширяться в будущих версиях.
element-plus/es/locale/lang.app.use(ElementPlus, { locale }).setLocale для
динамической смены.el.Эта система позволяет гибко управлять локалями и обеспечивает единообразие интерфейса во всех компонентах библиотеки.