Мультиязычность на php, js (wordpress)
Изначально думал сделать на wordpress мультиязычность с помощью
define('WP_ALLOW_MULTISITE', true);
Но держать столько админок в одной это не думаю хорошо. Да и не только дело в админке, но и в безопасности сайта, так как соединён в один.
В общем сделал так:
- Подключил js код
var arrLang = {
'en': {
'uslug': 'Services',
'nameusl': '2d and 3d animation'
},
'ru': {
'uslug': 'Услуги',
'nameusl': '2d и 3d анимация'
}
}
$(function() {
$('.translate').click(function() {
var lang = $(this).attr('id');
$('.lang').each(function(index, item) {
$(this).text(arrLang[lang][$(this).attr('key')]);
});
});
});
- Подключение с помощью
class="lang" key="nameusl"
Далее столкнулся проблемой: У меня есть cfs код и через него добавляются названия и описания.
Я не могу вставить новый ключ key, для названия nameusl
Чтобы например если, в этом nameusl есть название 2d и 3d анимация, то текст 2d and 3d animation, а если есть например: nameusl с название Картинки, то текcт Picture
Если в коде то так (но код не правильный):
var arrLang = {
'en': {
'uslug': 'Services',
'nameusl': '2d and 3d animation',
'nameusl': 'Picture'
},
'ru': {
'uslug': 'Услуги',
'nameusl': '2d и 3d анимация',
'nameusl': 'Картинки'
}
}
$(function() {
$('.translate').click(function() {
var lang = $(this).attr('id');
$('.lang').each(function(index, item) {
$(this).text(arrLang[lang][$(this).attr('key')]);
});
});
});
То есть вывести их в одной class="lang" key="nameusl" Для cfs кода или аналогичный acf плагин
Остальное всё выводиться и переводиться, если это брать каждый отдельный текст со всеми
И уже готовыми текстами.
Ещё думаю сделать с помощью switch, через case, но пока не знаю, как это можно реализовать... Не хочу использовать плагины, даже такие, как polylang.
Ответы (1 шт):
Сделайте через плагин и не надо мучаться. Плагин — это тот же код, только постоянно обновляемый разработчиками и лучше, чем ваш.
А использовать WordPress, но не использовать его главную фишку, а именно, плагины, просто глупо.