Перевод движка на английский

Перевожу движок на английский (btw, кто-то еще пытался?). Нашел достаточное количество строк, не вынесенных в language file (russian.php) + список пожеланий на исправление по проекту в целом.
Будет полезно тому, кто решит сделать сеть на английском. Поехали.

* Большинство файлов в /include/ajax (системные сообщения). Если не считать самого конфига russian.php, эти файлы содержат в себе наибольшее количество не вынесенных в конфиг строк.

* /templates/skin/new/actions/ActionTopic/add.tpl (“жирный”, “курсив” и пр. – я так понимаю, там должны быть {$aLang.panel_*} константы)

* /classes/lib/external/tiny_mce/plugins/lsvideo/video.htm
/classes/lib/external/tiny_mce/plugins/lsimage/image.htm (да, я в курсе, что это плагин)

* /index.php (“Статистика выполнения”, но это опционально)

* ‘Windows-1251’ прописано в /include/function.php, /classes/lib/external/JsHttpRequest, /classes/lib/external/DbSimple

* /include/function.php (в функции func_date() захардкодены месяца на русском)
Если движок только английский, то функцию можно сократить до
function func_date($sDate, $sFormat="j F Y, H:i") {
    return date($sFormat, preg_match("/^\d+$/",$sDate) ? $sDate : strtotime($sDate));
}

и изменить формат даты на format=«j F Y» в /templates/skin/new/actions/ActionProfile/whois.tpl

* engine: в классе Action.class.php выбрасываются exception’ы c текстами
throw new Exception(«Некорректное число аргументов при добавлении евента»);
throw new Exception(«Добавляемый метод евента не найден:».$aEvent['method']);
(не критично с точки зрения локализации)

Плюс

$this->Message_AddErrorSingle('К сожалению, такой страницы не существует. Вероятно, она была удалена с сервера, либо ее здесь никогда не было.','404');
(это важно)

* при создании юзера в поле blog_title таблицы prefix_blog пишется 'Блог им. username'.
В файле /classes/modules/blog/Blog.class.php есть строки
$oBlog->setTitle('Блог им. '.$oUser->getLogin());
$oBlog->setDescription('Это ваш персональный блог.');

* /templates/skin/new/js/other.js
msgErrorBox.alert('Ошибка','Возникли проблемы при обработке предпросмотра');
msgErrorBox.alert('Ошибка','Возникли проблемы при загрузке изображения, попробуйте еще разок. И на всякий случай проверьте правильность URL картинки');

* /classes/lib/external/phpMailer/language/phpmailer.lang-*.php
В коде class.phpmailer.php и Mail.class.php по умолчанию стоит язык 'en', но эти lang-файлы нужно также учитывать при переводе.

* /classes/modules/notify/Notify.class.php
$this->Mail_SetSubject('Новый топик в блоге «'.htmlspecialchars($oBlog->getTitle()).'»');
$this->Mail_SetSubject('Регистрация'); (2 раза)
$this->Mail_SetSubject('Приглашение на регистрацию');
$this->Mail_SetSubject('У вас новое письмо');
$this->Mail_SetSubject('У вас новый комментарий к письму');
$this->Mail_SetSubject('Вас добавили в друзья');
$this->Mail_SetSubject('Восстановление пароля');
$this->Mail_SetSubject('Новый пароль');

* /classes/modules/sys_cache/Cache.class.php
throw new Exception(«Неверный тип кеширования: ».$this->sCacheType." Доступны: file, memory");

* /class/modules/sys_viewer/plugs/insert.block.php
$oSmarty->trigger_error(«Шаблон блока не найден: ».$aParams['block']);

* /class/modules/sys_viewer/Viewer.class.php
throw new Exception('Не найден шаблон: '.$sTemplate);

Искать русские тексты в исходниках с русскими комментариями конечно сложно.

Прочие фиксы:

* я бы убрал в файле /templates/skin/new/actions/ActionTopic/add.tpl ссылку html теги… и оставил только внутренний текст, так как неработающая ссылка только путает

* после открытия формы «Авторизация» сделал бы автофокус на поле «Логин или email» и повесил на Esc закрытие формы. Также фокус не помешает и другим формам, например, «Восстановление пароля».

* в профиле не хватает валидации URL сайта на формат и если ICQ указан неверно (например, буквами), то это поле не сохраняется – вывел бы сообщение об ошибке

* Избранное(1), Блог(3), Комментарии(2) – отделил бы пробелом слова и скобки

* в IE 6 текст на кнопке «написать» сдвинут влево

* в таблице prefix_blog, в поле blog_type используется перечисление enum('personal','open','invate','close'). Invate здесь правильнее заменить на invite.

* при инсталляции INSERT INTO `prefix_blog` (...) VALUES (1, 1, 'Блог им. admin',)… также остается в базе на русском

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

* таблица prefix_user, поле user_profile_sex – заменил бы 'other' на 'unknown' =)

* при нажатии на подраздел «TOP» в «Блоги» слетает выделение раздела «Блоги» сверху. Можно сравнить функциональность, нажав на «Персональные», потом на «TOP»

* при нахождении на главной странице убрал бы линк с логотипа, чтобы не было «зацикливания». То же самое проверил бы в отношении всех других ссылок (например, меню).

* если есть движение в сторону интернационализации проекта, то нужно где-то в конфигурации предусмотреть и форматы дат, чтобы не править их по всему коду руками. Или определять автоматически.

* в smarty-шаблонах (.tpl) лучше использовать smarty-комментарии вида {*… *}
Они не передаются клиенту, в отличие от html-комментариев, экономя трафик

* про автосохранение текста при редактировании постов писали уже на сайте, кажется. Вещь из разряда must be.

P.S. Движок понравился

P.P.S “за последние 100 лет” улыбнуло ;)

Да, и еще. Если и этот топик заминусуют, просьба к админу удалить мой профиль, ибо самостоятельно сделать сейчас это нельзя.

17 комментариев

avatar
Макс, мужайся:)
avatar
а куда торопитесь то? :)
avatar
Чувствую молниеносный захват западного рынка:)
avatar
Я ещё в версии 0.2 составил эксельные таблицы какие файлы и какие фразы менять, на английский и на испанский :)
avatar
Да, и еще. Если и этот топик заминусуют, 
просьба к админу удалить мой профиль, 
ибо самостоятельно сделать сейчас это нельзя.
Зачем слова, адресованные конкретному человеку, выставлять на всеобщее обозрение? Или вы так шантажируете потенциальных минусяторов?
avatar
Английская локализация здесь: livestreet.ru/blog/language/1637.html
avatar
/include/function.php

Можно так пропатчить, в конфиге же локаль прописываеться =)

function func_date($sDate,$sFormat="%Y %B %d, %H:%M") {
    $sDate=strftime($sFormat);
    return $sDate;
}
avatar
а на немецкий язык перевод кому то интересен?
перевод тоже можно продават?
avatar
Было бы шикарно, если бы язык можно было выставить в профиле пользователя.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.