Как вы справляетесь с переводом текста с разметкой?

Сохраните результаты в массиве и затем дважды запустите этот массив.

$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();

$rows = $stmt->fetchAll();

foreach ($rows as $r) {
    // first run
}

foreach ($rows as $r) {
    // seconds run
}
35
задан 7 November 2008 в 22:31
поделиться

6 ответов

Решение 2 - то, что Вы хотите. Отправьте им целое предложение со встроенной разметкой HTML.

Причины:

  1. преобладающее инструментальное средство для перевода, TRADOS, может сохранить разметку от непреднамеренного повреждения переводчиком.
  2. TRADOS может также автоперевести текст, который он видел прежде, даже если содержание тегов изменилось (но количество тегов и их положения в предложении является тем же). По крайней мере переводчик даст Вам хорошую скидку.
  3. Моделирование является определенным для локали. В некоторых случаях, полужирный будет несоответствующим на китайском или японском языке, и курсивы реже используются на восточноазиатских языках, например. Переводчик должен иметь свободу или сохранить или удалить стили.
  4. Порядок слов является определенным для языка. Если бы необходимо было сегментировать вышеупомянутое предложение на фрагменты, оно могло бы работать на английский и французский язык, но на китайском или японском языке порядок слов не будет корректен, когда Вы конкатенируете. Поэтому это - лучшая i18n практика для воплощения всех предложений, не частей предложения.
18
ответ дан Mike Sickler 7 November 2008 в 22:31
поделиться
  1. Не Имеет никакого смысла, как был бы Вы переводить "войти в систему"?
  2. я не думаю, что много переводчиков имеют опыт с HTML (регулярные переводчики non-HTML-aware были бы более дешевыми)
  3. , я буду идти с опцией 3 или использовать "%slog in%s, чтобы продолжить" и заменить %s частями ссылки.
0
ответ дан Osama Al-Maadeed 7 November 2008 в 22:31
поделиться

Правовая оговорка: Я не испытан в интернационализации программного обеспечения сам.

  1. я не думаю, что это было бы хорошо в любом случае - просто представляет слишком много связи †¦
  2. , пока Вы продолжаете форматировать редкий в частях, которые должны быть переведены, это могло быть хорошо. Предоставление переводчиков возможности дать специальную важность слов (или делая их ссылкой или вероятно с помощью <strong /> акцент походит на хорошую идею. Однако те переводы с (X) HTML возможно не могут использоваться больше нигде легко.
  3. Это походит на ненужную работу мне †¦

, Если бы это был я, я думаю, что пошел бы со вторым подходом, но я поместил бы URI в параметр форматирования, так, чтобы это могло быть изменено, не имея необходимость изменять все те переводы.

Please <a href="%s">log in</a> to continue.

необходимо иметь в виду, что Вы, возможно, должны преподавать Вашим переводчикам элементарные знания (X) HTML, если Вы идете с этим подходом, так, чтобы они не завинчивали Вашу разметку и так, чтобы они знали, что ожидать от того текста, который они пишут. Во всяком случае это дополнительное знание могло бы привести к лучшей семантической разметке, потому что, как упомянуто выше, тексты могли быть переведены и аннотированы (X) HTML для отражения локального стиля записи.

7
ответ дан hangy 7 November 2008 в 22:31
поделиться

Интересный вопрос, у меня будет эта проблема очень скоро. Я думаю, что пойду для 2 без любого вида хитрого материала. Разметка HTML проста, URL не переместятся в ближайшее время, и если что-нибудь будет изменено, то новая запись будет создана в django.po, таким образом, мы получим шанс рассмотреть перевод (исключая: сценарий должен проверить на пустые переводы после makemessages).

Так, в шаблоне:

{% load i18n %}
{% trans 'hello <a href="/">world</a>' %}

... тогда, после python manage.py makemessages я вхожу в свой django.po

#: templates/out.html:3
msgid "hello <a href=\"/\">world</a>"
msgstr ""

, я изменяю его на свои потребности

#: templates/out.html:3
msgid "hello <a href=\"/\">world</a>"
msgstr "bonjour <a href=\"/\">monde</a>"

..., и в простых все же частых случаях я встречусь, это не будет стоить, дальше беспокоятся. Другие решения здесь кажутся довольно умными, но я не думаю, что решением проблем разметки является больше разметки. Плюс, я хочу избежать слишком большого количества запутывающего материала в шаблонах.

Ваши шаблоны должны быть довольно стабильными через некоторое время, я предполагаю, но я не знаю то, что другую проблему Вы ожидаете. Если содержание изменяется много раз, возможно, что место содержания не в шаблоне, но в модели.

Редактирование: Я просто проверил его в документация , если Вам когда-нибудь нужны переменные в переводе, существует blocktrans.

1
ответ дан vincent 7 November 2008 в 22:31
поделиться

2, с потенциальным скручиванием.

Вы, конечно, могли локализовать целую строку, как:

loginLink=Please <a href="/login">log in</a> to continue

Однако в зависимости от Ваших инструментов и Вашей группы локализации, они могли бы предпочесть для Вас делать что-то как:

// tokens in this string add html links
loginLink=Please {0}log in{1} to continue

, Который был бы моим предпочтительным методом. Вы могли использовать различный шаблон замены, если у Вас есть локализация, оснащающая, который игнорирует определенные символы. Например,

loginLink=Please %startlink%log in%endlink% to continue

Тогда выполняют замену в Вашем jsp, сервлете, или эквивалентный для любого языка, который Вы используете...

12
ответ дан Niniki 7 November 2008 в 22:31
поделиться

Что когда-либо Вы действительно сохраняете целым предложением как одной строкой. Необходимо понять целый sentece для перевода его правильно.

Не все слова должны быть переведены на всех языках: например, на норвежском языке каждый не использует (мы можем говорить "vГ ¦ r sГҐ поводок" буквально "быть так добрыми", но при использовании в качестве команды это звучит слишком мощным), так корректный норвежский vould быть:

  • "Logg inn для ГҐ fortsette" освещенный.: "Войдите в систему, продолжаются" или
  • "Fortsett ved ГҐ logge гостиница", освещенная.: "Продолжите войти в систему", и т.д.

необходимо позволить полностью изменять порядок, например, на вымышленном демонстрационном языке:

  • "FГјr продолжатель Loggen пожалуйста ins" (если это было реально), освещенный.: "Для продолжения журнала в"

, Некоторый язык может даже иметь одно отдельное слово для (большая часть) это предложение также...

я рекомендую решение 1, или возможно "% {потрясение} входит в систему % {endlink} для продолжения" этого способа, которым переводчик может сделать целое предложение ссылкой, если это более естественно, и это может быть полностью реструктурировано.

3
ответ дан Stein G. Strindhaug 8 November 2008 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: