[Решено] Сделал переводы строк на сайте, но они не применились.
Эта тема решена. Вот описание проблемы и ее решения.
Проблема: Клиент добавил новые функции на сайт с помощью PHP и зарегистрировал строки для перевода через WPML. Однако переводы строк не применились везде на сайте. Решение: 1. Убедитесь, что ваш код соответствует стандартам и корректно использует функции wpml_register_single_string и wpml_translate_single_string. Примеры использования доступны по ссылкам: wpml_register_single_string, wpml_translate_single_string. 2. Воспользуйтесь инструментами для устранения неполадок в WPML → Support → Troubleshooting, такими как очистка кэша и генерация новых MO файлов. 3. Проверьте, используете ли вы устаревшую функцию icl_register_string. Вместо неё следует использовать wpml_register_string и wpml_translate_string для регистрации и отображения переведенных строк соответственно. Подробная инструкция доступна здесь: String Package Translation.
Если данное решение не актуально или не помогло решить вашу проблему, рекомендуем открыть новый тикет в службе поддержки WPML. Также рекомендуем проверить известные проблемы на странице известных проблем, убедиться в актуальности версии исправления и подтвердить, что у вас установлены последние версии тем и плагинов.
Это форум технической поддержки WPML – плагина для многоязычной WordPress.
Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.
Сотрудники Службы поддержки сегодня не доступны на форуме Russian. Создайте обращение и мы возьмемся за решение вашего вопроса, как только будем в сети. Благодарим за понимание.
Предыстория вопроса:
Я добавил новые функции на сайт скрытая ссылка с помощью PHP. Для текстов прописал код для регистрации в переводе строк через WPML. Строки появились, и я сделал их перевод.
Симптомы:
Переводы строк применились не везде на сайте.
Вопросы:
Почему переводы строк не применились везде на сайте?
Как убедиться, что все строки правильно зарегистрированы для перевода?
У Вас также ест возможность запустить несколько опций по устранению неполадок в WPML → Support → Troubleshooting:
- Clear the cache in WPML
- Show custom MO Files Pre-generation dialog box и сгенерировать после новые файлы.
Все проверил. Коды регистрации строк происаны верно. Что подтверждает наличие их в таблице строк. Переводы строк сделаны. Кеш wpml очищен, файл PO обнавлн. Но на сайте переводы не работают.
Мне необходимо увидеть, как Вы это сделали. Скопируйте пожалуйста все соответствующие коды и вставьте здесь, которые используете. Проверяли ли проблему временно отключив все плагины кроме WPML?
// Массив с ролями и их привилегиями
$roles = [
'scandi_girls_explorer' => [
'status' => __('Scandi Girls Explorer', 'scandinasia.de'),
'privileges' => '<ul>
<li>' . __('Rabatt: 5%', 'scandinasia.de') . '</li>
<li>' . __('Zugang zu neuen Kollektionen 1 Tag vor dem offiziellen Start', 'scandinasia.de') . '</li>
</ul>'
],
'scandi_girls_adventurer' => [
'status' => __('Scandi Girls Adventurer', 'scandinasia.de'),
'privileges' => '<ul>
<li>' . __('Rabatt: 7%', 'scandinasia.de') . '</li>
<li>' . __('Zugang zu neuen Kollektionen 2 Tage vor dem offiziellen Start', 'scandinasia.de') . '</li>
<li>' . __('Teilnahme an exklusiven Club-Veranstaltungen', 'scandinasia.de') . '</li>
</ul>'
],
'scandi_girls_voyager' => [
'status' => __('Scandi Girls Voyager', 'scandinasia.de'),
'privileges' => '<ul>
<li>' . __('Rabatt: 10%', 'scandinasia.de') . '</li>
<li>' . __('Zugang zu neuen Kollektionen 3 Tage vor dem offiziellen Start', 'scandinasia.de') . '</li>
<li>' . __('Priorisierte Betreuung', 'scandinasia.de') . '</li>
<li>' . __('Exklusive Geschenke', 'scandinasia.de') . '</li>
</ul>'
],
'scandi_girls_queen' => [
'status' => __('Scandi Girls Queen', 'scandinasia.de'),
'privileges' => '<ul>
<li>' . __('Rabatt: 15%', 'scandinasia.de') . '</li>
<li>' . __('Zugang zu neuen Kollektionen 5 Tage vor dem offiziellen Start', 'scandinasia.de') . '</li>
<li>' . __('Exklusive Angebote', 'scandinasia.de') . '</li>
<li>' . __('Persönliche Beratung', 'scandinasia.de') . '</li>
<li>' . __('VIP-Einladungen zu Veranstaltungen', 'scandinasia.de') . '</li>
</ul>'
]
];
// Перебор ролей и вывод информации
foreach ($roles as $role => $info) {
if (in_array($role, $current_user->roles)) {
echo '<p><strong>' . __('Ihr Status:', 'scandinasia.de') . '</strong> ' . $info['status'] . '</p>';
echo '<p><strong>' . __('Vorteile:', 'scandinasia.de') . '</strong></p>';
echo $info['privileges'];
return; // Останавливаем после первого найденного соответствия
}
}
// Если нет специальной роли - мотивирующий текст
echo '<p><strong>' . __('Ihr Status:', 'scandinasia.de') . '</strong> ' . __('Noch kein Mitglied', 'scandinasia.de') . '</p>';
echo '<p>' . __('Werden Sie Mitglied, um exklusive Rabatte, frühe Zugänge zu neuen Kollektionen und andere Vorteile zu genießen!', 'scandinasia.de') . '</p>';
echo '<p>' . __('Machen Sie Ihre erste Bestellung und treten Sie unserem exklusiven Club bei!', 'scandinasia.de') . '</p>';
}
if (function_exists('icl_register_string')) {
// Регистрация строк для перевода на немецком
icl_register_string('scandinasia', 'Verkaufsstart: %s. Nur für Clubmitglieder verfügbar.', 'Verkaufsstart: %s. Nur für Clubmitglieder verfügbar.');
icl_register_string('scandinasia', 'Sie haben Zugriff auf diese Kollektion %s Tage vor dem offiziellen Start.', 'Sie haben Zugriff auf diese Kollektion %s Tage vor dem offiziellen Start.');
icl_register_string('scandinasia', 'Vorteile:', 'Vorteile:');
icl_register_string('scandinasia', 'Rabatt:', 'Rabatt:');
icl_register_string('scandinasia', 'Ihr Status:', 'Ihr Status:');
icl_register_string('scandinasia', 'Verkaufsstart: %s. Nur für Clubmitglieder verfügbar. Weitere Informationen zu den Clubregeln finden Sie %s.', 'Verkaufsstart: %s. Nur für Clubmitglieder verfügbar. Weitere Informationen zu den Clubregeln finden Sie %s.');
}