Несколько вопросов о локализации Django - PullRequest
0 голосов
/ 20 июня 2010

Я намереваюсь локализовать свое приложение Django и начал читать о локализации на сайте Django. Это заставило меня задуматься:

  1. Кажется, что когда вы запускаете команду 'django-admin.py makemessages', она сканирует файлы на наличие встроенных строк и генерирует файл сообщений, содержащий переводы. Эти переводы отображаются на строки в файле. Например, если у меня есть строка в HTML, которая гласит «Пожалуйста, введите имя получателя», Django будет считать его идентификатором сообщения. Что произойдет, если я что-то изменил в строке. Допустим, я добавил недостающий апостроф к слову «получатель». Не нарушит ли это перевод?

  2. Что касается приведенного выше сценария, лучше ли использовать в источнике полноценные предложения (которые могут измениться), или мне лучше использовать слово типа «RECIPIENT_NAME», которое менее вероятно изменится и станет проще для сопоставления с?

  3. Сканирует ли команда django-admin.py makemessages также источники Python?

Спасибо.

1 Ответ

2 голосов
/ 20 июня 2010
  1. Скорее всего, в некоторых случаях можно обнаружить «похожие» строки, и ваш перевод будет помечен нечетким. Но это зависит от типа строки, я не знаю, что будет делать добавление апострофа. Прочитайте GNU gettext docs для получения дополнительной информации об этом. Тем не менее, простым решением для вашей проблемы было бы: не исправляйте опечатку в оригинале, а сделайте перевод с английского на английский, где переведенная строка является правильной :). Лично я бы не рекомендовал такой подход, но если вы боитесь сломать десятки файлов перевода, это можно рассмотреть.

  2. Нет, это не так, это отбрасывает все чувство контекста. Это может показаться более понятным для сайтов, где требуется всего несколько строк перевода, и вы знаете точный контекст наизусть. Но как только в файле перевода появятся сотни строк, подобные короткие имена ничего не скажут, вам всегда придется искать точный контекст. Хуже того, может быть, вы используете одно и то же «короткое имя» для чего-то, что на самом деле должно переводиться по-разному, что в итоге даст вам более странные короткие имена для обработки обоих случаев. Наконец, если вы используете один нормальный язык по умолчанию, вам больше не нужно переводить этот язык явно.

  3. Да, это так, в Python есть несколько функций для пометки строк для перевода, обзор можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...