Как я могу сделать сайт доступным для просмотра на нескольких языках?


Мне известен вопрос , Какие существуют варианты реализации многоязычного сайта , но ответы там сосредоточены на поддержке нескольких языков как на бэкэнде, так и на интерфейсе.

Меня интересует только предложение многоязычного просмотра контента сайта, а не создание многоязычного контента.

Может ли это быть так же просто, как разместить код Инструментов Google Translate на моем сайте? Я вижу, что есть по крайней мере a пара плагинов, которые предлагают эту функциональность - у кого-нибудь есть опыт работы с ними?

Author: Community, 2010-09-16

3 answers

Если вы просто ищете способ просмотра вашего сайта на других языках, я бы демонстративно рекомендовал использовать инструменты Google Translate. Я просто добавляю его в тему:

<div id="google_translate_element"><span id="trans">Translate: </span></div>

Вы можете скрыть логотип Google и яркие цвета в своем css:

.goog-logo-link{display:none;} 

Вместо вызова js Google Translate я просто копирую скрипт возврата и добавляю его в свой основной файл js.

Редактировать

Google предоставляет код для вставки для использования на вашем веб-сайте:

 <div id="google_translate_element"></div><script>
function googleTranslateElementInit() {
  new google.translate.TranslateElement({
    pageLanguage: 'en',
    layout: google.translate.TranslateElement.InlineLayout.SIMPLE
  }, 'google_translate_element');
}
</script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

В первая строка: <div id="google_translate_element"></div> может быть размещена там, где вы хотите, чтобы отображалось раскрывающееся окно "перевести":

alt text

Раздел между первым набором тегов <script> - это параметры языка и макета. Последний набор тегов <script> вызывает больше javascript, который Google вставляет в ваш html-код во время загрузки dom. Чтобы ускорить этот процесс и избежать дополнительного http-запроса и встроенного скрипта, я удаляю последний вызов и добавляю код, возвращенный Google, в "основной" файл js, который я использую, содержащий весь мой пользовательский javascript объединен в один файл. Код, который возвращает Google, выглядит следующим образом:

(function(){var d=window,e=document;function f(b){var a=e.getElementsByTagName("head")[0];a||(a=e.body.parentNode.appendChild(e.createElement("head")));a.appendChild(b)}function _loadJs(b){var a=e.createElement("script");a.type="text/javascript";a.charset="UTF-8";a.src=b;f(a)}function _loadCss(b){var a=e.createElement("link");a.type="text/css";a.rel="stylesheet";a.charset="UTF-8";a.href=b;f(a)}function _isNS(b){b=b.split(".");for(var a=d,c=0;c<b.length;++c)if(!(a=a[b[c]]))return false;return true}
function _setupNS(b){b=b.split(".");for(var a=d,c=0;c<b.length;++c)a=a[b[c]]||(a[b[c]]={});return a}d.addEventListener&&typeof e.readyState=="undefined"&&d.addEventListener("DOMContentLoaded",function(){e.readyState="complete"},false);
if (_isNS('google.translate.Element')){return}var c=_setupNS('google.translate._const');c._cl='en';c._cuc='googleTranslateElementInit';c._cac='';c._cam='';var h='translate.googleapis.com';var b=(window.location.protocol=='https:'?'https://':'http://')+h;c._pah=h;c._pbi=b+'/translate_static/img/te_banner_bk.gif';c._pci=b+'/translate_static/img/te_ctrl.gif';c._phf=h+'/translate_static/js/element/hrs.swf';c._pli=b+'/translate_static/img/loading.gif';c._plla=h+'/translate_a/l';c._pmi=b+'/translate_static/img/mini_google.png';c._ps=b+'/translate_static/css/translateelement.css';c._puh='translate.google.com';_loadCss(c._ps);_loadJs(b+'/translate_static/js/element/main.js');})();

Это в основном из соображений производительности, чтобы избежать дополнительного запроса и избежать необходимости веб-сайту общаться с Google, если только язык не выбран из выпадающего списка.

Раскрывающийся список можно настроить с помощью css. Например, вот как я отображаю поле на сайте, на котором я его использовал.

alt text

 4
Author: Chris_O, 2010-09-19 22:49:06

Пожалуйста, ознакомьтесь с этим вопросом Лучшие практики локализации контента WordPress? может быть, вы найдете решение из этих идей

 2
Author: bueltge, 2017-04-13 12:37:42

Я использую плагин qTranslate для проекта, который я разрабатываю, и я действительно доволен результатами..

Http://www.qianqin.de/qtranslate / http://wordpress.org/extend/plugins/qtranslate /

Приветствия

 0
Author: Sergio Soares, 2010-09-16 22:05:35