• Как реализовать мультиязычность JS сообщений в плагине qTranslate-X Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    Сформируйте массив со строками и обращайтесь к нему в js.
    У WordPress есть встроенные инструменты для этого, можно почитать здесь и здесь.

    Вариант 1. Сделать сложно и правильно.
    Добавить строки и создать .po и .mo файлы с переводами.
    function dco_get_language_strings() {
        $strings = array(
            'example' => __( 'My Example String', TEXTDOMAIN_CONSTANT ),
            'foo'   => __( 'My foo string', TEXTDOMAIN_CONSTANT ),
            'bar'   => __( 'My bar', TEXTDOMAIN_CONSTANT )
        )
    
        return $strings;
    }

    Затем подключить вывод к любому скрипту в теме
    wp_localize_script( 
                           'my_foo', 
                           'my_var_prefix',
                           dco_get_language_strings()
    );

    В js можно будет обращаться примерно так:
    alert(my_var_prefix.example)

    Вариант 2. Проще, но не особо правильно.
    add_action('wp_head', 'dco_translate_strings');
    
    function dco_translate_strings() { ?>
    	<script>
    		mystrings = {};
    		<?php if (qtranxf_getLanguage() == 'ru') : ?>
    			mystrings.example = 'Пример';
    			mystrings.example2 = 'Пример2';
    		<?php else if (qtranxf_getLanguage() == 'en') : ?>
    			mystrings.example = 'Example';
    			mystrings.example2 = 'Example2';
    		<?php endif; ?>
    	</script>
    <?php }

    Обращаться в js аналогично
    alert(mystrings.example)
    Ответ написан
    Комментировать