2012-06-29 3 views
2

В постоянном развитии веб-сайте проект I стиля всех «о» символов в некоторой видимой области текста в красный цвет, с помощью HTML диапазона тегов и CSS, как это:Google перевод слов с помощью CSS в стиле отдельных символов

Questi<span class="redcharacter">o</span>n. 
.redcharacter { color: red; } 

Проблема заключается в том, что при использовании переводчика веб-сайта google, который я добавил на веб-сайт, тег span разбивает слова, а google переводит отдельные части вместо всего слова («Questi» как одно слово », o «как одно слово, а« n »- одно слово).

Мой вопрос:Есть ли способ заставить «переводчик сайта google» перевести все слово и все-таки позволить мне стиль отдельных символов?

Я до сих пор пытался (безуспешно):

  1. Поиск других способов укладки отдельных символов.
  2. Поиск способа «подключиться» к некоторой функции javascript для перевода google , чтобы я мог удалить теги span перед переводом. Это было бы приемлемым, если бы не отдельные символы, созданные в переведенных страницах, при условии, что перевод самого текста работает.

Благодарим вас за это замечательное веб-сайт, и это очень помогло мне в последнее время!

EDIT: Это код, я использую, чтобы включить «Google сайт переводчик» на моей странице:

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

Если это произведение искусства или просто для отображения заголовков, то, возможно, этот подход может быть приемлемым, но в противном случае я бы не рекомендовал его. С точки зрения удобства использования/дизайна каждый экземпляр общей буквы, представленной в другом цвете, будет чрезвычайно отвлекающим и эстетически непривлекательным. Во-вторых, вы разбили семантическую структуру вашего контента. Вы можете снова начать использовать '' теги, так как у вас больше нет разделения презентации и контента. Наконец, читатели экрана собираются разбить эти слова так же, как Google Translate. –

+1

Спасибо за ваш ответ, я вижу вашу точку зрения. Логотип сайта имеет темно-красный «o» в нем, а текст, созданный в соответствии с этим «трюком сайта», - это пользовательские «стихотворные» короткие тексты. В моих глазах это выглядит неплохо :-) Тем не менее, для меня важна удобство и семантика, поэтому я, вероятно, надеюсь, что псевдо-элемент nth-letter() css будет реализован в ближайшее время, и пропустим стиль сейчас, для обеспечения правильного использования с программами чтения и перевода. Еще раз спасибо за отзыв! –

ответ

1

Вы можете использовать свойство innerHTML в JavaScript, чтобы получить текст внутри текстового поля, а затем заменить все вхождения от <span class="redcharacter">o</span> с буквами o. Затем отправьте этот текст для перевода.

function translate(){ 
    text = document.getElementById('myTxtArea').innerHTML; 
    parsedText = text.replace("<span class="redcharacter">o</span>","o"); 
    // send parsedText to Google Translate... 
    // do something with what is returned 
} 

Нечто подобное.

Редактировать: В свете новых подробностей; Моей первой рекомендацией было бы взглянуть на Google на различные способы отправки и получения слов и их переводов. Тот, который дает вам свободу. Посмотрев на код, похоже, что они выкладывают копию поля с сайта translate.google.com на вашу страницу.

Если это не сработает, перейдите по ссылке source code и скопируйте его в свой файл. Измените этот код (это путаное чтение) и поместите его на свой сайт.

+0

Благодарим вас за ответ! Проблема в том, что я не знаю, как «подключиться» к функции «перевод веб-сайта google» («send parsedText to Google Translate ...»), и я не могу найти ответа на это при поиске для этого! –

+0

У вас есть отправка текста в Google? Не могли бы вы изменить свой вопрос, чтобы включить код, который вы используете для перевода текста? – StoicJester

+0

Как вы вставляете текст в текстовое поле? У вас есть предустановленная или динамическая динамика? – StoicJester

1

С :nth-letter() пока недоступен (но я слышал, что он наступает), я бы использовал сценарий на стороне клиента, чтобы покрасить весь красный цвет o, и не забудьте запустить его после завершения перевода.

Он может мерцать, но нет никакого способа настроить индивидуальные символы с помощью css (пока) без дополнительной разметки (что нарушает переводчик).

Вот супер схематичны rumor site для справки :)

+0

Спасибо за ваш ответ, это было интересно читать! : nth-letter() решит мою проблему, хотя мне придется генерировать css динамически, так как текст, который мне нужен для стиля, основан на пользовательском вводе, поэтому позиции символов неизвестны во время кодирования. Моя проблема теперь заключается в том, что, поскольку посетитель веб-сайта запускает перевод при использовании динамически загруженного элемента управления из Google («переводчик сайта Google»), я не знаю, где поставить мой код для удаления стиля перед переводом , В стандартном случае нет перевода, который работает хорошо! –

+0

Ох. ОК. Тогда, боюсь, я не могу вам помочь. –

Смежные вопросы