Перевод движка на английский
Перевожу движок на английский (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() захардкодены месяца на русском)
Если движок только английский, то функцию можно сократить до
и изменить формат даты на 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 лет” улыбнуло ;)
Да, и еще. Если и этот топик заминусуют, просьба к админу удалить мой профиль, ибо самостоятельно сделать сейчас это нельзя.
Будет полезно тому, кто решит сделать сеть на английском. Поехали.
* Большинство файлов в /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 комментариев
Можно так пропатчить, в конфиге же локаль прописываеться =)
перевод тоже можно продават?