From 60af371b1f310e3e9bf03ffcccd3f0825ef98693 Mon Sep 17 00:00:00 2001 From: Yuriy Pikhtarev Date: Wed, 28 Jun 2017 22:50:21 +0300 Subject: [PATCH 1/3] New language subsystem container. --- bootstrap.php | 23 + .../language/ru/email/admin_send_email.html | 10 + library/language/ru/email/blank.html | 1 + library/language/ru/email/group_added.html | 9 + library/language/ru/email/group_approved.html | 8 + library/language/ru/email/group_request.html | 8 + library/language/ru/email/privmsg_notify.html | 9 + .../language/ru/email/profile_send_email.html | 12 + library/language/ru/email/topic_notify.html | 11 + library/language/ru/email/user_activate.html | 7 + .../ru/email/user_activate_passwd.html | 15 + library/language/ru/email/user_welcome.html | 14 + .../ru/email/user_welcome_inactive.html | 18 + library/language/ru/html/advert.html | 4 + .../language/ru/html/copyright_holders.html | 35 + library/language/ru/html/not_found.html | 3 + library/language/ru/html/sidebar1.html | 23 + library/language/ru/html/sidebar2.html | 11 + library/language/ru/html/user_agreement.html | 84 + library/language/ru/main.php | 2833 +++++++++++++++++ .../default/images/lang/ru/icon_edit.gif | Bin 0 -> 2220 bytes .../default/images/lang/ru/icon_email.gif | Bin 0 -> 2661 bytes .../default/images/lang/ru/icon_icq_add.gif | Bin 0 -> 2473 bytes .../default/images/lang/ru/icon_ip.gif | Bin 0 -> 1288 bytes .../default/images/lang/ru/icon_mc.gif | Bin 0 -> 1355 bytes .../default/images/lang/ru/icon_pm.gif | Bin 0 -> 2581 bytes .../default/images/lang/ru/icon_poll.gif | Bin 0 -> 2229 bytes .../default/images/lang/ru/icon_profile.gif | Bin 0 -> 2771 bytes .../default/images/lang/ru/icon_quote.gif | Bin 0 -> 2427 bytes .../default/images/lang/ru/icon_search.gif | Bin 0 -> 2627 bytes .../default/images/lang/ru/icon_www.gif | Bin 0 -> 2739 bytes .../default/images/lang/ru/msg_newpost.gif | Bin 0 -> 3804 bytes .../templates/default/images/lang/ru/post.gif | Bin 0 -> 3573 bytes .../default/images/lang/ru/release.gif | Bin 0 -> 3717 bytes .../default/images/lang/ru/reply-locked.gif | Bin 0 -> 3786 bytes .../default/images/lang/ru/reply.gif | Bin 0 -> 3161 bytes 36 files changed, 3138 insertions(+) create mode 100644 library/language/ru/email/admin_send_email.html create mode 100644 library/language/ru/email/blank.html create mode 100644 library/language/ru/email/group_added.html create mode 100644 library/language/ru/email/group_approved.html create mode 100644 library/language/ru/email/group_request.html create mode 100644 library/language/ru/email/privmsg_notify.html create mode 100644 library/language/ru/email/profile_send_email.html create mode 100644 library/language/ru/email/topic_notify.html create mode 100644 library/language/ru/email/user_activate.html create mode 100644 library/language/ru/email/user_activate_passwd.html create mode 100644 library/language/ru/email/user_welcome.html create mode 100644 library/language/ru/email/user_welcome_inactive.html create mode 100644 library/language/ru/html/advert.html create mode 100644 library/language/ru/html/copyright_holders.html create mode 100644 library/language/ru/html/not_found.html create mode 100644 library/language/ru/html/sidebar1.html create mode 100644 library/language/ru/html/sidebar2.html create mode 100644 library/language/ru/html/user_agreement.html create mode 100644 library/language/ru/main.php create mode 100644 styles/templates/default/images/lang/ru/icon_edit.gif create mode 100644 styles/templates/default/images/lang/ru/icon_email.gif create mode 100644 styles/templates/default/images/lang/ru/icon_icq_add.gif create mode 100644 styles/templates/default/images/lang/ru/icon_ip.gif create mode 100644 styles/templates/default/images/lang/ru/icon_mc.gif create mode 100644 styles/templates/default/images/lang/ru/icon_pm.gif create mode 100644 styles/templates/default/images/lang/ru/icon_poll.gif create mode 100644 styles/templates/default/images/lang/ru/icon_profile.gif create mode 100644 styles/templates/default/images/lang/ru/icon_quote.gif create mode 100644 styles/templates/default/images/lang/ru/icon_search.gif create mode 100644 styles/templates/default/images/lang/ru/icon_www.gif create mode 100644 styles/templates/default/images/lang/ru/msg_newpost.gif create mode 100644 styles/templates/default/images/lang/ru/post.gif create mode 100644 styles/templates/default/images/lang/ru/release.gif create mode 100644 styles/templates/default/images/lang/ru/reply-locked.gif create mode 100644 styles/templates/default/images/lang/ru/reply.gif diff --git a/bootstrap.php b/bootstrap.php index 2deff7cb9..ee23e5342 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -16,6 +16,8 @@ use Illuminate\Database\Capsule\Manager; use Illuminate\Database\Events\StatementPrepared; use Illuminate\Events\Dispatcher; use Illuminate\Filesystem\Filesystem; +use Illuminate\Translation\FileLoader; +use Illuminate\Translation\Translator; use Symfony\Component\Finder\Finder; try { @@ -126,6 +128,9 @@ $container->singleton('config', function () { ], ]); + $config->set('app.locale', 'ru'); + $config->set('app.fallback_locale', 'source'); + return $config; }); @@ -138,3 +143,21 @@ $container->singleton('cache', function ($container) { return $cache->driver(); }); + +/** + * Localization + */ +$container->singleton('translator', function ($app) { + $loader = $app['translation.loader']; + $locale = $app['config']['app.locale']; + + $trans = new Translator($loader, $locale); + + $trans->setFallback($app['config']['app.fallback_locale']); + + return $trans; +}); + +$container->singleton('translation.loader', function ($app) { + return new FileLoader($app['files'], __DIR__ . '/../resources/lang'); +}); diff --git a/library/language/ru/email/admin_send_email.html b/library/language/ru/email/admin_send_email.html new file mode 100644 index 000000000..c762c011f --- /dev/null +++ b/library/language/ru/email/admin_send_email.html @@ -0,0 +1,10 @@ +Это письмо отправлено вам администратором сайта "{SITENAME}". Если это сообщение является спамом, содержит оскорбления или прочие неприятные вам комментарии, пожалуйста свяжитесь с администратором сайта по адресу: + +{BOARD_EMAIL} + +Включите данное сообщение целиком (особенно заголовки). + +Отправленное вам сообщение: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/library/language/ru/email/blank.html b/library/language/ru/email/blank.html new file mode 100644 index 000000000..eb059e7db --- /dev/null +++ b/library/language/ru/email/blank.html @@ -0,0 +1 @@ +{MESSAGE} diff --git a/library/language/ru/email/group_added.html b/library/language/ru/email/group_added.html new file mode 100644 index 000000000..247f8c5f4 --- /dev/null +++ b/library/language/ru/email/group_added.html @@ -0,0 +1,9 @@ +Поздравляем! + +Вы были приняты в группу "{GROUP_NAME}" на сайте {SITENAME}. +Это было проделано модератором группы или администратором сайта, обратитесь к ним за дополнительной информацией. + +Перейдите по ссылке, чтобы увидеть информацию о вашем членстве в группах: +{U_GROUP} + +{EMAIL_SIG} diff --git a/library/language/ru/email/group_approved.html b/library/language/ru/email/group_approved.html new file mode 100644 index 000000000..2ff23c689 --- /dev/null +++ b/library/language/ru/email/group_approved.html @@ -0,0 +1,8 @@ +Поздравляем! + +Ваша просьба о вступлении в группу "{GROUP_NAME}" на сайте {SITENAME} была удовлетворена. +Перейдите по ссылке, чтобы увидеть информацию о вашем членстве в группах. + +{U_GROUP} + +{EMAIL_SIG} diff --git a/library/language/ru/email/group_request.html b/library/language/ru/email/group_request.html new file mode 100644 index 000000000..d450893e5 --- /dev/null +++ b/library/language/ru/email/group_request.html @@ -0,0 +1,8 @@ +Уважаемый(ая) {GROUP_MODERATOR}! + +Пользователь {USER} попросил о вступлении в группу (на сайте {SITENAME}), модератором которой Вы являетесь. +Чтобы удовлетворить или отклонить эту просьбу, перейдите по следующей ссылке: + +{U_GROUP} + +{EMAIL_SIG} diff --git a/library/language/ru/email/privmsg_notify.html b/library/language/ru/email/privmsg_notify.html new file mode 100644 index 000000000..e7ddda509 --- /dev/null +++ b/library/language/ru/email/privmsg_notify.html @@ -0,0 +1,9 @@ +Здравствуйте, {USERNAME}! + +{NAME_FROM} отправил(а) Вам личное сообщение на сайте {SITENAME}. Вы можете прочитать его, перейдя по следующей ссылке: + +{U_INBOX} + +Вы можете отказаться от получения подобных уведомлений, если измените настройки в своем профиле. + +{EMAIL_SIG} diff --git a/library/language/ru/email/profile_send_email.html b/library/language/ru/email/profile_send_email.html new file mode 100644 index 000000000..f6bd3ec83 --- /dev/null +++ b/library/language/ru/email/profile_send_email.html @@ -0,0 +1,12 @@ +Здравствуйте, {TO_USERNAME}! + +Ниже следует письмо, отправленное вам пользователем {FROM_USERNAME} через вашу регистрацию на сайте {SITENAME}. Если это сообщение является спамом, содержит оскорбления или прочие неприятные вам комментарии, пожалуйста свяжитесь с администратором сайта по адресу: + +{BOARD_EMAIL} + +Включите данное сообщение целиком (особенно заголовки). Пожалуйста учтите, что адрес ответа в этом сообщении является адресом {FROM_USERNAME}. + +Посланное вам сообщение: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/library/language/ru/email/topic_notify.html b/library/language/ru/email/topic_notify.html new file mode 100644 index 000000000..2ad042cd0 --- /dev/null +++ b/library/language/ru/email/topic_notify.html @@ -0,0 +1,11 @@ +Здравствуйте, {USERNAME}! + +Вы получили это сообщение потому, что следите за темой "{TOPIC_TITLE}" на сайте {SITENAME}. В этой теме со времени вашего последнего посещения появилось новое сообщение. Вы можете перейти по ссылке, чтобы прочитать поступившие ответы; новые уведомления не будут приходить, пока вы не просмотрите тему. + +{U_TOPIC} + +Если вы больше не хотите следить за темой, то либо щелкните по ссылке "перестать следить за темой" внизу страницы, либо перейдите по следующей ссылке: + +{U_STOP_WATCHING_TOPIC} + +{EMAIL_SIG} diff --git a/library/language/ru/email/user_activate.html b/library/language/ru/email/user_activate.html new file mode 100644 index 000000000..f9ed1dcbe --- /dev/null +++ b/library/language/ru/email/user_activate.html @@ -0,0 +1,7 @@ +Здравствуйте, {USERNAME}! + +Ваша учетная запись на сайте {SITENAME} была отключена, скорее всего из-за внесенных в ваш профиль изменений. Чтобы вновь ее активировать, перейдите по этой ссылке: + +{U_ACTIVATE} + +{EMAIL_SIG} diff --git a/library/language/ru/email/user_activate_passwd.html b/library/language/ru/email/user_activate_passwd.html new file mode 100644 index 000000000..3b5c02499 --- /dev/null +++ b/library/language/ru/email/user_activate_passwd.html @@ -0,0 +1,15 @@ +Здравствуйте, {USERNAME}! + +Вы получили это письмо потому, что вы (либо кто-то, выдающий себя за вас) попросили выслать новый пароль к вашей учетной записи на сайте {SITENAME}. Если вы не просили выслать пароль, то не обращайте внимания на это письмо, если же подобные письма будут продолжать приходить, обратитесь к администратору сайта. + +Прежде чем использовать новый пароль, вы должны его активировать. Для этого перейдите по ссылке. + +{U_ACTIVATE} + +В случае успешной активации вы сможете входить в систему, используя следующий пароль: + +Пароль: {PASSWORD} + +Вы сможете сменить этот пароль на странице редактирования профиля. Если у вас возникнут какие-то трудности, обратитесь к администратору сайта. + +{EMAIL_SIG} diff --git a/library/language/ru/email/user_welcome.html b/library/language/ru/email/user_welcome.html new file mode 100644 index 000000000..5dfbbf4a8 --- /dev/null +++ b/library/language/ru/email/user_welcome.html @@ -0,0 +1,14 @@ +{WELCOME_MSG} + +Пожалуйста сохраните это сообщение. Параметры вашей учетной записи таковы: + +---------------------------- +Имя пользователя: {USERNAME} +Пароль: {PASSWORD} +---------------------------- + +Не забывайте свой пароль: он хранится в нашей базе в зашифрованном виде, и мы не сможем вам его выслать. Если вы все же забудете пароль, то сможете запросить новый, который придется активировать таким же образом, как и вашу учетную запись. + +Спасибо за то, что зарегистрировались на нашем сайте. + +{EMAIL_SIG} diff --git a/library/language/ru/email/user_welcome_inactive.html b/library/language/ru/email/user_welcome_inactive.html new file mode 100644 index 000000000..42cf4e32c --- /dev/null +++ b/library/language/ru/email/user_welcome_inactive.html @@ -0,0 +1,18 @@ +{WELCOME_MSG} + +Пожалуйста сохраните это сообщение. Параметры вашей учетной записи таковы: + +---------------------------- +Имя пользователя: {USERNAME} +Пароль: {PASSWORD} +---------------------------- + +Ваша учетная запись еще не активна. Вы не сможете ей пользоваться, пока не перейдете по следующей ссылке: + +{U_ACTIVATE} + +Не забывайте свой пароль: он хранится в нашей базе в зашифрованном виде, и мы не сможем вам его выслать. Если вы все же забудете пароль, то сможете запросить новый, который придется активировать таким же образом, как и вашу учетную запись. + +Благодарим за регистрацию. + +{EMAIL_SIG} diff --git a/library/language/ru/html/advert.html b/library/language/ru/html/advert.html new file mode 100644 index 000000000..0c4009ed5 --- /dev/null +++ b/library/language/ru/html/advert.html @@ -0,0 +1,4 @@ +
+

Реклама на нашем сайте

+

По вопросам размещения рекламы обращайтесь:

+
diff --git a/library/language/ru/html/copyright_holders.html b/library/language/ru/html/copyright_holders.html new file mode 100644 index 000000000..3cf2c37eb --- /dev/null +++ b/library/language/ru/html/copyright_holders.html @@ -0,0 +1,35 @@ +
+ +

ИНФОРМАЦИЯ ДЛЯ ПРАВООБЛАДАТЕЛЕЙ

+ +

Если вы являетесь правообладателем какого-либо материала, ссылка (либо ссылки) на который размещена на этом сайте, и не хотели бы чтобы данная информация распространялась пользователями без вашего на то согласия, то мы будем рады оказать Вам содействие, удалив соответствующие ссылки.

+ +

Для этого необходимо, чтобы вы прислали нам письмо (в электронном виде) +в котором указали нам следующую информацию:

+ +

1. Документальное подтверждение ваших прав на материал, защищенный авторским правом:

+

- отсканированный документ с печатью, или

+

- email с официального почтового домена компании правообладателя, либо

+

- иная контактная информация, позволяющая однозначно идентифицировать вас, как правообладателя данного материала.

+ +

2. Текст, который Вы желаете разместить в сопровождении удаляемой информации.

+ +

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

+ +

3. Прямые ссылки на страницы сайта, которые содержат ссылки на данные, которые должны быть удалены.

+ +

Ссылки должны иметь вид https://url.to/link или что-то подобное.

+ +

После этого в течение 48 часов, мы удалим интересующие вас ссылки с сайта.

+ +

Наш email:

+ +

Предупреждение!

+ +

а) мы оставляем за собой право публикации на сайте любой информации присланной нам по почте

+ +

б) мы не осуществляем контроль за действиями пользователей, которые могут повторно размещать ссылки на информацию, являющуюся объектом вашего авторского права. Любая информация на форуме, размещается автоматически, без какого-либо контроля с чьей либо стороны, что соответствует общепринятой мировой практике размещения информации в сети Интернет. Однако, мы в любом случае рассмотрим все Ваши запросы относительно ссылок на информацию, нарушающую ваши права.

+ +

C) согласно Закону об авторском и смежном правах, ссылка на любые данные (информационное сообщение), сама по себе, не является объектом авторского права (хотя может нарушать "Соглашение об использовании сайта"). Таким образом, не стоит присылать письма содержащие угрозы либо требования, как не имеющие под собой реальных оснований.

+ +
diff --git a/library/language/ru/html/not_found.html b/library/language/ru/html/not_found.html new file mode 100644 index 000000000..24bc6da59 --- /dev/null +++ b/library/language/ru/html/not_found.html @@ -0,0 +1,3 @@ +
+

Файл не найден

+
diff --git a/library/language/ru/html/sidebar1.html b/library/language/ru/html/sidebar1.html new file mode 100644 index 000000000..8c5509356 --- /dev/null +++ b/library/language/ru/html/sidebar1.html @@ -0,0 +1,23 @@ +
+

BitTorrent клиенты

+ +
+ +
+ +
+

ЧАВО

+ +
+ +
+ + diff --git a/library/language/ru/html/sidebar2.html b/library/language/ru/html/sidebar2.html new file mode 100644 index 000000000..b96f5870f --- /dev/null +++ b/library/language/ru/html/sidebar2.html @@ -0,0 +1,11 @@ +
+

Врезка 2

+ Чтобы добавить содержимое в эту боковую панель, отредактируйте следующие файлы: +

+ +
+ Чтобы отключить эту боковую панель, установите для переменной $bb_cfg['page']['show_sidebar2'] в файле config.php значение false. +
diff --git a/library/language/ru/html/user_agreement.html b/library/language/ru/html/user_agreement.html new file mode 100644 index 000000000..d4c06b8b7 --- /dev/null +++ b/library/language/ru/html/user_agreement.html @@ -0,0 +1,84 @@ +
+ +

+ +

ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ

+ +

О САЙТЕ

+ +

Интернет-ресурс / веб-сайт (далее - Ресурс) - это интернет-сайт, который позволяет пользователям обмениваться информацией друг с другом через бит-торрент в свободной форме и предоставляет средства для мониторинга целостности передаваемой информации (через хэш- файлы).

+ +
    + +
  1. О ПОЛЬЗОВАТЕЛЬСКОМ СОГЛАШЕНИИ

    + +

    Данное Пользовательское Соглашение вступает в силу после нажатия "я согласен" в нижней части и работает все время использования пользователи ресурса. Пользовательское соглашение может быть изменено Администрацией без какого-либо предварительного уведомления. Новая редакция ПС вступает в силу по истечении 3 (трех) дней с момента ее размещения, если иное не предусмотрено новой редакцией пользовательского соглашения.

    + +
  2. ОГРАНИЧЕНИЯ ОТВЕТСТВЕННОСТИ

    + +

    Пользователь прямо соглашается, что использует ресурс на свой собственный риск.

    + +

    Пользователь знает и соглашается с тем, что касается справочных материалов и данных, созданных третьими лицами и размещали их в сети Интернет на своих компьютерах и (или сервера). Содержание и безопасность этих материалов не могут быть проконтролированы администрацией ресурса, поэтому последняя не несет ответственности:

    +
      +

      - за содержание материалов, полученных пользователем от использования данных ресурсов и их возможное несоответствие действующему законодательству или оскорбительный характер;

      +

      - за последствия применения, использования или неиспользования полученной информации;

      +

      на возможное несоответствие результатов, полученных при использовании ожиданиям пользователя ресурса;

      +

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

      +

      - для невозможности использования ресурсов для какой-либо причине;

      +

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

      +
    + +

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

    + +

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

    + +

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

    + +
  3. ОГРАНИЧЕНИЯ НА ИСПОЛЬЗОВАНИЕ РЕСУРСА ПОЛЬЗОВАТЕЛЕМ

    + +

    При использовании данного ресурса, пользователь не имеет права, и соглашается с этим:

    +
      +

      - место хэш-файлы (торренты) данных, содержащие вирусы или другие вредоносные программы, действия, файлы или программы, предназначенные для прерывания, уничтожения или ограничения функциональности любого компьютерного или телекоммуникационного оборудования или программ, для осуществления несанкционированного доступа, а также серийные номера к коммерческим программным продуктам и программы для их генерации, логины, пароли и прочие Средства для получения несанкционированного доступа к платным ресурсам в Интернете, а также размещать ссылки на вышеуказанную информацию;

      +

      - место хэш-файлы (торренты) любых Сообщений, данных или программ, использование которых нарушает какой-либо патент, торговую марку, коммерческую тайну, копирайт или прочие права собственности и / или авторские и смежные права третьих лиц;

      +

      - присылайте адреса электронной почты, указанные на сайте, несанкционированные почтовые сообщения рекламного типа (нежелательная почта, спам);

      +

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

      +

      - размещать ссылки на ресурсы сети, содержание которых противоречит действующему законодательству Российской Федерации;

      +

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

      +
    + +
  4. ГАРАНТИЯ ПРОИЗВОДИТЕЛЬНОСТИ

    + +

    Доступ к ресурсу предоставляются по принципу «как есть» без гарантий любого рода как прямых, так и косвенных.

    + +

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

    + +

    Ресурса не несет ответственности за любые прямые или непрямые убытки, произошедшие из-за: использования либо невозможности использования сервиса; несанкционированного доступа к вашим коммуникациям.

    + +
  5. ПРАВА АДМИНИСТРАЦИИ РЕСУРСА

    + +

    Администрация ресурса вправе отказать в доступе к ресурсу любому пользователю, или группе пользователей без объяснения причин своих действий и предварительного уведомления.

    + +

    Администрация ресурса вправе изменять либо удалять информацию, хеш-файлов (торрентов), графические, аудио и другие данные на представленных пользователей от ресурсов без предупреждения и объяснения причин своих действий.

    + +
  6. ОТВЕТСТВЕННОСТЬ СТОРОН

    + +

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

    + +

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

    + +

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

    + +

    Бездействие со стороны ресурса в случае нарушения Пользователем, либо группой пользователей пользовательского соглашения не означает, что ресурс, чтобы помочь пользователям или группам пользователей на такие действия.

    + +

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

    + +
  7. ПРИНЯТИЕ ПОЛЬЗОВАТЕЛЬСКОГО СОГЛАШЕНИЯ

    + +

    ЕСЛИ ВЫ НЕ СОГЛАСНЫ СО ВСЕМИ ВЫШЕУКАЗАННЫМИ УСЛОВИЯМИ, ВЫ НЕ МОЖЕТЕ ПОЙТИ К РЕСУРСУ В ЦЕЛОМ ИЛИ ЛЮБУЮ ЕГО ЧАСТЬ, КРОМЕ СТРАНИЦЫ С ПОЛЬЗОВАТЕЛЬСКИМ СОГЛАШЕНИЕМ, ПОЛУЧАТЬ И / ИЛИ ПОЛУЧИТЬ ДОСТУП К СОДЕРЖИМОМУ ЭТОГО РЕСУРСА ЛЮБЫМИ ДРУГИМИ СПОСОБАМИ КАК В ЦЕЛОМ ИЛИ В ЛЮБОЙ ЕГО ЧАСТИ!

    + +

    ЕСЛИ ВЫ НЕ СОГЛАСНЫ С ПОЛЬЗОВАТЕЛЬСКИМ СОГЛАШЕНИЕМ, ВЫ ДОЛЖНЫ НЕМЕДЛЕННО ПОКИНУТЬ РЕСУРС.

    + +
+

+ +
diff --git a/library/language/ru/main.php b/library/language/ru/main.php new file mode 100644 index 000000000..8d7254b54 --- /dev/null +++ b/library/language/ru/main.php @@ -0,0 +1,2833 @@ +Показать все'; +$lang['TOPIC'] = 'Тема'; +$lang['TOPICS'] = 'Темы'; +$lang['TOPICS_SHORT'] = 'Тем'; +$lang['REPLIES'] = 'Ответов'; +$lang['REPLIES_SHORT'] = 'Отв.'; +$lang['VIEWS'] = 'Просм.'; +$lang['POSTS'] = 'Сообщений'; +$lang['POSTS_SHORT'] = 'Сообщ.'; +$lang['POSTED'] = 'Добавлено'; +$lang['USERNAME'] = 'Имя'; +$lang['PASSWORD'] = 'Пароль'; +$lang['EMAIL'] = 'Email'; +$lang['PM'] = 'ЛС'; +$lang['AUTHOR'] = 'Автор'; +$lang['TIME'] = 'Время'; +$lang['HOURS'] = 'Часы'; +$lang['MESSAGE'] = 'Сообщение'; +$lang['TORRENT'] = 'Торрент'; +$lang['PERMISSIONS'] = 'Права доступа'; +$lang['TYPE'] = 'Тип'; +$lang['SEEDER'] = 'Сидер'; +$lang['LEECHER'] = 'Личер'; +$lang['RELEASER'] = 'Релизер'; + +$lang['1_DAY'] = 'за последний день'; +$lang['7_DAYS'] = 'за последние 7 дней'; +$lang['2_WEEKS'] = 'за последние 2 недели'; +$lang['1_MONTH'] = 'за последний месяц'; +$lang['3_MONTHS'] = 'за последние 3 месяца'; +$lang['6_MONTHS'] = 'за последние 6 месяцев'; +$lang['1_YEAR'] = 'за последний год'; + +$lang['GO'] = 'Перейти'; +$lang['SUBMIT'] = 'Отправить'; +$lang['RESET'] = 'Вернуть'; +$lang['CANCEL'] = 'Отмена'; +$lang['PREVIEW'] = 'Предв. просмотр'; +$lang['AJAX_PREVIEW'] = 'Быстрый просмотр'; +$lang['CONFIRM'] = 'Подтвердите'; +$lang['YES'] = 'Да'; +$lang['NO'] = 'Нет'; +$lang['ENABLED'] = 'Включено'; +$lang['DISABLED'] = 'Выключено'; +$lang['ERROR'] = 'Ошибка'; +$lang['SELECT_ACTION'] = 'Выберите действие'; + +$lang['NEXT_PAGE'] = 'След.'; +$lang['PREVIOUS_PAGE'] = 'Пред.'; +$lang['GOTO_PAGE'] = 'Страницы'; +$lang['GOTO_SHORT'] = 'Стр.'; +$lang['JOINED'] = 'Зарегистрирован'; +$lang['LONGEVITY'] = 'Стаж'; +$lang['IP_ADDRESS'] = 'Адрес IP'; +$lang['POSTED_AFTER'] = 'спустя'; + +$lang['SELECT_FORUM'] = 'Выберите форум'; +$lang['VIEW_LATEST_POST'] = 'Посмотреть последнее сообщение'; +$lang['VIEW_NEWEST_POST'] = 'Перейти к первому непрочитанному сообщению'; +$lang['PAGE_OF'] = 'Страница %d из %s'; + +$lang['ICQ'] = 'ICQ'; + +$lang['SKYPE'] = 'Skype'; +$lang['SKYPE_ERROR'] = 'Вы ввели некорректный логин Skype'; + +$lang['TWITTER'] = 'Twitter'; +$lang['TWITTER_ERROR'] = 'Вы ввели некорректный логин Twitter'; + +$lang['FORUM_INDEX'] = 'Список форумов %s'; // eg. sitename Forum Index, %s can be removed if you prefer + +$lang['POST_NEW_TOPIC'] = 'Начать новую тему'; +$lang['POST_NEW_RELEASE'] = 'Создать раздачу'; +$lang['POST_REGULAR_TOPIC'] = 'Создать обычную тему'; +$lang['REPLY_TO_TOPIC'] = 'Ответить на тему'; +$lang['REPLY_WITH_QUOTE'] = 'Ответить с цитатой'; + +$lang['CLICK_RETURN_TOPIC'] = '%sВернуться в тему%s'; // %s's here are for uris, do not remove! +$lang['CLICK_RETURN_LOGIN'] = '%sПопробовать еще раз%s'; +$lang['CLICK_RETURN_FORUM'] = '%sВернуться в форум%s'; +$lang['CLICK_VIEW_MESSAGE'] = '%sПросмотреть ваше сообщение%s'; +$lang['CLICK_RETURN_MODCP'] = '%sВернуться к панели модерации%s'; +$lang['CLICK_RETURN_GROUP'] = '%sВернуться к информации о группах%s'; + +$lang['ADMIN_PANEL'] = 'Администраторский раздел'; +$lang['ALL_CACHE'] = 'Весь кеш'; +$lang['ALL_CACHE_CLEARED'] = 'Кеш очищен'; +$lang['ALL_TEMPLATE_CLEARED'] = 'Кеш шаблона очищен'; +$lang['DATASTORE'] = 'Datastore'; +$lang['DATASTORE_CLEARED'] = 'Datastore очищен'; +$lang['BOARD_DISABLE'] = 'Извините, этот форум отключен. Попробуйте зайти позднее'; +$lang['BOARD_DISABLE_CRON'] = 'Форум отключен на техническое обслуживание. Попробуйте зайти позднее'; +$lang['ADMIN_DISABLE'] = 'форум отключен администратором, вы можете включить его в любое время'; +$lang['ADMIN_DISABLE_CRON'] = 'форум заблокирован триггером cron-заданий, вы можете снять блокировку в любое время'; +$lang['ADMIN_DISABLE_TITLE'] = 'Форум отключен'; +$lang['ADMIN_DISABLE_CRON_TITLE'] = 'Форум отключен на техническое обслуживание'; +$lang['ADMIN_UNLOCK'] = 'Включить форум'; +$lang['ADMIN_UNLOCKED'] = 'Разблокировано'; +$lang['ADMIN_UNLOCK_CRON'] = 'Снять блокировку'; + +$lang['LOADING'] = 'Загружается…'; +$lang['JUMPBOX_TITLE'] = 'Выберите форум для перехода'; +$lang['DISPLAYING_OPTIONS'] = 'Опции показа'; + +// Global Header strings +$lang['REGISTERED_USERS'] = 'Зарегистрированные пользователи:'; +$lang['BROWSING_FORUM'] = 'Сейчас этот форум просматривают:'; +$lang['ONLINE_USERS'] = 'Сейчас на форуме %1$d посетителей: %2$d зарегистрированных и %3$d гостей'; +$lang['RECORD_ONLINE_USERS'] = 'Больше всего посетителей (%s) здесь было %s'; // first %s = number of users, second %s is the date. + +$lang['ONLINE_ADMIN'] = 'Администратор'; +$lang['ONLINE_MOD'] = 'Модератор'; +$lang['ONLINE_GROUP_MEMBER'] = 'Участник групп'; + +$lang['CURRENT_TIME'] = 'Текущее время: %s'; + +$lang['SEARCH_NEW'] = 'Новые сообщения'; +$lang['SEARCH_SELF'] = 'Мои сообщения'; +$lang['SEARCH_SELF_BY_LAST'] = 'времени последнего сообщения'; +$lang['SEARCH_SELF_BY_MY'] = 'времени моего сообщения'; +$lang['SEARCH_UNANSWERED'] = 'Сообщения без ответов'; +$lang['SEARCH_UNANSWERED_SHORT'] = 'без ответов'; +$lang['SEARCH_LATEST'] = 'Последние темы'; +$lang['LATEST_RELEASES'] = 'Последние раздачи'; + +$lang['REGISTER'] = 'Регистрация'; +$lang['PROFILE'] = 'Профиль'; +$lang['EDIT_PROFILE'] = 'Редактирование профиля'; +$lang['SEARCH'] = 'Поиск'; +$lang['MEMBERLIST'] = 'Пользователи'; +$lang['USERGROUPS'] = 'Группы'; +$lang['LASTPOST'] = 'Посл. сообщение'; +$lang['MODERATOR'] = 'Модератор'; +$lang['MODERATORS'] = 'Модераторы'; +$lang['TERMS'] = 'Правила'; +$lang['NOTHING_HAS_CHANGED'] = 'Ничего не было изменено'; + +// Stats block text +$lang['POSTED_TOPICS_TOTAL'] = 'Наши пользователи создали тем: %s'; // Number of topics +$lang['POSTED_ARTICLES_ZERO_TOTAL'] = 'Наши пользователи не оставили ни одного сообщения'; // Number of posts +$lang['POSTED_ARTICLES_TOTAL'] = 'Наши пользователи оставили сообщений: %s'; // Number of posts +$lang['REGISTERED_USERS_ZERO_TOTAL'] = 'У нас нет зарегистрированных пользователей'; // # registered users +$lang['REGISTERED_USERS_TOTAL'] = 'Всего зарегистрированных пользователей: %s'; // # registered users +$lang['USERS_TOTAL_GENDER'] = 'Парней: %d, Девушек: %d, Не указали: %d'; +$lang['NEWEST_USER'] = 'Последний зарегистрированный пользователь: %s'; // a href, username, /a + +// Tracker stats +$lang['TORRENTS_STAT'] = 'Раздач: %s,  Общий размер: %s'; // first %s = number of torrents, second %s is the total size. +$lang['PEERS_STAT'] = 'Пиров: %s,  Сидов: %s,  Личеров: %s'; // first %s = number of peers, second %s = number of seeders, third %s = number of leechers. +$lang['SPEED_STAT'] = 'Скорость обмена: %s '; // %s = total speed. + +$lang['NO_NEW_POSTS_LAST_VISIT'] = 'Нет новых сообщений с последнего посещения'; +$lang['NO_NEW_POSTS'] = 'Нет новых сообщений'; +$lang['NEW_POSTS'] = 'Новые сообщения'; +$lang['NEW_POST'] = 'Новое сообщение'; +$lang['NO_NEW_POSTS_HOT'] = 'Нет новых сообщений [ Популярная тема ]'; +$lang['NEW_POSTS_HOT'] = 'Новые сообщения [ Популярная тема ]'; +$lang['NEW_POSTS_LOCKED'] = 'Новые сообщения [ Тема закрыта ]'; +$lang['FORUM_LOCKED_MAIN'] = 'Форум закрыт'; + +// Login +$lang['ENTER_PASSWORD'] = 'Введите ваше имя и пароль для входа в систему'; +$lang['LOGIN'] = 'Вход'; +$lang['LOGOUT'] = 'Выход'; +$lang['CONFIRM_LOGOUT'] = 'Вы уверены, что хотите выйти?'; + +$lang['FORGOTTEN_PASSWORD'] = 'Забыли пароль?'; +$lang['AUTO_LOGIN'] = 'Автоматически входить при каждом посещении'; +$lang['ERROR_LOGIN'] = 'Вы ввели неверное/неактивное имя пользователя или неверный пароль.'; +$lang['REMEMBER'] = 'Запомнить'; +$lang['USER_WELCOME'] = 'Рады видеть вас,'; + +// Index page +$lang['HOME'] = 'Главная'; +$lang['NO_POSTS'] = 'Нет сообщений'; +$lang['NO_FORUMS'] = 'Нет доступных для показа форумов'; + +$lang['PRIVATE_MESSAGE'] = 'Личное сообщение'; +$lang['PRIVATE_MESSAGES'] = 'Личные сообщения'; +$lang['WHOSONLINE'] = 'Кто сейчас на форуме'; + +$lang['MARK_ALL_FORUMS_READ'] = 'Отметить все форумы как прочтенные'; +$lang['FORUMS_MARKED_READ'] = 'Все форумы были отмечены как прочтенные'; + +$lang['LATEST_NEWS'] = 'Новости трекера'; +$lang['NETWORK_NEWS'] = 'Новости в сети'; +$lang['SUBFORUMS'] = 'Подфорумы'; + +// Viewforum +$lang['VIEW_FORUM'] = 'Просмотр форума'; + +$lang['FORUM_NOT_EXIST'] = 'Форума, который вы выбрали, не существует'; +$lang['REACHED_ON_ERROR'] = 'Вы попали на эту страницу из-за ошибки'; +$lang['ERROR_PORNO_FORUM'] = 'Данный тип форумов (18+) скрыт вами в профиле'; + +$lang['DISPLAY_TOPICS'] = 'Показать'; +$lang['ALL_TOPICS'] = 'все темы'; +$lang['MODERATE_FORUM'] = 'Модерировать этот форум'; +$lang['TITLE_SEARCH_HINT'] = 'поиск по названию…'; + +$lang['TOPIC_ANNOUNCEMENT'] = 'Объявление:'; +$lang['TOPIC_STICKY'] = 'Прилеплена:'; +$lang['TOPIC_MOVED'] = 'Перемещена:'; +$lang['TOPIC_POLL'] = '[ Опрос ]'; + +$lang['MARK_TOPICS_READ'] = 'Отметить все темы как прочтенные'; +$lang['TOPICS_MARKED_READ'] = 'Все темы в этом форуме были отмечены как прочтенные'; + +$lang['RULES_POST_CAN'] = 'Вы можете начинать темы'; +$lang['RULES_POST_CANNOT'] = 'Вы не можете начинать темы'; +$lang['RULES_REPLY_CAN'] = 'Вы можете отвечать на сообщения'; +$lang['RULES_REPLY_CANNOT'] = 'Вы не можете отвечать на сообщения'; +$lang['RULES_EDIT_CAN'] = 'Вы можете редактировать свои сообщения'; +$lang['RULES_EDIT_CANNOT'] = 'Вы не можете редактировать свои сообщения'; +$lang['RULES_DELETE_CAN'] = 'Вы можете удалять свои сообщения'; +$lang['RULES_DELETE_CANNOT'] = 'Вы не можете удалять свои сообщения'; +$lang['RULES_VOTE_CAN'] = 'Вы можете голосовать в опросах'; +$lang['RULES_VOTE_CANNOT'] = 'Вы не можете голосовать в опросах'; +$lang['RULES_MODERATE'] = 'Вы можете модерировать этот форум'; + +$lang['NO_TOPICS_POST_ONE'] = 'В этом форуме пока нет сообщений
Кликните Начать новую тему, и ваше сообщение станет первым.'; + +// Viewtopic +$lang['VIEW_TOPIC'] = 'Просмотр темы'; + +$lang['GUEST'] = 'Гость'; +$lang['POST_SUBJECT'] = 'Заголовок сообщения'; +$lang['SUBMIT_VOTE'] = 'Проголосовать'; +$lang['VIEW_RESULTS'] = 'Результаты'; + +$lang['NO_NEWER_TOPICS'] = 'В этом форуме нет более новых тем'; +$lang['NO_OLDER_TOPICS'] = 'В этом форуме нет более старых тем'; +$lang['TOPIC_POST_NOT_EXIST'] = 'Темы, которую вы запросили, не существует.'; +$lang['NO_POSTS_TOPIC'] = 'В этой теме нет сообщений'; + +$lang['DISPLAY_POSTS'] = 'Показать сообщения'; +$lang['ALL_POSTS'] = 'все сообщения'; +$lang['NEWEST_FIRST'] = 'Начиная с новых'; +$lang['OLDEST_FIRST'] = 'Начиная со старых'; + +$lang['BACK_TO_TOP'] = 'Вернуться к началу'; + +$lang['READ_PROFILE'] = 'Посмотреть профиль'; +$lang['VISIT_WEBSITE'] = 'Посетить сайт автора'; +$lang['VIEW_IP'] = 'Показать IP адрес автора'; +$lang['MODERATE_POST'] = 'Модерировать сообщения'; +$lang['DELETE_POST'] = 'Удалить это сообщение'; + +$lang['WROTE'] = 'писал(а)'; // proceeds the username and is followed by the quoted text +$lang['QUOTE'] = 'Цитата'; // comes before bbcode quote output +$lang['CODE'] = 'Код'; // comes before bbcode code output +$lang['SPOILER_HEAD'] = 'Скрытый текст'; +$lang['SPOILER_CLOSE'] = 'Свернуть'; +$lang['PLAY_ON_CURPAGE'] = 'Начать проигрывание на текущей странице'; + +$lang['EDITED_TIME_TOTAL'] = 'Последний раз редактировалось: %s (%s), всего редактировалось %d раз'; // Last edited by me on 12 Oct 2001; edited 1 time in total +$lang['EDITED_TIMES_TOTAL'] = 'Последний раз редактировалось: %s (%s), всего редактировалось %d раз(а)'; // Last edited by me on 12 Oct 2001; edited 2 times in total + +$lang['LOCK_TOPIC'] = 'Закрыть тему'; +$lang['UNLOCK_TOPIC'] = 'Вновь открыть тему'; +$lang['MOVE_TOPIC'] = 'Перенести тему'; +$lang['DELETE_TOPIC'] = 'Удалить тему'; +$lang['SPLIT_TOPIC'] = 'Разделить тему'; + +$lang['STOP_WATCHING_TOPIC'] = 'Перестать следить за ответами'; +$lang['START_WATCHING_TOPIC'] = 'Следить за ответами в теме'; +$lang['NO_LONGER_WATCHING'] = 'Вы больше не следите за ответами в этой теме'; +$lang['YOU_ARE_WATCHING'] = 'Теперь вы следите за ответами в этой теме'; + +$lang['TOTAL_VOTES'] = 'Всего проголосовало'; +$lang['SEARCH_IN_TOPIC'] = 'Искать в теме…'; +$lang['HIDE_IN_TOPIC'] = 'Не показывать'; + +$lang['SHOW'] = 'Показывать'; +$lang['AVATARS'] = 'Аватары'; +$lang['RANK_IMAGES'] = 'Картинки званий'; +$lang['POST_IMAGES'] = 'Картинки в сообщениях'; +$lang['SIGNATURES'] = 'Подписи'; +$lang['SPOILER'] = 'Спойлер'; +$lang['SHOW_OPENED'] = 'Спойлер открытым'; +$lang['DOWNLOAD_PIC'] = 'Загружаемые картинки'; + +$lang['MODERATE_TOPIC'] = 'Модерировать этот топик'; +$lang['SELECT_POSTS_PER_PAGE'] = 'сообщ. на страницу'; + +// Posting/Replying (Not private messaging!) +$lang['TOPIC_REVIEW'] = 'Обзор темы'; + +$lang['NO_POST_MODE'] = 'Не указан режим сообщения'; // If posting.php is called without a mode (newtopic/reply/delete/etc, shouldn't be shown normaly) + +$lang['POST_A_NEW_TOPIC'] = 'Начать новую тему'; +$lang['POST_A_REPLY'] = 'Ответить'; +$lang['POST_TOPIC_AS'] = 'Статус создаваемой темы'; +$lang['EDIT_POST'] = 'Редактировать сообщение'; +$lang['EDIT_TOPIC_TITLE'] = 'Изменить название темы'; +$lang['EDIT_POST_NOT_1'] = 'Вам запрещено '; +$lang['EDIT_POST_NOT_2'] = 'Вы не можете '; +$lang['EDIT_POST_AJAX'] = 'редактировать сообщение со статусом'; +$lang['AFTER_THE_LAPSE'] = 'по прошествии '; + +$lang['DONT_MESSAGE_TITLE'] = 'Вы не указали заголовок сообщения'; +$lang['INVALID_TOPIC_ID'] = 'Топик отсутствует!'; +$lang['INVALID_TOPIC_ID_DB'] = 'Топик отсутствует в базе данных!'; + +$lang['NOT_POST'] = 'Сообщение отсутствует'; +$lang['NOT_EDIT_TOR_STATUS'] = 'Вы не можете редактировать раздачу со статусом'; +$lang['TOR_STATUS_DAYS'] = 'дней'; + +$lang['OPTIONS'] = 'Настройки'; + +$lang['POST_ANNOUNCEMENT'] = 'Объявление'; +$lang['POST_STICKY'] = 'Прилепленная'; +$lang['POST_NORMAL'] = 'Обычная'; +$lang['POST_DOWNLOAD'] = 'Скачиваемая'; + +$lang['CONFIRM_DELETE'] = 'Вы уверены, что хотите удалить это сообщение?'; +$lang['CONFIRM_DELETE_POLL'] = 'Вы уверены, что хотите удалить этот опрос?'; + +$lang['FLOOD_ERROR'] = 'Вы не можете отправить следующее сообщение сразу после предыдущего. Пожалуйста, попробуйте чуть попозже'; +$lang['EMPTY_SUBJECT'] = 'Вы должны указать заголовок сообщения, когда начинаете новую тему'; +$lang['EMPTY_MESSAGE'] = 'Вы должны ввести текст сообщения'; +$lang['FORUM_LOCKED'] = 'Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые'; +$lang['TOPIC_LOCKED'] = 'Эта тема закрыта, вы не можете писать ответы и редактировать сообщения'; +$lang['TOPIC_LOCKED_SHORT'] = 'Тема закрыта'; +$lang['NO_POST_ID'] = 'Вы должны выбрать сообщение для редактирования'; +$lang['NO_TOPIC_ID'] = 'Вы должны выбрать тему для ответа'; +$lang['NO_VALID_MODE'] = 'Вы можете только создавать темы, отвечать и редактировать сообщения. Вернитесь и попробуйте еще раз'; +$lang['NO_SUCH_POST'] = 'Сообщение отсутствует. Вернитесь и попробуйте еще раз'; +$lang['EDIT_OWN_POSTS'] = 'Извините, вы можете редактировать только ваши собственные сообщения'; +$lang['DELETE_OWN_POSTS'] = 'Извините, вы можете удалять только ваши собственные сообщения'; +$lang['CANNOT_DELETE_REPLIED'] = 'Извините, вы не можете удалить сообщение, на которое были получены ответы'; +$lang['CANNOT_DELETE_POLL'] = 'Извините, вы не можете удалить активный опрос'; +$lang['EMPTY_POLL_TITLE'] = 'Вы должны ввести заголовок для опроса'; +$lang['TO_FEW_POLL_OPTIONS'] = 'Вы должны ввести не менее двух вариантов ответа'; +$lang['TO_MANY_POLL_OPTIONS'] = 'Вы попытались ввести слишком много вариантов ответа'; +$lang['POST_HAS_NO_POLL'] = 'В этом сообщении нет опроса'; +$lang['ALREADY_VOTED'] = 'Вы уже голосовали в этом опросе'; +$lang['NO_VOTE_OPTION'] = 'Вы должны указать вариант ответа при голосовании'; +$lang['LOCKED_WARN'] = 'Вы отправили сообщение в закрытый топик!'; + +$lang['ADD_POLL'] = 'Добавить опрос'; +$lang['ADD_POLL_EXPLAIN'] = 'Если вы не хотите добавлять опрос к вашему сообщению, оставьте поля пустыми'; +$lang['POLL_QUESTION'] = 'Вопрос'; +$lang['POLL_OPTION'] = 'Вариант ответа'; +$lang['ADD_OPTION'] = 'Добавить еще вариант'; +$lang['UPDATE'] = 'Обновить'; +$lang['POLL_FOR'] = 'Опрос должен идти'; +$lang['DAYS'] = 'Дней'; +$lang['POLL_FOR_EXPLAIN'] = '[ оставьте поле пустым, чтобы опрос не кончался ]'; +$lang['DELETE_POLL'] = 'Удалить опрос'; + +$lang['MAX_SMILIES_PER_POST'] = 'Лимит в %s смайликов в сообщении превышен.'; + +$lang['ATTACH_SIGNATURE'] = 'Присоединить подпись (можно изменять в профиле)'; +$lang['NOTIFY'] = 'Сообщать мне о получении ответа'; + +$lang['STORED'] = 'Сообщение было успешно добавлено'; +$lang['EDITED'] = 'Сообщение было успешно изменено'; +$lang['DELETED'] = 'Cообщение было успешно удалено'; +$lang['POLL_DELETE'] = 'Ваш опрос был успешно удален'; +$lang['VOTE_CAST'] = 'Ваш голос был учтен'; + +$lang['TOPIC_REPLY_NOTIFICATION'] = 'Уведомление об ответе в теме'; +$lang['EMOTICONS'] = 'Смайлики'; +$lang['MORE_EMOTICONS'] = 'Дополнительные смайлики'; + +$lang['FONT_COLOR'] = 'Цвет'; +$lang['COLOR_DEFAULT'] = 'По умолчанию'; +$lang['COLOR_DARK_RED'] = 'Темно-красный'; +$lang['COLOR_RED'] = 'Красный'; +$lang['COLOR_ORANGE'] = 'Оранжевый'; +$lang['COLOR_BROWN'] = 'Коричневый'; +$lang['COLOR_YELLOW'] = 'Желтый'; +$lang['COLOR_GREEN'] = 'Зеленый'; +$lang['COLOR_OLIVE'] = 'Оливковый'; +$lang['COLOR_CYAN'] = 'Голубой'; +$lang['COLOR_BLUE'] = 'Синий'; +$lang['COLOR_DARK_BLUE'] = 'Темно-синий'; +$lang['COLOR_INDIGO'] = 'Индиго'; +$lang['COLOR_VIOLET'] = 'Фиолетовый'; +$lang['COLOR_WHITE'] = 'Белый'; +$lang['COLOR_BLACK'] = 'Черный'; + +$lang['FONT_SIZE'] = 'Размер'; +$lang['FONT_TINY'] = 'Очень маленький'; +$lang['FONT_SMALL'] = 'Маленький'; +$lang['FONT_NORMAL'] = 'Обычный'; +$lang['FONT_LARGE'] = 'Большой'; +$lang['FONT_HUGE'] = 'Огромный'; + +$lang['STYLES_TIP'] = 'Подсказка: можно быстро применить стили к выделенному тексту'; + +$lang['NEW_POSTS_PREVIEW'] = 'В топике есть новые, измененные или непрочитанные сообщения'; + +// Private Messaging +$lang['PRIVATE_MESSAGING'] = 'Личные сообщения'; + +$lang['NO_NEW_PM'] = 'новых нет'; + +$lang['NEW_PMS_FORMAT'] = '%1$s %2$s'; // 1 new message +$lang['NEW_PMS_DECLENSION'] = array('новое сообщение', 'новых сообщений'); + +$lang['UNREAD_PMS_FORMAT'] = '%1$s %2$s'; // 1 new message +$lang['UNREAD_PMS_DECLENSION'] = array('непрочитанное', 'непрочитанных'); + +$lang['UNREAD_MESSAGE'] = 'Непрочитанное сообщение'; +$lang['READ_MESSAGE'] = 'Прочитанное сообщение'; + +$lang['READ_PM'] = 'Прочитать сообщение'; +$lang['POST_NEW_PM'] = 'Написать новое сообщение'; +$lang['POST_REPLY_PM'] = 'Ответить на сообщение'; +$lang['POST_QUOTE_PM'] = 'Ответить с цитатой'; +$lang['EDIT_PM'] = 'Редактировать сообщение'; + +$lang['INBOX'] = 'Входящие'; +$lang['OUTBOX'] = 'Исходящие'; +$lang['SAVEBOX'] = 'Сохраненные'; +$lang['SENTBOX'] = 'Отправленные'; +$lang['FLAG'] = 'Флаг'; +$lang['SUBJECT'] = 'Тема'; +$lang['FROM'] = 'От'; +$lang['TO'] = 'Кому'; +$lang['DATE'] = 'Дата'; +$lang['MARK'] = 'Отметка'; +$lang['SENT'] = 'Отправлено'; +$lang['SAVED'] = 'Сохранено'; +$lang['DELETE_MARKED'] = 'Удалить отмеченное'; +$lang['DELETE_ALL'] = 'Удалить все'; +$lang['SAVE_MARKED'] = 'Сохранить отмеченное'; +$lang['SAVE_MESSAGE'] = 'Сохранить сообщение'; +$lang['DELETE_MESSAGE'] = 'Удалить сообщение'; + +$lang['DISPLAY_MESSAGES'] = 'Показать сообщения'; // Followed by number of days/weeks/months +$lang['ALL_MESSAGES'] = 'Все сообщения'; + +$lang['NO_MESSAGES_FOLDER'] = 'В этой папке нет сообщений'; + +$lang['PM_DISABLED'] = 'Возможность отправки личных сообщений на этих форумах была отключена'; +$lang['CANNOT_SEND_PRIVMSG'] = 'Извините, вам запрещено отправлять личные сообщения'; +$lang['NO_TO_USER'] = 'Вы должны указать имя получателя этого сообщения'; +$lang['NO_SUCH_USER'] = 'Извините, такого пользователя не существует'; + +$lang['DISABLE_BBCODE_PM'] = 'Отключить BBCode'; +$lang['DISABLE_SMILIES_PM'] = 'Отключить смайлики'; + +$lang['MESSAGE_SENT'] = 'Ваше сообщение было отправлено'; + +$lang['CLICK_RETURN_INBOX'] = 'Перейти в папку:

%sВходящие%s'; +$lang['CLICK_RETURN_SENTBOX'] = '   %sОтправленные%s'; +$lang['CLICK_RETURN_OUTBOX'] = '   %sИсходящие%s'; +$lang['CLICK_RETURN_SAVEBOX'] = '   %sСохраненные%s'; +$lang['CLICK_RETURN_INDEX'] = '%sВернуться к списку форумов%s'; + +$lang['SEND_A_NEW_MESSAGE'] = 'Отправить личное сообщение'; +$lang['SEND_A_REPLY'] = 'Ответить на личное сообщение'; +$lang['EDIT_MESSAGE'] = 'Редактировать личное сообщение'; + +$lang['NOTIFICATION_SUBJECT'] = 'Вам пришло новое личное сообщение'; + +$lang['FIND_USERNAME'] = 'Найти пользователя'; +$lang['SELECT_USERNAME'] = 'Выберите пользователя'; +$lang['FIND'] = 'Найти'; +$lang['NO_MATCH'] = 'Не найдено'; + +$lang['NO_PM_ID'] = 'Не указан ID'; +$lang['NO_SUCH_FOLDER'] = 'Такой папки нет'; +$lang['NO_FOLDER'] = 'Не указана папка'; + +$lang['MARK_ALL'] = 'Выделить все'; +$lang['UNMARK_ALL'] = 'Снять выделение'; + +$lang['CONFIRM_DELETE_PM'] = 'Вы уверены, что хотите удалить это сообщение?'; +$lang['CONFIRM_DELETE_PMS'] = 'Вы уверены, что хотите удалить эти сообщения?'; + +$lang['INBOX_SIZE'] = 'Ваша папка «Входящие»
заполнена на %d%%'; // eg. Your Inbox is 50% full +$lang['SENTBOX_SIZE'] = 'Ваша папка «Отправленные»
заполнена на %d%%'; +$lang['SAVEBOX_SIZE'] = 'Ваша папка «Сохраненные»
заполнена на %d%%'; + +$lang['CLICK_VIEW_PRIVMSG'] = '%sПерейти в папку «Входящие»%s'; + +$lang['OUTBOX_EXPL'] = ''; + +// Profiles/Registration +$lang['VIEWING_USER_PROFILE'] = 'Профиль пользователя %s'; +$lang['VIEWING_MY_PROFILE'] = 'Мой профиль [ Настройки / Изменить профиль ]'; + +$lang['DISABLED_USER'] = 'Пользователь деактивирован'; +$lang['MANAGE_USER'] = 'Администрирование'; + +$lang['PREFERENCES'] = 'Личные настройки'; +$lang['ITEMS_REQUIRED'] = 'Поля, отмеченные *, обязательны к заполнению, если не указано обратное'; +$lang['REGISTRATION_INFO'] = 'Регистрационная информация'; +$lang['PROFILE_INFO'] = 'Профиль'; +$lang['PROFILE_INFO_WARN'] = 'Эта информация будет в открытом доступе'; +$lang['AVATAR_PANEL'] = 'Управление аватарой'; + +$lang['WEBSITE'] = 'Сайт'; +$lang['LOCATION'] = 'Откуда'; +$lang['CONTACT'] = 'Как связаться с'; +$lang['EMAIL_ADDRESS'] = 'Адрес e-mail'; +$lang['SEND_PRIVATE_MESSAGE'] = 'Отправить ЛС'; +$lang['HIDDEN_EMAIL'] = '[ скрыт ]'; +$lang['INTERESTS'] = 'Интересы'; +$lang['OCCUPATION'] = 'Род занятий'; +$lang['POSTER_RANK'] = 'Звание'; +$lang['AWARDED_RANK'] = 'Присвоено звание'; +$lang['SHOT_RANK'] = 'Звание снято'; + +$lang['TOTAL_POSTS'] = 'Всего сообщений'; +$lang['SEARCH_USER_POSTS'] = 'Найти сообщения'; // Find all posts by username +$lang['SEARCH_USER_POSTS_SHORT'] = 'Найти сообщения пользователя'; +$lang['SEARCH_USER_TOPICS'] = 'Начатые темы'; // Find all topics by username + +$lang['NO_USER_ID_SPECIFIED'] = 'Извините, такого пользователя не существует'; +$lang['WRONG_PROFILE'] = 'Вы не можете редактировать чужой профиль.'; + +$lang['ONLY_ONE_AVATAR'] = 'Может быть указан только один тип аватары'; +$lang['FILE_NO_DATA'] = 'Файл по указанному вами URL не содержит данных'; +$lang['NO_CONNECTION_URL'] = 'Невозможно установить соединения с указанным вами URL'; +$lang['INCOMPLETE_URL'] = 'Вы указали неполный URL'; +$lang['NO_SEND_ACCOUNT_INACTIVE'] = 'Извините, но пароль не может быть выслан (учетная запись неактивна)'; +$lang['NO_SEND_ACCOUNT'] = 'Извините, но пароль для этого пользователя не может быть выслан. Обратитесь к администраторам форума за дополнительной информацией'; + +$lang['ALWAYS_ADD_SIG'] = 'Всегда присоединять мою подпись'; +$lang['HIDE_PORN_FORUMS'] = 'Скрыть контент 18+'; +$lang['ALWAYS_NOTIFY'] = 'Всегда сообщать мне об ответах'; +$lang['ALWAYS_NOTIFY_EXPLAIN'] = 'Когда кто-нибудь ответит на тему, в которую вы писали, вам высылается e-mail. Это можно также настроить при размещении сообщения.'; + +$lang['BOARD_LANG'] = 'Язык'; +$lang['GENDER'] = 'Пол'; +$lang['GENDER_SELECT'] = array( + 0 => 'Не указан', + 1 => 'Мужской', + 2 => 'Женский' +); +$lang['MODULE_OFF'] = 'Модуль отключен!'; + +$lang['BIRTHDAY'] = 'День рождения'; +$lang['HAPPY_BIRTHDAY'] = 'С Днем Рождения!'; +$lang['WRONG_BIRTHDAY_FORMAT'] = 'Дата рождения указана неверно'; +$lang['AGE'] = 'Возраст'; +$lang['BIRTHDAY_TO_HIGH'] = 'Извините, сайт запрещено посещать пользователям старше %d лет'; +$lang['BIRTHDAY_TO_LOW'] = 'Извините, сайт запрещено посещать детям младше %d лет'; +$lang['BIRTHDAY_TODAY'] = 'Пользователи, празднующие День Рождения сегодня: '; +$lang['BIRTHDAY_WEEK'] = 'Пользователи, празднующие День Рождения в ближайшие %d дней: %s'; +$lang['NOBIRTHDAY_WEEK'] = 'В ближайшие %d дней никто не празднует День Рождения.'; // %d is substitude with the number of days +$lang['NOBIRTHDAY_TODAY'] = 'Сегодня никто не празднует День Рождения.'; +$lang['BIRTHDAY_ENABLE'] = 'Показывать дни рождения'; +$lang['BIRTHDAY_MAX_AGE'] = 'Максимальный возраст'; +$lang['BIRTHDAY_MIN_AGE'] = 'Минимальный возраст'; +$lang['BIRTHDAY_CHECK_DAY'] = 'Показывать ближайшие дни рождения за'; +$lang['YEARS'] = 'Лет'; + +$lang['NO_THEMES'] = 'В базе нет цветовых схем'; +$lang['TIMEZONE'] = 'Часовой пояс'; +$lang['DATE_FORMAT_PROFILE'] = 'Формат даты'; +$lang['DATE_FORMAT_EXPLAIN'] = 'Синтаксис идентичен функции date() языка PHP'; +$lang['SIGNATURE'] = 'Подпись'; +$lang['SIGNATURE_EXPLAIN'] = 'Это текст, который можно добавлять к размещаемым вами сообщениям. Длина его ограничена %d символами.'; +$lang['SIGNATURE_DISABLE'] = 'Подпись отключена за нарушение правил форума'; +$lang['PUBLIC_VIEW_EMAIL'] = 'Показывать мой адрес e-mail в профиле'; + +$lang['EMAIL_EXPLAIN'] = 'На этот адрес вам будет отправлено письмо для завершения регистрации'; + +$lang['CURRENT_PASSWORD'] = 'Текущий пароль'; +$lang['NEW_PASSWORD'] = 'Новый пароль'; +$lang['CONFIRM_PASSWORD'] = 'Подтвердите пароль'; +$lang['CONFIRM_PASSWORD_EXPLAIN'] = 'Вы должны указать ваш текущий пароль, если хотите изменить его или поменять свой email.'; +$lang['PASSWORD_IF_CHANGED'] = 'Указывайте пароль только если вы хотите его поменять'; +$lang['PASSWORD_CONFIRM_IF_CHANGED'] = 'Подтверждать пароль нужно в том случае, если вы изменили его выше.'; + +$lang['AUTOLOGIN'] = 'Автовход'; +$lang['RESET_AUTOLOGIN'] = 'Удалить ключ автоматического входа на форум'; +$lang['RESET_AUTOLOGIN_EXPL'] = 'включая все места, где вы заходили на форум с включенным авто-входом'; + +$lang['AVATAR'] = 'Аватара'; +$lang['AVATAR_EXPLAIN'] = 'Показывает небольшое изображение под информацией о вас в сообщениях. Может быть показано только одно изображение, шириной не более %d пикселов, высотой не более %d пикселов и объемом не более %d КВ.'; +$lang['AVATAR_DELETE'] = 'Удалить аватар'; +$lang['AVATAR_DISABLE'] = 'Опция управления аватарой отключена за нарушение правил форума'; +$lang['UPLOAD_AVATAR_FILE'] = 'Загрузить аватару'; + +$lang['SELECT_AVATAR'] = 'Выберите аватару'; +$lang['RETURN_PROFILE'] = 'Вернуться к профилю'; +$lang['SELECT_CATEGORY'] = 'Выберите категорию'; + +$lang['DELETE_IMAGE'] = 'Удалить изображение'; +$lang['CURRENT_IMAGE'] = 'Текущее изображение'; + +$lang['NOTIFY_ON_PRIVMSG'] = 'Уведомлять о новых личных сообщениях'; +$lang['HIDE_USER'] = 'Скрывать ваше пребывание на форуме'; +$lang['HIDDEN_USER'] = 'Скрыто пользователем'; + +$lang['PROFILE_UPDATED'] = 'Ваш профиль был изменен'; +$lang['PROFILE_UPDATED_INACTIVE'] = 'Ваш профиль был изменен, но вы изменили важные данные, так что теперь ваша учетная запись неактивна. Проверьте ваш почтовый ящик, чтобы узнать как вновь активировать учетную запись или, если требуется одобрение администратора, подождите, пока это сделает администратор.'; + +$lang['PASSWORD_MISMATCH'] = 'Введенные пароли не совпадают'; +$lang['CURRENT_PASSWORD_MISMATCH'] = 'Введенный вами пароль не совпадает с паролем из базы'; +$lang['PASSWORD_LONG'] = 'Ваш пароль должен быть не длиннее 20 символов'; +$lang['TOO_MANY_REGISTERS'] = 'Вы исчерпали предельное количество попыток регистрации для данной сессии. Пожалуйста, повторите попытку позднее.'; +$lang['USERNAME_TAKEN'] = 'Извините, пользователь с таким именем уже существует'; +$lang['USERNAME_INVALID'] = 'Извините, это имя содержит неподходящие символы'; +$lang['USERNAME_DISALLOWED'] = 'Извините, это имя было запрещено к использованию'; +$lang['USERNAME_TOO_LONG'] = 'Слишком длинное имя'; +$lang['USERNAME_TOO_SMALL'] = 'Слишком короткое имя'; +$lang['EMAIL_TAKEN'] = 'Извините, этот e-mail адрес уже занят другим пользователем'; +$lang['EMAIL_BANNED'] = 'Извините, адрес %s находится в черном списке'; +$lang['EMAIL_INVALID'] = 'Извините, но этот e-mail адрес неправилен'; +$lang['EMAIL_TOO_LONG'] = 'Слишком длинный email адрес'; +$lang['SIGNATURE_TOO_LONG'] = 'Слишком длинная подпись'; +$lang['SIGNATURE_ERROR_HTML'] = 'Подпись может содержать только BBCode'; +$lang['FIELDS_EMPTY'] = 'Вы должны заполнить обязательные поля'; + +$lang['WELCOME_SUBJECT'] = 'Добро пожаловать на сайт %s'; // Welcome to my.com forums +$lang['NEW_ACCOUNT_SUBJECT'] = 'Новый пользователь'; +$lang['ACCOUNT_ACTIVATED_SUBJECT'] = 'Учетная запись активирована'; + +$lang['ACCOUNT_ADDED'] = 'Спасибо за регистрацию, учетная запись была создана. Вы можете войти в систему, используя ваше имя и пароль.'; +$lang['ACCOUNT_INACTIVE'] = 'Учетная запись была создана. На этом форуме требуется активация учетной записи, ключ для активации был выслан на введенный вами адрес. Проверьте свою почту для более подробной информации.'; +$lang['ACCOUNT_ACTIVE'] = 'Ваша учетная запись была активирована. Спасибо за регистрацию'; +$lang['REACTIVATE'] = 'Вновь активировать учетную запись'; +$lang['ALREADY_ACTIVATED'] = 'Вы уже активировали свою учетную запись'; + +$lang['REGISTRATION'] = 'Условия регистрации'; + +$lang['WRONG_ACTIVATION'] = 'Введенный вами ключ активации не совпадает с хранящимся в базе'; +$lang['SEND_PASSWORD'] = 'Выслать новый пароль'; +$lang['PASSWORD_UPDATED'] = 'Новый пароль был создан, проверьте почтовый ящик, чтобы узнать как его активировать'; +$lang['NO_EMAIL_MATCH'] = 'Введенный вами адрес e-mail не совпадает с записанным на этого пользователя'; +$lang['NEW_PASSWORD_ACTIVATION'] = 'Активация нового пароля'; +$lang['PASSWORD_ACTIVATED'] = 'Ваша учетная запись была вновь активирована. Для входа в систему используйте пароль из присланного вам письма.'; + +$lang['SEND_EMAIL_MSG'] = 'Отправить e-mail'; +$lang['NO_USER_SPECIFIED'] = 'Пользователь не был выбран'; +$lang['USER_PREVENT_EMAIL'] = 'Пользователь не желает получать e-mail. Попробуйте отправить ему/ей личное сообщение'; +$lang['USER_NOT_EXIST'] = 'Пользователя не существует'; +$lang['EMAIL_MESSAGE_DESC'] = 'Сообщение будет отправлено в виде простого текста, не включайте в него HTML или BBCode. В качестве обратного адреса будет показываться ваш e-mail адрес.'; +$lang['FLOOD_EMAIL_LIMIT'] = 'Вы не можете отправить еще один e-mail сразу после предыдущего, повторите запрос позднее.'; +$lang['RECIPIENT'] = 'Получатель'; +$lang['EMAIL_SENT'] = 'Сообщение было отправлено'; +$lang['SEND_EMAIL'] = 'Отправить e-mail'; +$lang['EMPTY_SUBJECT_EMAIL'] = 'Вы должны указать тему сообщения'; +$lang['EMPTY_MESSAGE_EMAIL'] = 'Вы должны указать текст сообщения для отправки'; + +$lang['USER_AGREEMENT'] = 'Пользовательское соглашение'; +$lang['USER_AGREEMENT_HEAD'] = 'Для продолжения регистрации вы должны принять наше ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ'; +$lang['USER_AGREEMENT_AGREE'] = 'Я прочел ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ и обязуюсь его не нарушать'; + +$lang['COPYRIGHT_HOLDERS'] = 'Для правообладателей'; +$lang['ADVERT'] = 'Реклама на сайте'; +$lang['NOT_FOUND'] = 'Файл не найден'; + +// Memberslist +$lang['SORT'] = 'Упорядочить'; +$lang['SORT_TOP_TEN'] = 'десять самых активных участников'; +$lang['SORT_JOINED'] = 'по дате регистрации'; +$lang['SORT_USERNAME'] = 'по имени пользователя'; +$lang['SORT_LOCATION'] = 'по местонахождению'; +$lang['SORT_POSTS'] = 'по количеству сообщений'; +$lang['SORT_EMAIL'] = 'по адресу e-mail'; +$lang['SORT_WEBSITE'] = 'по адресу сайта'; +$lang['ASC'] = 'по возрастанию'; +$lang['DESC'] = 'по убыванию'; +$lang['ORDER'] = 'Порядок'; + +// Group control panel +$lang['GROUP_CONTROL_PANEL'] = 'Группы'; +$lang['GROUP_CONFIGURATION'] = 'Настройка группы'; +$lang['GROUP_GOTO_CONFIG'] = 'Перейти в панель управления группой'; +$lang['GROUP_RETURN'] = 'Вернуться на страницу группы'; +$lang['MEMBERSHIP_DETAILS'] = 'Информация о членстве в группах'; +$lang['JOIN_A_GROUP'] = 'Вступить в группу'; + +$lang['GROUP_INFORMATION'] = 'Информация о группе'; +$lang['GROUP_NAME'] = 'Название группы'; +$lang['GROUP_DESCRIPTION'] = 'Описание группы'; +$lang['GROUP_SIGNATURE'] = 'Подпись группы'; +$lang['GROUP_MEMBERSHIP'] = 'Членство в группе'; +$lang['GROUP_MEMBERS'] = 'Члены группы'; +$lang['GROUP_MODERATOR'] = 'Модератор группы'; +$lang['PENDING_MEMBERS'] = 'Кандидаты в члены группы'; + +$lang['GROUP_TIME'] = 'Дата создания'; +$lang['RELEASE_GROUP'] = 'Релиз группа'; + +$lang['GROUP_TYPE'] = 'Тип группы'; +$lang['GROUP_OPEN'] = 'Группа с открытым членством'; +$lang['GROUP_CLOSED'] = 'Группа с закрытым членством'; +$lang['GROUP_HIDDEN'] = 'Скрытая группа'; + +$lang['GROUP_MEMBER_MOD'] = 'Являетесь модератором групп'; +$lang['GROUP_MEMBER_MEMBER'] = 'Являетесь членом групп'; +$lang['GROUP_MEMBER_PENDING'] = 'Кандидат в члены групп'; +$lang['GROUP_MEMBER_OPEN'] = 'Группы с открытым членством'; +$lang['GROUP_MEMBER_CLOSED'] = 'Группы с закрытым членством'; +$lang['GROUP_MEMBER_HIDDEN'] = 'Скрытые группы'; + +$lang['NO_GROUPS_EXIST'] = 'Нет ни одной группы'; +$lang['GROUP_NOT_EXIST'] = 'Такой группы не существует'; +$lang['NO_GROUP_ID_SPECIFIED'] = 'Не указан ID группы'; + +$lang['NO_GROUP_MEMBERS'] = 'В этой группе нет ни одного члена'; +$lang['HIDDEN_GROUP_MEMBERS'] = 'Эта группа скрыта, вы не можете посмотреть ее состав'; +$lang['NO_PENDING_GROUP_MEMBERS'] = 'В этой группе нет кандидатов в члены'; +$lang['GROUP_JOINED'] = 'Вы попросили о вступлении в группу. Когда вашу просьбу одобрит модератор группы, вам будет прислано уведомление.'; +$lang['GROUP_REQUEST'] = 'Было подана просьба о вступлении в группу.'; +$lang['GROUP_APPROVED'] = 'Ваша просьба была удовлетворена.'; +$lang['GROUP_ADDED'] = 'Вы были включены в группу'; +$lang['ALREADY_MEMBER_GROUP'] = 'Вы уже являетесь членом этой группы'; +$lang['USER_IS_MEMBER_GROUP'] = 'Пользователь уже является членом этой группы'; +$lang['GROUP_TYPE_UPDATED'] = 'Тип группы успешно изменен'; +$lang['EFFECTIVE_DATE'] = 'Дата вступления'; + +$lang['COULD_NOT_ADD_USER'] = 'Выбранного пользователя не существует'; +$lang['COULD_NOT_ANON_USER'] = 'Вы не можете сделать анонимного пользователя членом группы'; + +$lang['CONFIRM_UNSUB'] = 'Вы уверены, что хотите выйти из этой группы?'; +$lang['CONFIRM_UNSUB_PENDING'] = 'Вы уверены, что хотите отказаться от участия в этой группе? Ваша просьба о вступлении не была рассмотрена!'; + +$lang['UNSUB_SUCCESS'] = 'Вы успешно покинули эту группу.'; + +$lang['APPROVE_SELECTED'] = 'Одобрить выделенное'; +$lang['DENY_SELECTED'] = 'Отклонить выделенное'; +$lang['NOT_LOGGED_IN'] = 'Вы должны войти в систему, прежде чем вступать в группу.'; +$lang['REMOVE_SELECTED'] = 'Удалить выделенное'; +$lang['ADD_MEMBER'] = 'Добавить члена группы'; +$lang['NOT_GROUP_MODERATOR'] = 'Вы не являетесь модератором группы и не можете выполнить данное действие'; + +$lang['LOGIN_TO_JOIN'] = 'Войдите в систему, чтобы менять свое членство в группах'; +$lang['THIS_OPEN_GROUP'] = 'Это группа с открытым членством, вы можете подать просьбу о вступлении'; +$lang['THIS_CLOSED_GROUP'] = 'Это группа с закрытым членством, новые пользователи не принимаются'; +$lang['THIS_HIDDEN_GROUP'] = 'Это скрытая группа, автоматическое добавление пользователей не разрешается'; +$lang['MEMBER_THIS_GROUP'] = 'Вы член этой группы'; +$lang['PENDING_THIS_GROUP'] = 'Вы кандидат в члены этой группы'; +$lang['ARE_GROUP_MODERATOR'] = 'Вы модератор этой группы'; +$lang['NONE'] = 'Нет'; + +$lang['SUBSCRIBE'] = 'Записаться в группу'; +$lang['UNSUBSCRIBE_GROUP'] = 'Выйти из группы'; +$lang['VIEW_INFORMATION'] = 'Просмотреть информацию'; +$lang['MEMBERS_IN_GROUP'] = 'Кол-во участников'; + +// Release Groups +$lang['POST_RELEASE_FROM_GROUP'] = 'Создать релиз от группы'; +$lang['CHOOSE_RELEASE_GROUP'] = 'не выбрано'; +$lang['ATTACH_RG_SIG'] = 'добавить подпись релиз группы'; +$lang['RELEASE_FROM_RG'] = 'Релиз подготовлен'; +$lang['GROUPS_RELEASES'] = 'Релизы группы'; +$lang['MORE_RELEASES'] = 'Найти все релизы группы'; +$lang['NOT_A_RELEASE_GROUP'] = 'Эта группа не является релиз группой'; + +// Search +$lang['SEARCH_OFF'] = 'Поиск временно отключен'; +$lang['SEARCH_ERROR'] = 'В данный момент поисковик недоступен

Попробуйте повторить запрос через несколько секунд'; +$lang['SEARCH_HELP_URL'] = 'Помощь по поиску'; +$lang['SEARCH_QUERY'] = 'Запрос'; +$lang['SEARCH_OPTIONS'] = 'Параметры запроса'; + +$lang['SEARCH_WORDS'] = 'Ключевые слова'; +$lang['SEARCH_WORDS_EXPL'] = 'Вы можете использовать + (знак "плюс" написанный слитно перед словом: "+слово") чтобы определить слова, которые должны быть в результатах и - (знак "минус") для слов, которых не должно быть. Используйте * в качестве шаблона для частичного совпадения.'; +$lang['SEARCH_AUTHOR'] = 'Поиск по автору'; +$lang['SEARCH_AUTHOR_EXPL'] = 'Используйте * в качестве шаблона'; + +$lang['SEARCH_TITLES_ONLY'] = 'Искать только в названиях тем'; +$lang['SEARCH_ALL_WORDS'] = 'искать все слова'; +$lang['SEARCH_MY_MSG_ONLY'] = 'Искать только в моих сообщениях'; +$lang['IN_MY_POSTS'] = 'В моих сообщениях'; +$lang['SEARCH_MY_TOPICS'] = 'в моих темах'; +$lang['NEW_TOPICS'] = 'Новые темы'; + +$lang['RETURN_FIRST'] = 'Показывать первые'; // followed by xxx characters in a select box +$lang['CHARACTERS_POSTS'] = 'символов сообщений'; + +$lang['SEARCH_PREVIOUS'] = 'Время размещения'; + +$lang['SORT_BY'] = 'Упорядочить по'; +$lang['SORT_TIME'] = 'Время размещения'; +$lang['SORT_POST_SUBJECT'] = 'Заголовок сообщения'; +$lang['SORT_TOPIC_TITLE'] = 'Название темы'; +$lang['SORT_AUTHOR'] = 'Автор'; +$lang['SORT_FORUM'] = 'Форум'; + +$lang['DISPLAY_RESULTS_AS'] = 'Показывать результаты как'; +$lang['ALL_AVAILABLE'] = 'Все имеющиеся'; +$lang['BRIEFLY'] = 'Кратко'; +$lang['NO_SEARCHABLE_FORUMS'] = 'У вас нет доступа к поиску ни в одном из форумов на сайте'; + +$lang['NO_SEARCH_MATCH'] = 'Подходящих тем или сообщений не найдено'; +$lang['FOUND_SEARCH_MATCH'] = 'Результатов поиска: %d'; // eg. Search found 1 match +$lang['FOUND_SEARCH_MATCHES'] = 'Результатов поиска: %d'; // eg. Search found 24 matches +$lang['TOO_MANY_SEARCH_RESULTS'] = 'По вашему запросу может быть найдено слишком много сообщений. Постарайтесь более точно сформулировать то, что вы хотите найти.'; + +$lang['CLOSE_WINDOW'] = 'Закрыть окно'; +$lang['CLOSE'] = 'закрыть'; +$lang['HIDE'] = 'спрятать'; +$lang['SEARCH_TERMS'] = 'Поисковый запрос'; + +// Auth related entries +// Note the %s will be replaced with one of the following 'user' arrays +$lang['SORRY_AUTH_VIEW'] = 'Извините, только %s могут видеть этот форум'; +$lang['SORRY_AUTH_READ'] = 'Извините, только %s могут читать сообщения в этом форуме'; +$lang['SORRY_AUTH_POST'] = 'Извините, только %s могут начинать темы в этом форуме'; +$lang['SORRY_AUTH_REPLY'] = 'Извините, только %s могут отвечать на сообщения в этом форуме'; +$lang['SORRY_AUTH_EDIT'] = 'Извините, только %s могут редактировать сообщения в этом форуме'; +$lang['SORRY_AUTH_DELETE'] = 'Извините, только %s могут удалять сообщения в этом форуме'; +$lang['SORRY_AUTH_VOTE'] = 'Извините, только %s могут голосовать в опросах этого форума'; +$lang['SORRY_AUTH_STICKY'] = 'Извините, только %s могут прилеплять темы в этом форуме'; +$lang['SORRY_AUTH_ANNOUNCE'] = 'Извините, только %s могут размещать объявления в этом форуме'; + +// These replace the %s in the above strings +$lang['AUTH_ANONYMOUS_USERS'] = 'гости'; +$lang['AUTH_REGISTERED_USERS'] = 'зарегистрированные пользователи'; +$lang['AUTH_USERS_GRANTED_ACCESS'] = 'пользователи со специальными правами доступа'; +$lang['AUTH_MODERATORS'] = 'модераторы'; +$lang['AUTH_ADMINISTRATORS'] = 'администраторы'; + +$lang['NOT_MODERATOR'] = 'Вы не являетесь модератором этого форума'; +$lang['NOT_AUTHORISED'] = 'Нет доступа'; + +$lang['YOU_BEEN_BANNED'] = 'Вам был закрыт доступ к форуму
Обратитесь к вебмастеру или администратору сайта за дополнительной информацией'; + +// Viewonline +$lang['ONLINE_EXPLAIN'] = 'данные за последние пять минут'; +$lang['LAST_UPDATED'] = 'Последнее изменение'; + +// Moderator Control Panel +$lang['MOD_CP'] = 'Панель модерации'; +$lang['MOD_CP_EXPLAIN'] = 'Здесь вы можете проводить массовую модерацию этого форума. Вы можете закрывать, открывать, перемещать или удалять любое количество тем.'; + +$lang['SELECT'] = 'Выбрать'; +$lang['DELETE'] = 'Удалить'; +$lang['MOVE'] = 'Переместить'; +$lang['LOCK'] = 'Закрыть'; +$lang['UNLOCK'] = 'Открыть'; + +$lang['TOPICS_REMOVED'] = 'Выбранные темы были успешно удалены из базы данных'; +$lang['NO_TOPICS_REMOVED'] = 'Не было удалено ни одной темы'; +$lang['TOPICS_LOCKED'] = 'Выбранные темы были закрыты'; +$lang['TOPICS_MOVED'] = 'Выбранные темы были перемещены'; +$lang['TOPICS_UNLOCKED'] = 'Выбранные темы были открыты'; +$lang['NO_TOPICS_MOVED'] = 'Не было перенесено ни одной темы'; + +$lang['CONFIRM_DELETE_TOPIC'] = 'Вы действительно хотите удалить выбранные темы?'; +$lang['CONFIRM_LOCK_TOPIC'] = 'Вы действительно хотите закрыть выбранные темы?'; +$lang['CONFIRM_UNLOCK_TOPIC'] = 'Вы действительно хотите открыть выбранные темы?'; +$lang['CONFIRM_MOVE_TOPIC'] = 'Вы действительно хотите переместить выбранные темы?'; + +$lang['MOVE_TO_FORUM'] = 'Переместить в форум'; +$lang['LEAVE_SHADOW_TOPIC'] = 'Оставить ссылку в старом форуме'; + +$lang['SPLIT_TOPIC_EXPLAIN'] = 'С использованием этой формы вы можете разделить тему на две либо выбирая сообщения по одному, либо разбив по выбранному сообщению'; +$lang['NEW_TOPIC_TITLE'] = 'Заголовок новой темы'; +$lang['FORUM_FOR_NEW_TOPIC'] = 'Форум для новой темы'; +$lang['SPLIT_POSTS'] = 'Отделить выбранные сообщения'; +$lang['SPLIT_AFTER'] = 'Отделить все сообщения после выбранного'; +$lang['TOPIC_SPLIT'] = 'Выбранная тема была успешно отделена'; + +$lang['TOO_MANY_ERROR'] = 'Вы выбрали слишком много сообщений. Вы можете выбрать только одно сообщение, чтобы отделить все сообщения после него.'; + +$lang['NONE_SELECTED'] = 'Вы ничего не выбрали для совершения этой операции. Вернитесь назад и выберите.'; +$lang['NEW_FORUM'] = 'Новый форум'; + +$lang['THIS_POSTS_IP'] = 'IP-адрес для этого сообщения'; +$lang['OTHER_IP_THIS_USER'] = 'Другие IP-адреса с которых писал этот пользователь'; +$lang['USERS_THIS_IP'] = 'Пользователи, писавшие с этого IP'; +$lang['IP_INFO'] = 'Информация об IP-адресе'; +$lang['LOOKUP_IP'] = 'Посмотреть хост для IP'; + +// Timezones ... for display on each page +$lang['ALL_TIMES'] = 'Часовой пояс: %s'; // This is followed by UTC and the timezone offset + +// These are displayed in the timezone select box +$lang['TZ']['-12'] = 'UTC - 12'; +$lang['TZ']['-11'] = 'UTC - 11'; +$lang['TZ']['-10'] = 'UTC - 10'; +$lang['TZ']['-9'] = 'UTC - 9'; +$lang['TZ']['-8'] = 'UTC - 8'; +$lang['TZ']['-7'] = 'UTC - 7'; +$lang['TZ']['-6'] = 'UTC - 6'; +$lang['TZ']['-5'] = 'UTC - 5'; +$lang['TZ']['-4'] = 'UTC - 4'; +$lang['TZ']['-3.5'] = 'UTC - 3:30'; +$lang['TZ']['-3'] = 'UTC - 3'; +$lang['TZ']['-2'] = 'UTC - 2'; +$lang['TZ']['-1'] = 'UTC - 1'; +$lang['TZ']['0'] = 'UTC ± 0'; +$lang['TZ']['1'] = 'UTC + 1'; +$lang['TZ']['2'] = 'UTC + 2 (Калининградское время | USZ1)'; +$lang['TZ']['3'] = 'UTC + 3 (Московское время | MSK)'; +$lang['TZ']['3.5'] = 'UTC + 3:30'; +$lang['TZ']['4'] = 'UTC + 4 (Самарское время | SAMT)'; +$lang['TZ']['4.5'] = 'UTC + 4:30'; +$lang['TZ']['5'] = 'UTC + 5 (Екатеринбургское время | YEKT)'; +$lang['TZ']['5.5'] = 'UTC + 5:30'; +$lang['TZ']['6'] = 'UTC + 6 (Омское время | OMST)'; +$lang['TZ']['6.5'] = 'UTC + 6:30'; +$lang['TZ']['7'] = 'UTC + 7 (Красноярское время | KRAT)'; +$lang['TZ']['8'] = 'UTC + 8 (Иркутское время | IRKT)'; +$lang['TZ']['9'] = 'UTC + 9 (Якутское время | YAKT)'; +$lang['TZ']['9.5'] = 'UTC + 9:30'; +$lang['TZ']['10'] = 'UTC + 10 (Владивостокское время | VLAT)'; +$lang['TZ']['11'] = 'UTC + 11 (Среднеколымское время | SRET)'; +$lang['TZ']['12'] = 'UTC + 12 (Камчатское время | PETT)'; +$lang['TZ']['13'] = 'UTC + 13'; + +$lang['DATETIME']['TODAY'] = 'Сегодня, в'; +$lang['DATETIME']['YESTERDAY'] = 'Вчера, в'; + +$lang['DATETIME']['SUNDAY'] = 'Воскресенье'; +$lang['DATETIME']['MONDAY'] = 'Понедельник'; +$lang['DATETIME']['TUESDAY'] = 'Вторник'; +$lang['DATETIME']['WEDNESDAY'] = 'Среда'; +$lang['DATETIME']['THURSDAY'] = 'Четверг'; +$lang['DATETIME']['FRIDAY'] = 'Пятница'; +$lang['DATETIME']['SATURDAY'] = 'Суббота'; +$lang['DATETIME']['SUN'] = 'Вс'; +$lang['DATETIME']['MON'] = 'Пн'; +$lang['DATETIME']['TUE'] = 'Вт'; +$lang['DATETIME']['WED'] = 'Ср'; +$lang['DATETIME']['THU'] = 'Чт'; +$lang['DATETIME']['FRI'] = 'Пт'; +$lang['DATETIME']['SAT'] = 'Сб'; +$lang['DATETIME']['JANUARY'] = 'Январь'; +$lang['DATETIME']['FEBRUARY'] = 'Февраль'; +$lang['DATETIME']['MARCH'] = 'Март'; +$lang['DATETIME']['APRIL'] = 'Апрель'; +$lang['DATETIME']['MAY'] = 'Май'; +$lang['DATETIME']['JUNE'] = 'Июнь'; +$lang['DATETIME']['JULY'] = 'Июль'; +$lang['DATETIME']['AUGUST'] = 'Август'; +$lang['DATETIME']['SEPTEMBER'] = 'Сентябрь'; +$lang['DATETIME']['OCTOBER'] = 'Октябрь'; +$lang['DATETIME']['NOVEMBER'] = 'Ноябрь'; +$lang['DATETIME']['DECEMBER'] = 'Декабрь'; +$lang['DATETIME']['JAN'] = 'Янв'; +$lang['DATETIME']['FEB'] = 'Фев'; +$lang['DATETIME']['MAR'] = 'Мар'; +$lang['DATETIME']['APR'] = 'Апр'; +$lang['DATETIME']['JUN'] = 'Июн'; +$lang['DATETIME']['JUL'] = 'Июл'; +$lang['DATETIME']['AUG'] = 'Авг'; +$lang['DATETIME']['SEP'] = 'Сен'; +$lang['DATETIME']['OCT'] = 'Окт'; +$lang['DATETIME']['NOV'] = 'Ноя'; +$lang['DATETIME']['DEC'] = 'Дек'; + +// Errors +$lang['INFORMATION'] = 'Информация'; +$lang['ADMIN_REAUTHENTICATE'] = 'Чтобы получить доступ к админ/мод панели, вам необходимо еще раз ввести пароль.'; + +// Attachment Mod Main Language Variables +// Auth Related Entries +$lang['RULES_ATTACH_CAN'] = 'Вы можете прикреплять файлы к сообщениям'; +$lang['RULES_ATTACH_CANNOT'] = 'Вы не можете прикреплять файлы к сообщениям'; +$lang['RULES_DOWNLOAD_CAN'] = 'Вы можете скачивать файлы'; +$lang['RULES_DOWNLOAD_CANNOT'] = 'Вы не можете скачивать файлы'; +$lang['SORRY_AUTH_VIEW_ATTACH'] = 'Вы не можете просматривать или скачивать файлы'; + +// Viewtopic -> Display of Attachments +$lang['DESCRIPTION'] = 'Описание'; // used in Administration Panel too... +$lang['DOWNLOAD'] = 'Скачать'; // this Language Variable is defined in admin.php too, but we are unable to access it from the main Language File +$lang['FILESIZE'] = 'Размер'; +$lang['VIEWED'] = 'Просмотров'; +$lang['DOWNLOAD_NUMBER'] = '%d раз'; // replace %d with count +$lang['EXTENSION_DISABLED_AFTER_POSTING'] = 'Расширение \'%s\' было деактивировано администратором, поэтому это приложение не отображается.'; // used in Posts and PM's, replace %s with mime type + +$lang['ATTACHMENT'] = 'Вложение'; +$lang['ATTACHMENT_THUMBNAIL'] = 'Вложение (миниатюра)'; + +// Posting/PM -> Posting Attachments +$lang['ADD_ATTACHMENT'] = 'Прикрепить файл'; +$lang['ADD_ATTACHMENT_TITLE'] = 'Прикрепить файл'; +$lang['ADD_ATTACHMENT_EXPLAIN'] = 'Если вы не хотите прикреплять файл, оставьте это поле пустым'; +$lang['FILENAME'] = 'Имя файла'; +$lang['FILE_COMMENT'] = 'Комментарий'; + +// Posting/PM -> Posted Attachments +$lang['POSTED_ATTACHMENTS'] = 'Прикрепленные файлы'; +$lang['UPDATE_COMMENT'] = 'Обновить комментарий'; +$lang['DELETE_ATTACHMENTS'] = 'Удалить файлы'; +$lang['DELETE_ATTACHMENT'] = 'Удалить файл'; +$lang['DELETE_THUMBNAIL'] = 'Удалить пиктограмму'; +$lang['UPLOAD_NEW_VERSION'] = 'Загрузить новую версию'; + +// Errors -> Posting Attachments +$lang['INVALID_FILENAME'] = '%s - неправильное имя файла'; // replace %s with given filename +$lang['ATTACHMENT_PHP_SIZE_NA'] = 'Вложение слишком велико.
Невозможно превышать ограничение установленное в PHP.
Attachment Mod не может определить максимальный размер закачиваемых файлов, определенный в php.ini.'; +$lang['ATTACHMENT_PHP_SIZE_OVERRUN'] = 'Вложение слишком велико.
Максимальный размер закачиваемого файла: %d MB.
Отметьте, что эта величина определена в php.ini и Attachment Mod не может изменить это значение в большую сторону.'; // replace %d with ini_get('upload_max_filesize') +$lang['DISALLOWED_EXTENSION'] = 'Расширение %s запрещено администратором'; // replace %s with extension (e.g. .php) +$lang['DISALLOWED_EXTENSION_WITHIN_FORUM'] = 'Вы не можете публиковать файлы с расширением %s в этом форуме'; // replace %s with the Extension +$lang['ATTACHMENT_TOO_BIG'] = 'Вложение слишком велико.
Максимальный размер: %d'; // replace %d with maximum file size, %s with size var +$lang['ATTACH_QUOTA_REACHED'] = 'Достигнут максимальный общий размер ваших вложений. Пожалуйста, обратитесь к администратору по этому вопросу.'; +$lang['TOO_MANY_ATTACHMENTS'] = 'Вложение невозможно, так как максимальное количество (%d) вложений в этом сообщении достигнуто.'; // replace %d with maximum number of attachments +$lang['ERROR_IMAGESIZE'] = 'Изображение должно быть меньше, чем %d пикселей в ширину и %d пикселей в высоту.'; +$lang['GENERAL_UPLOAD_ERROR'] = 'Ошибка закачки: Невозможно закачать вложение в %s.'; // replace %s with local path + +$lang['ERROR_EMPTY_ADD_ATTACHBOX'] = 'Вы должны указать "Имя Файла" в форме "Прикрепить файл"'; +$lang['ERROR_MISSING_OLD_ENTRY'] = 'Невозможно обновить вложение, старое вложение не обнаружено'; + +// Errors -> PM Related +$lang['ATTACH_QUOTA_SENDER_PM_REACHED'] = 'К сожалению, вы достигли максимального общего объема закачанных файлов в папке личных сообщений. Пожалуйста, удалите часть принятых/отправленных вложений.'; +$lang['ATTACH_QUOTA_RECEIVER_PM_REACHED'] = 'К сожалению, \'%s\' достиг(ла) максимального общего объема закачанных файлов в папке личных сообщений. Пожалуйста, сообщите ему(ей) или подождите удаления некоторых из вложений.'; + +// Errors -> Download +$lang['NO_ATTACHMENT_SELECTED'] = 'Вы не выделили вложений для скачивания или просмотра.'; +$lang['ERROR_NO_ATTACHMENT'] = 'Выделенных вложений больше не существует.'; + +// Delete Attachments +$lang['CONFIRM_DELETE_ATTACHMENTS'] = 'Вы уверены, что хотите удалить выделенные вложения?'; +$lang['DELETED_ATTACHMENTS'] = 'Выделенные вложения удалены.'; +$lang['ERROR_DELETED_ATTACHMENTS'] = 'Невозможно удалить вложения.'; +$lang['CONFIRM_DELETE_PM_ATTACHMENTS'] = 'Вы уверены, что хотите удалить все вложения в этом личном сообщении?'; + +// General Error Messages +$lang['ATTACHMENT_FEATURE_DISABLED'] = 'Функция вложений выключена.'; + +$lang['DIRECTORY_DOES_NOT_EXIST'] = 'Директория \'%s\' не существует или не может быть найдена.'; // replace %s with directory +$lang['DIRECTORY_IS_NOT_A_DIR'] = 'Пожалуйста, проверьте является ли \'%s\' директорией.'; // replace %s with directory +$lang['DIRECTORY_NOT_WRITEABLE'] = 'Директория \'%s\' недоступна для записи. Вам нужно создать директорию для закачек и выполнить chmod 777 (или изменить владельца httpd-servers) для закачки фалов на сервер.
Если у вас только FTP доступ к серверу измените \'Атрибуты\' директории на rwxrwxrwx.'; // replace %s with directory + +// Quota Variables +$lang['UPLOAD_QUOTA'] = 'Квота'; +$lang['PM_QUOTA'] = 'Квота ЛС'; + +// Common Variables +$lang['BYTES'] = 'Байт'; +$lang['KB'] = 'КБ'; +$lang['MB'] = 'МБ'; +$lang['GB'] = 'ГБ'; +$lang['ATTACH_SEARCH_QUERY'] = 'Поиск вложений'; +$lang['TEST_SETTINGS'] = 'Проверить настройки'; +$lang['NOT_ASSIGNED'] = 'Не назначено'; +$lang['NO_FILE_COMMENT_AVAILABLE'] = 'Комментарий недоступен'; +$lang['ATTACHBOX_LIMIT'] = 'Ваш ящик вложений заполнен на %d%%'; +$lang['NO_QUOTA_LIMIT'] = 'Квота отсутствует'; +$lang['UNLIMITED'] = 'Без ограничений'; + +//bt +$lang['BT_REG_YES'] = 'Зарегистрирован'; +$lang['BT_REG_NO'] = 'Не зарегистрирован'; +$lang['BT_ADDED'] = 'Добавлен'; +$lang['BT_REG_ON_TRACKER'] = 'Зарегистрировать торрент'; +$lang['BT_REG_FAIL'] = 'Не удалось зарегистрировать торрент на трекере'; +$lang['BT_REG_FAIL_SAME_HASH'] = 'Другой торрент с таким же info_hash уже зарегистрирован'; +$lang['BT_UNREG_FROM_TRACKER'] = 'Разрегистрировать торрент'; +$lang['BT_UNREGISTERED'] = 'Торрент разрегистрирован'; +$lang['BT_REGISTERED'] = 'Торрент зарегистрирован на трекере

Теперь вам нужно его скачать и поставить на закачку у самого себя в ту же директорию, где лежат оригинальные файлы'; +$lang['INVALID_ANN_URL'] = 'Неправильный Аnnounce URL [%s]

должен быть %s'; +$lang['PASSKEY_ERR_TOR_NOT_REG'] = 'Невозможно добавить пасскей

Торрент не зарегистрирован на трекере'; +$lang['PASSKEY_ERR_EMPTY'] = 'Невозможно добавить пасскей

Вам необходимо зайти в ваш форумный профиль и сгенерировать пасскей'; +$lang['BT_PASSKEY'] = 'Пасскей'; +$lang['BT_GEN_PASSKEY'] = 'Создать новый'; +$lang['BT_PASSKEY_VIEW'] = 'Показать'; +$lang['BT_GEN_PASSKEY_NEW'] = "Внимание! После изменения нового пасскея, вам необходимо будет заново скачать все активные торренты! \n Вы уверены, что хотите создать новый пасскей?"; +$lang['BT_NO_SEARCHABLE_FORUMS'] = 'Доступных для поиска форумов не найдено'; + +$lang['SEEDS'] = 'Сидам'; +$lang['LEECHS'] = 'Личерам'; +$lang['SPEED_UP'] = 'Скорость отдачи'; +$lang['SPEED_DOWN'] = 'Скорость скачивания'; + +$lang['SEEDERS'] = 'Сидов'; +$lang['LEECHERS'] = 'Личеров'; +$lang['RELEASING'] = 'Свои'; +$lang['SEEDING'] = 'Сидер'; +$lang['LEECHING'] = 'Личер'; +$lang['IS_REGISTERED'] = 'Зарегистрирован'; +$lang['MAGNET'] = 'Магнит'; +$lang['DC_MAGNET'] = 'Поиск в DC++ по имени файла'; +$lang['DC_MAGNET_EXT'] = 'Поиск в DC++ по расширению'; + +//torrent status mod +$lang['TOR_STATUS'] = 'Статус'; +$lang['TOR_STATUS_SELECT_ACTION'] = 'Выберите статус'; +$lang['TOR_STATUS_NOT_SELECT'] = 'Вы не выбрали статус.'; +$lang['TOR_STATUS_SELECT_ALL'] = 'Все статусы'; +$lang['TOR_STATUS_NAME'] = array( + TOR_NOT_APPROVED => 'не проверено', + TOR_CLOSED => 'закрыто', + TOR_APPROVED => 'проверено', + TOR_NEED_EDIT => 'недооформлено', + TOR_NO_DESC => 'неоформлено', + TOR_DUP => 'повтор', + TOR_CLOSED_CPHOLD => 'закрыто правообладателем', + TOR_CONSUMED => 'поглощено', + TOR_DOUBTFUL => 'сомнительно', + TOR_CHECKING => 'проверяется', + TOR_TMP => 'временная', + TOR_PREMOD => 'премодерация', + TOR_REPLENISH => 'пополняемая', +); +$lang['TOR_STATUS_FAILED'] = 'Такого статуса не существует!'; +$lang['TORRENT_FAILED'] = 'Раздача не найдена!'; +$lang['TOR_STATUS_DUB'] = 'Раздача имеет тот же статус'; +$lang['TOR_DONT_CHANGE'] = 'Изменение статуса невозможно!'; +$lang['TOR_STATUS_OF'] = 'Раздача имеет статус:'; +$lang['TOR_STATUS_CHANGED'] = 'Статус изменил: '; +$lang['TOR_BACK'] = ' назад'; +$lang['PROCEED'] = 'Продолжить'; +$lang['INVALID_ATTACH_ID'] = 'Отсутствует идентификатор файла!'; +$lang['CHANGE_TOR_TYPE'] = 'Тип торрента успешно изменен'; +$lang['DEL_TORRENT'] = 'Вы уверены, что хотите удалить торрент?'; +$lang['DEL_MOVE_TORRENT'] = 'Вы уверены, что хотите удалить и перенести топик?'; +$lang['UNEXECUTED_RELEASE'] = 'У вас есть неоформленный релиз, прежде чем создавать новый - исправьте свой неоформленный!'; +$lang['STATUS_DOES_EXIST'] = 'Такого статуса не существует: '; + +// tor_comment +$lang['TOR_MOD_TITLE'] = 'Изменение статуса раздачи - %s'; +$lang['TOR_MOD_MSG'] = "Здравствуйте, %s.\n\n Статус [url=%s]вашей[/url] раздачи изменен на [b]%s[/b]"; + +$lang['TOR_AUTH_TITLE'] = 'Изменение в оформлении - %s'; +$lang['TOR_AUTH_MSG'] = "Здравствуйте, %s.\n\n Оформление моей раздачи изменено - [url=%s]%s[/url]\n\n Просьба повторно ее проверить."; +$lang['TOR_AUTH_FIXED'] = 'Исправил'; +$lang['TOR_AUTH_SENT_COMMENT'] = ' · Информация отправлена модератору. Ожидайте.'; + +$lang['BT_TOPIC_TITLE'] = 'Название темы'; +$lang['BT_SEEDER_LAST_SEEN'] = 'Последний сид'; +$lang['BT_SORT_FORUM'] = 'Форум'; +$lang['SIZE'] = 'Размер'; +$lang['PIECE_LENGTH'] = 'Размер блока'; +$lang['COMPLETED'] = 'Скачан'; +$lang['ADDED'] = 'Добавлен'; +$lang['DELETE_TORRENT'] = 'Удалить торрент'; +$lang['DELETE_MOVE_TORRENT'] = 'Удалить и перенести топик'; +$lang['DL_TORRENT'] = 'Скачать .torrent'; +$lang['BT_LAST_POST'] = 'Посл. сообщение'; +$lang['BT_CREATED'] = 'Время создания топика'; +$lang['BT_REPLIES'] = 'Сообщения'; +$lang['BT_VIEWS'] = 'Просмотры'; + +// Gold/Silver releases +$lang['GOLD'] = 'Золото'; +$lang['SILVER'] = 'Серебро'; +$lang['SET_GOLD_TORRENT'] = 'Сделать золотым'; +$lang['UNSET_GOLD_TORRENT'] = 'Снять золото'; +$lang['SET_SILVER_TORRENT'] = 'Сделать серебряным'; +$lang['UNSET_SILVER_TORRENT'] = 'Снять серебро'; +$lang['GOLD_STATUS'] = 'ЗОЛОТАЯ РАЗДАЧА! СКАЧАННОЕ НЕ ЗАСЧИТЫВАЕТСЯ!'; +$lang['SILVER_STATUS'] = 'СЕРЕБРЯНАЯ РАЗДАЧА! СКАЧАННОЕ ЗАСЧИТЫВАЕТСЯ ТОЛЬКО НАПОЛОВИНУ!'; + +$lang['SEARCH_IN_FORUMS'] = 'Искать в форумах'; +$lang['SELECT_CAT'] = 'Выбрать категорию…'; +$lang['GO_TO_SECTION'] = 'перейти к разделу'; +$lang['TORRENTS_FROM'] = 'Торренты за'; +$lang['SHOW_ONLY'] = 'Показывать только'; +$lang['SHOW_COLUMN'] = 'Показывать колонку'; +$lang['SEL_CHAPTERS'] = 'Ссылка на выбранные разделы'; +$lang['NOT_SEL_CHAPTERS'] = 'Вы не выбрали разделы'; +$lang['SEL_CHAPTERS_HELP'] = 'Вы можете выбрать максимум %s разделов'; +$lang['HIDE_CONTENTS'] = 'Скрыть содержимое {...}'; +$lang['FILTER_BY_NAME'] = 'Фильтр по названию'; + +$lang['BT_ONLY_ACTIVE'] = 'Активные (есть сидер или личер)'; +$lang['BT_ONLY_MY'] = 'Мои раздачи'; +$lang['BT_SEED_EXIST'] = 'Есть сид (полный источник)'; +$lang['BT_ONLY_NEW'] = 'Новые с последнего посещения'; +$lang['BT_SHOW_CAT'] = 'Категория'; +$lang['BT_SHOW_FORUM'] = 'Форум'; +$lang['BT_SHOW_AUTHOR'] = 'Автор'; +$lang['BT_SHOW_SPEED'] = 'Скорость'; +$lang['SEED_NOT_SEEN'] = 'Источника не было'; +$lang['TITLE_MATCH'] = 'Название содержит'; +$lang['BT_USER_NOT_FOUND'] = 'не найден'; +$lang['DL_SPEED'] = 'Общая скорость скачивания'; + +$lang['BT_DISREGARD'] = 'не учитывать'; +$lang['BT_NEVER'] = 'никогда'; +$lang['BT_ALL_DAYS_FOR'] = 'за все время'; +$lang['BT_1_DAY_FOR'] = 'за сегодня'; +$lang['BT_3_DAY_FOR'] = 'последние 3 дня'; +$lang['BT_7_DAYS_FOR'] = 'посл. неделю'; +$lang['BT_2_WEEKS_FOR'] = 'посл. 2 недели'; +$lang['BT_1_MONTH_FOR'] = 'последний месяц'; +$lang['BT_1_DAY'] = 'день'; +$lang['BT_3_DAYS'] = '3 дня'; +$lang['BT_7_DAYS'] = 'неделю'; +$lang['BT_2_WEEKS'] = '2 недели'; +$lang['BT_1_MONTH'] = 'месяц'; + +$lang['DL_LIST_AND_TORRENT_ACTIVITY'] = 'Статистика раздачи'; +$lang['DLWILL'] = 'Буду качать'; +$lang['DLDOWN'] = 'Качаю'; +$lang['DLCOMPLETE'] = 'Скачал'; +$lang['DLCANCEL'] = 'Отмена'; + +$lang['DL_LIST_DEL'] = 'Очистить DL-List'; +$lang['DL_LIST_DEL_CONFIRM'] = 'Вы уверены, что хотите удалить DL-List для этого топика?'; +$lang['SHOW_DL_LIST'] = 'Список скачавших'; +$lang['SET_DL_STATUS'] = 'Разрешить скачивание'; +$lang['UNSET_DL_STATUS'] = 'Запретить скачивание'; +$lang['TOPICS_DOWN_SETS'] = 'Выбранные темы изменили статус на: Скачиваемые'; +$lang['TOPICS_DOWN_UNSETS'] = 'Выбранные темы перестали быть Скачиваемыми'; + +$lang['TOPIC_DL'] = 'DL'; + +$lang['MY_DOWNLOADS'] = 'Мои закачки'; +$lang['SEARCH_DL_WILL'] = 'Будущие'; +$lang['SEARCH_DL_WILL_DOWNLOADS'] = 'Будущие закачки'; +$lang['SEARCH_DL_DOWN'] = 'Текущие'; +$lang['SEARCH_DL_COMPLETE'] = 'Прошлые'; +$lang['SEARCH_DL_COMPLETE_DOWNLOADS'] = 'Прошлые закачки'; +$lang['SEARCH_DL_CANCEL'] = 'Отмененные'; +$lang['CUR_DOWNLOADS'] = 'Текущие закачки'; +$lang['CUR_UPLOADS'] = 'Текущие раздачи'; +$lang['SEARCH_RELEASES'] = 'Раздачи'; +$lang['TOR_SEARCH_TITLE'] = 'Опции показа торрентов'; +$lang['OPEN_TOPIC'] = 'Открыть топик'; + +$lang['ALLOWED_ONLY_1ST_POST_ATTACH'] = 'Вы можете прикреплять торрент-файлы только к первому сообщению в теме'; +$lang['ALLOWED_ONLY_1ST_POST_REG'] = 'Вы можете регистрировать торрент-файлы на трекере только из первого сообщения в теме'; +$lang['REG_NOT_ALLOWED_IN_THIS_FORUM'] = 'В этом форуме регистрация торрентов на трекере запрещена'; +$lang['ALREADY_REG'] = 'Торрент уже зарегистрирован'; +$lang['NOT_TORRENT'] = 'Это не торрент-файл'; +$lang['ONLY_1_TOR_PER_POST'] = 'Вы не можете зарегистрировать еще один торрент для этого сообщения'; +$lang['ONLY_1_TOR_PER_TOPIC'] = 'Вы не можете зарегистрировать еще один торрент для этого топика'; +$lang['VIEWING_USER_BT_PROFILE'] = 'Торрент-профиль'; // %s is username +$lang['CUR_ACTIVE_DLS'] = 'Активные раздачи'; + +$lang['TD_TRAF'] = 'Сегодня'; +$lang['YS_TRAF'] = 'Вчера'; +$lang['TOTAL_TRAF'] = 'Всего'; + +$lang['USER_RATIO'] = 'Рейтинг'; +$lang['MAX_SPEED'] = 'Скорость'; +$lang['DOWNLOADED'] = 'Скачано'; +$lang['UPLOADED'] = 'Отдано'; +$lang['RELEASED'] = 'На своих'; +$lang['BONUS'] = 'На редких'; +$lang['IT_WILL_BE_DOWN'] = 'начнет учитываться после того как будет скачано'; +$lang['SPMODE_FULL'] = 'Подробная статистика пиров'; + +// Seed Bonus +$lang['MY_BONUS'] = 'Мой бонус (%s бонусов в наличии)'; +$lang['BONUS_SELECT'] = 'Выбор'; +$lang['SEED_BONUS'] = 'Сидбонус'; +$lang['EXCHANGE'] = 'Обменять'; +$lang['EXCHANGE_BONUS'] = 'Обмен сидбонусов'; +$lang['BONUS_UPLOAD_DESC'] = '%s к раздаче
Обменять бонусные очки на %1$s трафика, который будет приплюсован к сумме вашей раздачи.'; +$lang['BONUS_UPLOAD_PRICE'] = '%s'; +$lang['PRICE'] = 'Цена'; +$lang['EXCHANGE_NOT'] = 'Обмен не доступен'; +$lang['BONUS_SUCCES'] = 'Обмен произведен удачно! Вам прибавлено %s'; +$lang['BONUS_NOT_SUCCES'] = 'У вас недостаточно бонусов в наличии. Больше сидируйте!'; +$lang['BONUS_RETURN'] = 'Вернуться к обмену сидбонусов'; + +$lang['TRACKER'] = 'Трекер'; +$lang['OPEN_TOPICS'] = 'Открывать топики'; +$lang['OPEN_IN_SAME_WINDOW'] = 'открывать в этом же окне'; +$lang['SHOW_TIME_TOPICS'] = 'показывать время создания темы'; +$lang['SHOW_CURSOR'] = 'подсвечивать строки под курсором'; + +$lang['BT_LOW_RATIO_FOR_DL'] = "Рейтинг %s уже не позволяет вам скачивать новые торренты.

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

Пожалуйста, помните о том, что ваше yчастие в системе BitTorrent не может ограничиваться только скачиванием!"; +$lang['BT_RATIO_WARNING_MSG'] = 'Если ваш рейтинг упадет ниже %s, вы не сможете скачивать торренты! Подробнее о рейтинге.'; + +$lang['SEEDER_LAST_SEEN'] = 'Полного источника не было: %s'; + +$lang['NEED_TO_LOGIN_FIRST'] = 'Вы должны авторизоваться на сайте'; +$lang['ONLY_FOR_MOD'] = 'Эта опция доступна только модераторам'; +$lang['ONLY_FOR_ADMIN'] = 'Эта опция доступна только администраторам'; +$lang['ONLY_FOR_SUPER_ADMIN'] = 'Эта опция доступна только суперадминистраторам'; + +$lang['LOGS'] = 'История темы'; +$lang['FORUM_LOGS'] = 'История форума'; +$lang['AUTOCLEAN'] = 'Автоочистка'; +$lang['DESIGNER'] = 'Конструктор'; + +$lang['LAST_IP'] = 'Последний IP:'; +$lang['REG_IP'] = 'IP регистрации:'; +$lang['OTHER_IP'] = 'Другие IP:'; +$lang['ALREADY_REG_IP'] = 'С вашего IP-адреса уже зарегистрирован пользователь %s. Если вы ранее не регистрировались на нашем сайте, обратитесь к Администрации'; +$lang['HIDDEN'] = 'Скрыт'; + +// from admin +$lang['NOT_ADMIN'] = 'У вас нет прав на администрирование'; + +$lang['COOKIES_REQUIRED'] = 'Куки должны быть включены!'; +$lang['SESSION_EXPIRED'] = 'Сессия устарела'; + +// Sort memberlist per letter +$lang['SORT_PER_LETTER'] = 'Имя начинается с буквы'; +$lang['OTHERS'] = 'другие'; +$lang['ALL'] = 'все'; + +$lang['POST_LINK'] = 'Линк на это сообщение'; +$lang['GOTO_QUOTED_POST'] = 'Перейти к цитируемому сообщению'; +$lang['LAST_VISITED'] = 'Последний визит'; +$lang['LAST_ACTIVITY'] = 'Последняя активность'; +$lang['NEVER'] = 'Никогда'; + +//mpd +$lang['DELETE_POSTS'] = 'Удалить сообщения'; +$lang['DELETE_POSTS_SUCCESFULLY'] = 'Выбранные сообщения были успешно удалены'; + +//ts +$lang['TOPICS_ANNOUNCEMENT'] = 'Объявления'; +$lang['TOPICS_STICKY'] = 'Прилеплены'; +$lang['TOPICS_NORMAL'] = 'Топики'; + +//dpc +$lang['DOUBLE_POST_ERROR'] = 'Вы не можете отправить подряд два одинаковых сообщения'; + +//upt +$lang['UPDATE_POST_TIME'] = 'Обновить время сообщения'; + +$lang['TOPIC_SPLIT_NEW'] = 'Новая тема'; +$lang['TOPIC_SPLIT_OLD'] = 'Старая тема'; +$lang['BOT_LEAVE_MSG_MOVED'] = 'Оставить сообщение о переносе'; +$lang['BOT_AFTER_SPLIT_TO_OLD'] = 'Оставить сообщение о разделении в старой теме'; +$lang['BOT_AFTER_SPLIT_TO_NEW'] = 'Добавить сообщение о разделении в новую тему'; +//qr +$lang['QUICK_REPLY'] = 'Быстрый ответ'; +$lang['INS_NAME_TIP'] = 'Вставить имя или выделенный кусок сообщения.'; +$lang['QUOTE_SELECTED'] = 'Цитировать выделенный текст'; +$lang['QR_ATTACHSIG'] = 'Присоединить подпись'; +$lang['QR_NOTIFY'] = 'Уведомлять об ответах'; +$lang['QR_DISABLE'] = 'Отключить'; +$lang['QR_USERNAME'] = 'Имя'; +$lang['NO_TEXT_SEL'] = 'Нет выделенного текста'; +$lang['QR_FONT_SEL'] = 'Шрифт'; +$lang['QR_COLOR_SEL'] = 'Цвет шрифта'; +$lang['QR_SIZE_SEL'] = 'Размер шрифта'; +$lang['COLOR_STEEL_BLUE'] = 'Темно-Голубой'; +$lang['COLOR_GRAY'] = 'Серый'; +$lang['COLOR_DARK_GREEN'] = 'Темно-Зеленый'; + +//txtb +$lang['ICQ_TXTB'] = '[ICQ]'; +$lang['REPLY_WITH_QUOTE_TXTB'] = '[Цитировать]'; +$lang['READ_PROFILE_TXTB'] = '[Профиль]'; +$lang['SEND_EMAIL_TXTB'] = '[E-mail]'; +$lang['VISIT_WEBSITE_TXTB'] = '[www]'; +$lang['EDIT_DELETE_POST_TXTB'] = '[Изменить]'; +$lang['SEARCH_USER_POSTS_TXTB'] = '[Поиск]'; +$lang['VIEW_IP_TXTB'] = '[ip]'; +$lang['DELETE_POST_TXTB'] = '[x]'; +$lang['MODERATE_POST_TXTB'] = '[m]'; +$lang['SEND_PM_TXTB'] = '[ЛС]'; + +$lang['DECLENSION']['REPLIES'] = array('ответ', 'ответа'); +$lang['DECLENSION']['TIMES'] = array('раз', 'раза'); + +$lang['DELTA_TIME']['INTERVALS'] = array( + 'seconds' => array('секунда', 'секунды'), + 'minutes' => array('минута', 'минуты'), + 'hours' => array('час', 'часа'), + 'mday' => array('день', 'дня'), + 'mon' => array('месяц', 'месяца'), + 'year' => array('год', 'года'), +); +$lang['DELTA_TIME']['FORMAT'] = '%1$s %2$s'; // 5(%1) minutes(%2) + +$lang['AUTH_TYPES'][AUTH_ALL] = $lang['AUTH_ANONYMOUS_USERS']; +$lang['AUTH_TYPES'][AUTH_REG] = $lang['AUTH_REGISTERED_USERS']; +$lang['AUTH_TYPES'][AUTH_ACL] = $lang['AUTH_USERS_GRANTED_ACCESS']; +$lang['AUTH_TYPES'][AUTH_MOD] = $lang['AUTH_MODERATORS']; +$lang['AUTH_TYPES'][AUTH_ADMIN] = $lang['AUTH_ADMINISTRATORS']; + +$lang['NEW_USER_REG_DISABLED'] = 'Регистрация новых пользователей временно отключена'; +$lang['ONLY_NEW_POSTS'] = 'только новые сообщения'; +$lang['ONLY_NEW_TOPICS'] = 'только новые темы'; + +$lang['TORHELP_TITLE'] = 'Этим раздачам необходима ваша помощь!'; +$lang['STATISTICS'] = 'Статистика'; +$lang['STATISTIC'] = 'Параметр'; +$lang['VALUE'] = 'Значение'; +$lang['INVERT_SELECT'] = 'Обратить выделение'; +$lang['STATUS'] = 'Статус'; +$lang['LAST_CHANGED_BY'] = 'Последнее изменение'; +$lang['CHANGES'] = 'Изменения'; +$lang['ACTION'] = 'Действие'; +$lang['REASON'] = 'Причина'; +$lang['COMMENT'] = 'Комментарий'; + +// search +$lang['SEARCH_S'] = 'поиск…'; +$lang['FORUM_S'] = 'по форуму'; +$lang['TRACKER_S'] = 'по трекеру'; +$lang['HASH_S'] = 'по info_hash'; + +// copyright +$lang['NOTICE'] = '!ВНИМАНИЕ!'; +$lang['COPY'] = 'Сайт не предоставляет электронные версии произведений, а занимается лишь коллекционированием и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями. Если вы являетесь правообладателем какого-либо представленного материала и не желаете, чтобы ссылка на него находилась в нашем каталоге, свяжитесь с нами, и мы незамедлительно удалим ее. Файлы для обмена на трекере предоставлены пользователями сайта, и администрация не несет ответственности за их содержание. Просьба не заливать файлы, защищенные авторскими правами, а также файлы нелегального содержания!'; + +// FILELIST +$lang['FILELIST'] = 'Список файлов'; +$lang['COLLAPSE'] = 'Свернуть директории'; +$lang['EXPAND'] = 'Развернуть'; +$lang['SWITCH'] = 'Переключить'; +$lang['EMPTY_ATTACH_ID'] = 'Отсутствует идентификатор файла!'; +$lang['TOR_NOT_FOUND'] = 'Файл отсутствует на сервере!'; +$lang['ERROR_BUILD'] = 'Содержимое данного торрент-файла не может быть просмотрено на сайте (не удалось выстроить список файлов)'; +$lang['TORFILE_INVALID'] = 'Торрент-файл поврежден!'; + +// Profile +$lang['WEBSITE_ERROR'] = 'Поле "Сайт" может содержать только http://ссылку'; +$lang['ICQ_ERROR'] = 'Поле "ICQ" может содержать только номер icq'; +$lang['INVALID_DATE'] = 'Ошибка даты '; +$lang['PROFILE_USER'] = 'Профиль пользователя'; +$lang['GOOD_UPDATE'] = 'был успешно изменен'; +$lang['UCP_DOWNLOADS'] = 'Закачки'; +$lang['HIDE_DOWNLOADS'] = 'Скрывать список текущих закачек в профиле'; +$lang['BAN_USER'] = 'Запретить пользователю'; +$lang['USER_NOT_ALLOWED'] = 'Пользователю запрещено'; +$lang['HIDE_AVATARS'] = 'Показывать аватар'; +$lang['SHOW_CAPTION'] = 'Показывать подпись'; +$lang['DOWNLOAD_TORRENT'] = 'Скачивать торренты'; +$lang['SEND_PM'] = 'Отправлять ЛС'; +$lang['SEND_MESSAGE'] = 'Отправлять сообщения'; +$lang['NEW_THREADS'] = 'Создавать темы'; +$lang['PROFILE_NOT_FOUND'] = 'Профиль не найден'; + +$lang['USER_DELETE'] = 'Удаление'; +$lang['USER_DELETE_EXPLAIN'] = 'Удалить этого пользователя'; +$lang['USER_DELETE_ME'] = 'Извините, свой аккаунт запрещено удалять!'; +$lang['USER_DELETE_CSV'] = 'Извините, этот аккаунт запрещено удалять!'; +$lang['USER_DELETE_CONFIRM'] = 'Вы действительно хотите удалить этого пользователя?'; +$lang['USER_DELETED'] = 'Пользователь был успешно удален'; +$lang['DELETE_USER_ALL_POSTS'] = 'Удалить все сообщения пользователя'; +$lang['DELETE_USER_ALL_POSTS_CONFIRM'] = 'Вы действительно хотите удалить все сообщения и все начатые пользователем топики целиком?'; +$lang['DELETE_USER_POSTS'] = 'Удалить все сообщения, кроме заглавных'; +$lang['DELETE_USER_POSTS_ME'] = 'Вы действительно хотите удалить все свои сообщения?'; +$lang['DELETE_USER_POSTS_CONFIRM'] = 'Вы действительно хотите удалить все сообщения пользователя, кроме заглавных?'; +$lang['USER_DELETED_POSTS'] = 'Сообщения успешно удалены'; + +$lang['USER'] = 'Пользователь'; +$lang['ROLE'] = 'Роль:'; +$lang['MEMBERSHIP_IN'] = 'Членство в группах'; +$lang['PARTY'] = 'Участник:'; +$lang['CANDIDATE'] = 'Кандидат:'; +$lang['INDIVIDUAL'] = 'Имеет индивидуальные права'; +$lang['GROUP_LIST_HIDDEN'] = 'У вас нет прав на просмотр скрытых групп'; + +$lang['USER_ACTIVATE'] = 'Активировать'; +$lang['USER_DEACTIVATE'] = 'Деактивировать'; +$lang['DEACTIVATE_CONFIRM'] = 'Вы действительно хотите активировать этого пользователя?'; +$lang['USER_ACTIVATE_ON'] = 'Пользователь успешно активирован'; +$lang['USER_DEACTIVATE_ME'] = 'Вы не можете деактивировать свой аккаунт!'; +$lang['ACTIVATE_CONFIRM'] = 'Вы действительно хотите деактивировать этого пользователя?'; +$lang['USER_ACTIVATE_OFF'] = 'Пользователь успешно деактивирован'; + +// Register +$lang['CHOOSE_A_NAME'] = 'Вы должны выбрать имя'; +$lang['CHOOSE_E_MAIL'] = 'Вы должны указать e-mail'; +$lang['CHOOSE_PASS'] = 'Поля для ввода пароля не должны быть пустыми!'; +$lang['CHOOSE_PASS_ERR'] = 'Введенные пароли не совпадают'; +$lang['CHOOSE_PASS_ERR_MIN'] = 'Пароль должен быть не короче %d символов'; +$lang['CHOOSE_PASS_ERR_MAX'] = 'Пароль должен быть не длиннее %d символов'; +$lang['CHOOSE_PASS_OK'] = 'Пароли совпадают'; +$lang['CHOOSE_PASS_REG_OK'] = 'Пароли совпадают, можете продолжить регистрацию'; +$lang['CHOOSE_PASS_FAILED'] = 'Для изменения пароля вы должны правильно указать текущий пароль'; +$lang['EMAILER_DISABLED'] = 'Извините, эта функция временно не работает'; +$lang['TERMS_ON'] = 'Я согласен с этими условиями'; +$lang['TERMS_OFF'] = 'Я не согласен с этими условиями'; +$lang['JAVASCRIPT_ON_REGISTER'] = 'Для регистрации необходимо включить JavaScript'; +$lang['REGISTERED_IN_TIME'] = "В данный момент регистрация закрыта

вы можете зарегистрироваться с 01:00 до 17:00 MSK (сейчас " . date('H:i') . " MSK)

Приносим извинения за это временное неудобство"; +$lang['AUTOCOMPLETE'] = 'Сгенерировать пароль'; +$lang['YOUR_NEW_PASSWORD'] = 'Ваш пароль: '; +$lang['REGENERATE'] = 'Перегенерировать'; + +// Debug +$lang['EXECUTION_TIME'] = 'Время выполнения:'; +$lang['SEC'] = 'сек'; +$lang['ON'] = 'вкл'; +$lang['OFF'] = 'выкл'; +$lang['MEMORY'] = 'Память: '; +$lang['QUERIES'] = 'запр.'; +$lang['LIMIT'] = 'Лимит:'; + +// Attach Guest +$lang['DOWNLOAD_INFO'] = 'Скачать бесплатно и на максимальной скорости!'; +$lang['HOW_TO_DOWNLOAD'] = 'Как скачивать?'; +$lang['WHAT_IS_A_TORRENT'] = 'Что такое торрент?'; +$lang['RATINGS_AND_LIMITATIONS'] = 'Рейтинг и ограничения'; + +$lang['SCREENSHOTS_RULES'] = 'Прочтите правила размещения скриншотов!'; +$lang['SCREENSHOTS_RULES_TOPIC'] = 'Прочтите правила размещения скриншотов в этом разделе!'; +$lang['AJAX_EDIT_OPEN'] = 'У вас уже открыто одно быстрое редактирование!'; +$lang['GO_TO_PAGE'] = 'К странице…'; +$lang['EDIT'] = 'Изменить'; +$lang['SAVE'] = 'Сохранить'; +$lang['NEW_WINDOW'] = 'в новом окне'; + +// BB Code +$lang['ALIGN'] = 'Выравнивание:'; +$lang['LEFT'] = 'Влево'; +$lang['RIGHT'] = 'Вправо'; +$lang['CENTER'] = 'По центру'; +$lang['JUSTIFY'] = 'По ширине'; +$lang['HOR_LINE'] = 'Горизонтальная линия (Ctrl+8)'; +$lang['NEW_LINE'] = 'Перенос на новую строку'; +$lang['BOLD'] = 'Жирный текст: [b]текст[/b] (Ctrl+B)'; +$lang['ITALIC'] = 'Наклонный текст: [i]текст[/i] (Ctrl+I)'; +$lang['UNDERLINE'] = 'Подчеркнутый текст: [u]текст[/u] (Ctrl+U)'; +$lang['STRIKEOUT'] = 'Зачеркнутый текст: [s]текст[/s] (Ctrl+S)'; +$lang['QUOTE_TITLE'] = 'Цитата: [quote]текст[/quote] (Ctrl+Q)'; +$lang['IMG_TITLE'] = 'Вставить картинку: [img]http://image_url[/img] (Ctrl+R)'; +$lang['URL'] = 'Ссылка'; +$lang['URL_TITLE'] = 'Ссылка (Ctrl+W)'; +$lang['CODE_TITLE'] = 'Код: [code]код[/code] (Ctrl+K)'; +$lang['LIST'] = 'Список'; +$lang['LIST_TITLE'] = 'Список: [list]текст[/list] (Ctrl+L)'; +$lang['LIST_ITEM'] = 'Нумерованный список: [list=]текст[/list] (Ctrl+O)'; +$lang['QUOTE_SEL'] = 'Цит.выдел'; +$lang['JAVASCRIPT_ON'] = 'Для отправки сообщений необходимо включить JavaScript'; + +$lang['NEW'] = 'Новое'; +$lang['NEWEST'] = 'Непрочит.'; +$lang['LATEST'] = 'Последнее'; +$lang['POST'] = 'Пост'; +$lang['OLD'] = 'Прочит'; + +// DL-List +$lang['DL_USER'] = 'Пользователь'; +$lang['DL_PERCENT'] = 'Скачано процентов'; +$lang['DL_UL'] = 'Отдано'; +$lang['DL_DL'] = 'Скачано'; +$lang['DL_UL_SPEED'] = 'Отдача'; +$lang['DL_DL_SPEED'] = 'Загрузка'; +$lang['DL_PORT'] = 'Порт'; +$lang['DL_FORMULA'] = 'Формула: Отдано/Размер раздачи'; +$lang['DL_ULR'] = 'URL'; +$lang['DL_STOPPED'] = 'Остановил Скачивание/Раздачу'; +$lang['DL_UPD'] = 'Подключен: '; +$lang['DL_INFO'] = 'показаны данные только за текущую сессию'; + +// Post PIN +$lang['POST_PIN'] = 'Закрепить первый пост'; +$lang['POST_UNPIN'] = 'Открепить первый пост'; +$lang['POST_PINNED'] = 'Первый пост закреплен'; +$lang['POST_UNPINNED'] = 'Первый пост откреплен'; + +// Management of my messages +$lang['GOTO_MY_MESSAGE'] = 'Закрыть и вернуться к списку "Мои сообщения"'; +$lang['DEL_MY_MESSAGE'] = 'Выбранные темы удалены из списка "Мои сообщения"'; +$lang['NO_TOPICS_MY_MESSAGE'] = 'Темы не найдены в списке ваших сообщений (возможно вы их уже удалили)'; +$lang['EDIT_MY_MESSAGE_LIST'] = 'Редактировать список'; +$lang['SELECT_INVERT'] = 'отметить/инвертировать'; +$lang['RESTORE_ALL_POSTS'] = 'Восстановить все сообщения'; +$lang['DEL_LIST_MY_MESSAGE'] = 'Удалить выбранные темы из списка'; +$lang['DEL_LIST_MY_MESSAGE_INFO'] = 'После удаления и до обновления всего списка в нем могут быть показаны уже удаленные темы'; +$lang['DEL_LIST_INFO'] = 'Для удаления тем из списка кликните на иконку слева от названия любого раздела'; + +// Watched topics +$lang['WATCHED_TOPICS'] = 'Отслеживаемые темы'; +$lang['NO_WATCHED_TOPICS'] = 'Вы не отслеживаете ни одну из тем'; + +// set_die_append_msg +$lang['INDEX_RETURN'] = 'Вернуться на главную'; +$lang['FORUM_RETURN'] = 'Вернуться в форум'; +$lang['TOPIC_RETURN'] = 'Вернуться в тему'; +$lang['POST_RETURN'] = 'Перейти к сообщению'; +$lang['PROFILE_EDIT_RETURN'] = 'Вернуться к редактированию'; +$lang['PROFILE_RETURN'] = 'Перейти к просмотру профиля'; + +$lang['WARNING'] = 'Предупреждение'; +$lang['INDEXER'] = 'Переиндексировать поиск'; + +$lang['FORUM_STYLE'] = 'Стиль форума'; + +$lang['LINKS_ARE_FORBIDDEN'] = 'Ссылки запрещены'; + +$lang['GENERAL'] = 'Общие настройки'; +$lang['USERS'] = 'Пользователи'; +$lang['GROUPS'] = 'Группы'; +$lang['FORUMS'] = 'Форумы'; +$lang['MODS'] = 'Модификации'; +$lang['TP'] = 'TorrentPier'; + +$lang['CONFIGURATION'] = 'Конфигурация'; +$lang['MANAGE'] = 'Управление'; +$lang['DISALLOW'] = 'Запрещенные имена'; +$lang['PRUNE'] = 'Чистка'; +$lang['MASS_EMAIL'] = 'Массовая рассылка почты'; +$lang['RANKS'] = 'Звания'; +$lang['SMILIES'] = 'Смайлики'; +$lang['BAN_MANAGEMENT'] = 'Черные списки'; +$lang['WORD_CENSOR'] = 'Автоцензор'; +$lang['EXPORT'] = 'Экспорт'; +$lang['CREATE_NEW'] = 'Создать'; +$lang['ADD_NEW'] = 'Добавить'; +$lang['CRON'] = 'Планировщик задач (cron)'; +$lang['REBUILD_SEARCH_INDEX'] = 'Перечесть индексы поиска'; +$lang['FORUM_CONFIG'] = 'Настройки форумов'; +$lang['TRACKER_CONFIG'] = 'Настройки трекера'; +$lang['RELEASE_TEMPLATES'] = 'Шаблоны для релизов'; +$lang['ACTIONS_LOG'] = 'Отчет по действиям'; + +//Welcome page +$lang['IDX_BROWSER_NSP_FRAME'] = 'Простите, но ваш браузер не поддерживает фреймы.'; +$lang['IDX_CLEAR_CACHE'] = 'Очистить кеш:'; +$lang['IDX_CLEAR_DATASTORE'] = 'Данные'; +$lang['IDX_CLEAR_TEMPLATES'] = 'Шаблоны'; +$lang['IDX_CLEAR_NEWNEWS'] = 'Новости'; +$lang['IDX_UPDATE'] = 'Обновить:'; +$lang['IDX_UPDATE_USER_LEVELS'] = 'Уровни пользователей'; +$lang['IDX_SYNCHRONIZE'] = 'Синхронизировать:'; +$lang['IDX_SYNCHRONIZE_TOPICS'] = 'Темы'; +$lang['IDX_SYNCHRONIZE_POSTCOUNT'] = 'Количество сообщений'; + +// Index +$lang['MAIN_INDEX'] = 'Список форумов'; +$lang['FORUM_STATS'] = 'Статистика форумов'; +$lang['ADMIN_INDEX'] = 'Главная страница'; +$lang['CREATE_PROFILE'] = 'Создать аккаунт'; + +$lang['TP_VERSION'] = 'Версия TorrentPier'; +$lang['TP_RELEASE_DATE'] = 'Дата выпуска'; +$lang['PHP_INFO'] = 'Информация о PHP'; + +$lang['CLICK_RETURN_ADMIN_INDEX'] = '%sВернуться на главную страницу администраторского раздела%s'; + +$lang['NUMBER_POSTS'] = 'Кол-во сообщений'; +$lang['POSTS_PER_DAY'] = 'Сообщений в день'; +$lang['NUMBER_TOPICS'] = 'Кол-во тем'; +$lang['TOPICS_PER_DAY'] = 'Тем в день'; +$lang['NUMBER_USERS'] = 'Кол-во пользователей'; +$lang['USERS_PER_DAY'] = 'Пользователей в день'; +$lang['BOARD_STARTED'] = 'Дата запуска'; +$lang['AVATAR_DIR_SIZE'] = 'Размер директории с аватарами'; +$lang['DATABASE_SIZE'] = 'Объем БД'; +$lang['GZIP_COMPRESSION'] = 'сжатие Gzip'; +$lang['NOT_AVAILABLE'] = 'Недоступно'; + +// Clear Cache +$lang['CLEAR_CACHE'] = 'Очистить кеш'; +$lang['TEMPLATES'] = 'Шаблона'; + +// Update +$lang['USER_LEVELS'] = 'Уровни и права пользователей'; +$lang['USER_LEVELS_UPDATED'] = 'Уровни и права пользователей обновлены'; + +// Synchronize +$lang['SYNCHRONIZE'] = 'Синхронизировать'; +$lang['TOPICS_DATA_SYNCHRONIZED'] = 'Темы синхронизированы'; +$lang['USER_POSTS_COUNT'] = 'Количество сообщений пользователей'; +$lang['USER_POSTS_COUNT_SYNCHRONIZED'] = 'Количество сообщений пользователей синхронизировано'; + +// Online Userlist +$lang['SHOW_ONLINE_USERLIST'] = 'Показать список пользователей онлайн'; + +// Auth pages +$lang['USER_SELECT'] = 'Выберите пользователя'; +$lang['GROUP_SELECT'] = 'Выберите группу'; +$lang['SELECT_A_FORUM'] = 'Выберите форум'; +$lang['AUTH_CONTROL_USER'] = 'Права пользователей'; +$lang['AUTH_CONTROL_GROUP'] = 'Права групп'; +$lang['AUTH_CONTROL_FORUM'] = 'Доступ к форумам'; +$lang['LOOK_UP_FORUM'] = 'Выбрать форум'; + +$lang['GROUP_AUTH_EXPLAIN'] = 'Здесь вы можете изменить права доступа и статус модератора для каждой группы пользователей. Не забывайте при изменении прав доступа для групп, что права доступа для отдельных пользователей могут давать пользователю возможность входа в форумы и т.п. Вы будете предупреждены в этом случае.'; +$lang['USER_AUTH_EXPLAIN'] = 'Здесь вы можете изменить права доступа и статус модератора для отдельных пользователей. Не забывайте при изменении прав пользователя, что права доступа для группы могут давать пользователю возможность входа в форумы и т.п. Вы будете предупреждены в этом случае.'; +$lang['FORUM_AUTH_EXPLAIN'] = 'Здесь вы можете регулировать доступ к каждому форуму. У вас будет обычный и продвинутый режим для этого, продвинутый дает больше возможностей для контроля. Помните, что изменение прав доступа к форуму повлияет на то, какие пользователи смогут совершать в нем различные действия.'; + +$lang['SIMPLE_MODE'] = 'Простой режим'; +$lang['ADVANCED_MODE'] = 'Продвинутый режим'; +$lang['MODERATOR_STATUS'] = 'Статус модератора'; + +$lang['ALLOWED_ACCESS'] = 'Доступ открыт'; +$lang['DISALLOWED_ACCESS'] = 'Доступ закрыт'; +$lang['IS_MODERATOR'] = 'Модератор'; + +$lang['CONFLICT_WARNING'] = 'Предупреждение о конфликте прав'; +$lang['CONFLICT_ACCESS_USERAUTH'] = 'У пользователя (пользователей) все еще есть права доступа к этому форуму, связанные с членством в группе. Вам, возможно, надо изменить права доступа для групп или исключить пользователя из группы для того, чтобы полностью закрыть ему права доступа. Группы, дающие такие права, перечислены ниже.'; +$lang['CONFLICT_MOD_USERAUTH'] = 'У данного пользователя все еще есть право модерирования этого форума, связанное с его членством в группе. Вам, возможно, надо изменить права доступа для групп или исключить пользователя из группы для того, чтобы полностью закрыть ему право модерации. Группы, дающие это право, перечислены ниже.'; + +$lang['CONFLICT_ACCESS_GROUPAUTH'] = 'У пользователя (пользователей) все еще есть права доступа к этому форуму из-за установок их личных прав. Вам, возможно, надо изменить их права для того, чтобы полностью закрыть им доступ. Пользователи, имеющие такие права, перечислены ниже.'; +$lang['CONFLICT_MOD_GROUPAUTH'] = 'У пользователя (пользователей) все еще есть право модерирования этого форума из-за установок их личных прав. Вам, возможно, надо изменить их права для того, чтобы полностью закрыть им возможность модерирования. Пользователи, имеющие такие права, перечислены ниже.'; + +$lang['PUBLIC'] = 'Публичный'; +$lang['PRIVATE'] = 'Приватный'; +$lang['REGISTERED'] = 'Зарегистрированный'; +$lang['ADMINISTRATORS'] = 'Администраторы'; + +// These are displayed in the drop down boxes for advanced mode forum auth, try and keep them short! +$lang['FORUM_ALL'] = 'Все'; +$lang['FORUM_REG'] = 'Регистр.'; +$lang['FORUM_PRIVATE'] = 'Приватный'; +$lang['FORUM_MOD'] = 'Модератор'; +$lang['FORUM_ADMIN'] = 'Админ'; + +$lang['AUTH_VIEW'] = $lang['VIEW'] = 'Видеть'; +$lang['AUTH_READ'] = $lang['READ'] = 'Читать'; +$lang['AUTH_POST'] = $lang['POST'] = 'Создавать темы'; +$lang['AUTH_REPLY'] = $lang['REPLY'] = 'Отвечать'; +$lang['AUTH_EDIT'] = $lang['EDIT'] = 'Редактировать'; +$lang['AUTH_DELETE'] = $lang['DELETE'] = 'Удалить'; +$lang['AUTH_STICKY'] = $lang['STICKY'] = 'Прилеплять темы'; +$lang['AUTH_ANNOUNCE'] = $lang['ANNOUNCE'] = 'Создавать объявления'; +$lang['AUTH_VOTE'] = $lang['VOTE'] = 'Голосовать'; +$lang['AUTH_POLLCREATE'] = $lang['POLLCREATE'] = 'Создавать опросы'; +$lang['AUTH_ATTACHMENTS'] = $lang['AUTH_ATTACH'] = 'Прикреплять файлы'; +$lang['AUTH_DOWNLOAD'] = 'Скачивать файлы'; + +$lang['SIMPLE_PERMISSION'] = 'Простое право доступа'; + +$lang['USER_LEVEL'] = 'Статус пользователя'; +$lang['AUTH_USER'] = 'Пользователь'; +$lang['AUTH_ADMIN'] = 'Администратор'; +$lang['GROUP_MEMBERSHIPS'] = 'Членство в группах'; +$lang['USERGROUP_MEMBERS'] = 'В этой группе состоят'; + +$lang['FORUM_AUTH_UPDATED'] = 'Права доступа к форуму изменены'; +$lang['USER_AUTH_UPDATED'] = 'Права пользователя изменены'; +$lang['GROUP_AUTH_UPDATED'] = 'Права группы изменены'; + +$lang['AUTH_UPDATED'] = 'Права доступа изменены'; +$lang['CLICK_RETURN_USERAUTH'] = '%sВернуться к управлению правами пользователей%s'; +$lang['CLICK_RETURN_GROUPAUTH'] = '%sВернуться к управлению правами групп%s'; +$lang['CLICK_RETURN_FORUMAUTH'] = '%sВернуться к управлению доступом к форумам%s'; + +// Banning +$lang['BAN_CONTROL'] = 'Черные списки'; +$lang['BAN_EXPLAIN'] = 'Здесь вы можете управлять блокировками пользователей. Вы можете внести в черный список конкретного пользователя, а также один или несколько IP адресов. Этот метод не даст пользователю увидеть даже список форумов. Чтобы запретить регистрацию под другим именем, вы можете также внести в черный список адрес email. Учтите, запрещение только email адреса не закроет пользователю возможность заходить на форум и писать сообщения. Для этого вам придется воспользоваться одним из первых двух методов.'; +$lang['BAN_EXPLAIN_WARN'] = 'Учтите, что ввод диапазона IP адресов приведет к добавлению всех адресов между первым и последним в «черный список». Будут проделаны попытки уменьшить это количество вводом шаблонов, где это возможно. Если вам действительно надо ввести диапазон адресов, постарайтесь сделать его поменьше или, что еще лучше, вводите отдельные адреса.'; + +$lang['SELECT_IP'] = 'Выберите IP адрес'; +$lang['SELECT_EMAIL'] = 'Выберите адрес e-mail'; + +$lang['BAN_USERNAME'] = 'Закрытие доступа отдельным пользователям'; +$lang['BAN_USERNAME_EXPLAIN'] = 'Вы можете закрыть доступ нескольким пользователям за один раз, используя подходящую для вашего компьютера и браузера комбинацию клавиатуры и мыши.'; + +$lang['BAN_IP'] = 'Запрет одного или более IP-адресов'; +$lang['IP_HOSTNAME'] = 'IP-адреса'; +$lang['BAN_IP_EXPLAIN'] = 'Чтобы указать несколько различных IP-адресов, разделяйте их запятыми.'; + +$lang['BAN_EMAIL'] = 'Запретить e-mail адреса'; +$lang['BAN_EMAIL_EXPLAIN'] = 'Чтобы запретить несколько e-mail адресов, разделите их запятыми. Чтобы указать шаблон, используйте *, например *@mail.ru'; + +$lang['UNBAN_USERNAME'] = 'Вновь открыть доступ пользователям'; +$lang['UNBAN_USERNAME_EXPLAIN'] = 'Вы можете вновь открыть доступ нескольким пользователям за один раз, используя подходящую для вашего компьютера и браузера комбинацию клавиатуры и мыши.'; + +$lang['UNBAN_IP'] = 'Вновь открыть доступ с адресов IP'; +$lang['UNBAN_IP_EXPLAIN'] = 'Вы можете вновь разрешить доступ с нескольких адресов IP за один раз, используя подходящую для вашего компьютера и браузера комбинацию клавиатуры и мыши.'; + +$lang['UNBAN_EMAIL'] = 'Вновь разрешить адреса e-mail'; +$lang['UNBAN_EMAIL_EXPLAIN'] = 'Вы можете вновь разрешить несколько адресов e-mail за один раз, используя подходящую для вашего компьютера и браузера комбинацию клавиатуры и мыши.'; + +$lang['NO_BANNED_USERS'] = 'Черный список пользователей пуст'; +$lang['NO_BANNED_IP'] = 'Черный список адресов IP пуст'; +$lang['NO_BANNED_EMAIL'] = 'Черный список адресов e-mail пуст'; + +$lang['BAN_UPDATE_SUCESSFUL'] = 'Черный список был успешно обновлен'; +$lang['CLICK_RETURN_BANADMIN'] = '%sВернуться к черным спискам%s'; + +// Configuration +$lang['GENERAL_CONFIG'] = 'Общие настройки'; +$lang['CONFIG_EXPLAIN'] = 'Эта форма позволит вам изменить общие настройки форумов. Для управления пользователями и отдельными форумами используйте соответствующие ссылки слева.'; + +$lang['CONFIG_MODS'] = 'Настройки модификаций'; +$lang['MODS_EXPLAIN'] = 'Эта форма позволит вам изменить настройки модификаций.'; + +$lang['CLICK_RETURN_CONFIG'] = '%sВернуться к общим настройкам%s'; +$lang['CLICK_RETURN_CONFIG_MODS'] = '%sВернуться к настройкам модификаций%s'; + +$lang['GENERAL_SETTINGS'] = 'Общие настройки форумов'; +$lang['SITE_NAME'] = 'Название сайта'; +$lang['SITE_DESC'] = 'Описание сайта'; +$lang['FORUMS_DISABLE'] = 'Отключить форумы'; +$lang['BOARD_DISABLE_EXPLAIN'] = 'Форумы станут недоступными пользователям. У Администраторов останется доступ через Панель Администрирования пока форум выключен.'; +$lang['ACCT_ACTIVATION'] = 'Включить активизацию учетных записей'; +$lang['ACC_NONE'] = 'Нет'; // These three entries are the type of activation +$lang['ACC_USER'] = 'Пользователем'; +$lang['ACC_ADMIN'] = 'Администратором'; + +$lang['ABILITIES_SETTINGS'] = 'Общие настройки форумов и пользователей'; +$lang['MAX_POLL_OPTIONS'] = 'Макс. кол-во вариантов ответа в опросе'; +$lang['FLOOD_INTERVAL'] = 'Задержка «флуда»'; +$lang['FLOOD_INTERVAL_EXPLAIN'] = 'Время (в секундах), которое должно пройти между двумя сообщениями пользователя.'; +$lang['TOPICS_PER_PAGE'] = 'Тем на страницу'; +$lang['POSTS_PER_PAGE'] = 'Сообщений на страницу'; +$lang['HOT_THRESHOLD'] = 'Сообщений в «популярной» теме'; +$lang['DEFAULT_LANGUAGE'] = 'Язык по умолчанию'; +$lang['DATE_FORMAT'] = 'Формат даты'; +$lang['SYSTEM_TIMEZONE'] = 'Часовой пояс'; +$lang['ENABLE_PRUNE'] = 'Включить чистку форумов'; +$lang['ALLOW_BBCODE'] = 'Разрешить BBCode'; +$lang['ALLOW_SMILIES'] = 'Разрешить смайлики'; +$lang['SMILIES_PATH'] = 'Путь к смайликам'; +$lang['SMILIES_PATH_EXPLAIN'] = 'Каталог ниже корня TorrentPier, например styles/images/smilies'; +$lang['ALLOW_SIG'] = 'Разрешить подписи'; +$lang['MAX_SIG_LENGTH'] = 'Макс. длина подписи'; +$lang['MAX_SIG_LENGTH_EXPLAIN'] = 'Максимальное кол-во символов в подписи пользователя'; +$lang['ALLOW_NAME_CHANGE'] = 'Разрешить смену имени пользователя'; + +$lang['EMAIL_SETTINGS'] = 'Настройки e-mail'; + +// Visual Confirmation +$lang['VISUAL_CONFIRM'] = 'Включить визуальное подтверждение'; +$lang['VISUAL_CONFIRM_EXPLAIN'] = 'Потребовать от пользователей ввести при регистрации изображенный на картинке код.'; + +// Autologin Keys +$lang['ALLOW_AUTOLOGIN'] = 'Разрешить автоматический вход на форум'; +$lang['ALLOW_AUTOLOGIN_EXPLAIN'] = 'Разрешен ли пользователям автоматический вход на форум'; +$lang['AUTOLOGIN_TIME'] = 'Автоматический вход на форум действителен'; +$lang['AUTOLOGIN_TIME_EXPLAIN'] = 'Срок в днях с последнего посещения, в течение которого пользователь может автоматически войти на форум. Установите равным нулю, если хотите отключить данную возможность.'; + +// Forum Management +$lang['FORUM_ADMIN_MAIN'] = 'Управление форумами'; +$lang['FORUM_ADMIN_EXPLAIN'] = 'Здесь вы можете создавать, удалять и изменять порядок вывода категорий и форумов'; +$lang['EDIT_FORUM'] = 'Изменить форум'; +$lang['CREATE_FORUM'] = 'Создать новый форум'; +$lang['CREATE_CATEGORY'] = 'Создать новую категорию'; +$lang['REMOVE'] = 'Удалить'; +$lang['UPDATE_ORDER'] = 'Изменить порядок'; +$lang['CONFIG_UPDATED'] = 'Конфигурация форумов успешно изменена'; +$lang['MOVE_UP'] = 'вверх'; +$lang['MOVE_DOWN'] = 'вниз'; +$lang['RESYNC'] = 'Синхронизация'; +$lang['NO_MODE'] = 'Не было задано действие'; +$lang['FORUM_EDIT_DELETE_EXPLAIN'] = 'Здесь вы можете изменить название и описание форума, закрыть его (или вновь открыть) и настроить автоматическую чистку. Для управления правами доступа к форуму воспользуйтесь соответствующей ссылкой в левой части.'; + +$lang['MOVE_CONTENTS'] = 'Перенести все содержимое'; +$lang['FORUM_DELETE'] = 'Удалить форум'; +$lang['FORUM_DELETE_EXPLAIN'] = 'Здесь вы сможете удалить форум (или категорию) и решить, куда перенести все темы (или форумы), которые там содержались.'; +$lang['CATEGORY_DELETE'] = 'Удалить Категорию'; + +$lang['STATUS_LOCKED'] = 'Закрыт'; +$lang['STATUS_UNLOCKED'] = 'Открыт'; +$lang['FORUM_SETTINGS'] = 'Общие параметры форума'; +$lang['FORUM_NAME'] = 'Название форума'; +$lang['FORUM_DESC'] = 'Описание'; +$lang['FORUM_STATUS'] = 'Статус форума'; +$lang['FORUM_PRUNING'] = 'Автоматическая чистка'; + +$lang['PRUNE_DAYS'] = 'Удалять темы, в которых не было сообщений последние'; +$lang['SET_PRUNE_DATA'] = 'Вы выбрали для этого форума автоматическую чистку, но не указали количество дней. Пожалуйста, вернитесь и укажите.'; + +$lang['MOVE_AND_DELETE'] = 'Перенести и удалить'; + +$lang['DELETE_ALL_POSTS'] = 'Удалить все темы'; +$lang['DELETE_ALL_TOPICS'] = 'Удалить все темы, включая объявления и прилепленные'; +$lang['NOWHERE_TO_MOVE'] = 'Некуда переносить'; + +$lang['EDIT_CATEGORY'] = 'Изменить категорию'; +$lang['EDIT_CATEGORY_EXPLAIN'] = 'Используйте эту форму, чтобы изменить название категории'; + +$lang['FORUMS_UPDATED'] = 'Информация о форумах и категориях успешно изменена'; + +$lang['MUST_DELETE_FORUMS'] = 'Вы должны удалить все форумы, прежде чем сможете удалить эту категорию'; + +$lang['CLICK_RETURN_FORUMADMIN'] = '%sВернуться к управлению форумами%s'; + +$lang['SHOW_ALL_FORUMS_ON_ONE_PAGE'] = 'Открыть все форумы на одной странице'; + +// Smiley Management +$lang['SMILEY_TITLE'] = 'Утилита редактирования смайликов'; +$lang['SMILE_DESC'] = 'Здесь вы можете редактировать список смайликов'; + +$lang['SMILEY_CONFIG'] = 'Управление смайликами'; +$lang['SMILEY_CODE'] = 'Код смайлика'; +$lang['SMILEY_URL'] = 'Файл с изображением смайлика'; +$lang['SMILEY_EMOT'] = 'Эмоция смайлика'; +$lang['SMILE_ADD'] = 'Добавить новый смайлик'; +$lang['SMILE'] = 'Смайлик'; +$lang['EMOTION'] = 'Эмоция'; + +$lang['SELECT_PAK'] = 'Выберите файл с набором (.pak)'; +$lang['REPLACE_EXISTING'] = 'Заменить существующий смайлик'; +$lang['KEEP_EXISTING'] = 'Сохранить существующий смайлик'; +$lang['SMILEY_IMPORT_INST'] = 'Вы должны распаковать набор смайликов и закачать все файлы в подходящую для вашей установки директорию. Потом выберите в этой форме нужную информацию для импорта набора смайликов.'; +$lang['SMILEY_IMPORT'] = 'Импорт набора смайликов'; +$lang['CHOOSE_SMILE_PAK'] = 'Выберите файл .pak с набором'; +$lang['IMPORT'] = 'Импортировать смайлики'; +$lang['SMILE_CONFLICTS'] = 'Что делать в случае конфликта'; +$lang['DEL_EXISTING_SMILEYS'] = 'Удалить перед импортом существующие смайлики'; +$lang['IMPORT_SMILE_PACK'] = 'Импортировать набор смайликов'; +$lang['EXPORT_SMILE_PACK'] = 'Создать набор смайликов'; +$lang['EXPORT_SMILES'] = 'Для создания набора смайликов из смайликов, установленных в данный момент, %sскачайте файл smiles.pak%s. Переименуйте его как вам нужно, сохранив при этом расширение .pak, затем создайте файл zip, содержащий все изображения смайликов, а также этот файл.'; + +$lang['SMILEY_ADD_SUCCESS'] = 'Смайлик был успешно добавлен'; +$lang['SMILEY_EDIT_SUCCESS'] = 'Смайлик был успешно изменен'; +$lang['SMILEY_IMPORT_SUCCESS'] = 'Набор смайликов был успешно импортирован'; +$lang['SMILEY_DEL_SUCCESS'] = 'Смайлик был успешно удален'; +$lang['CLICK_RETURN_SMILEADMIN'] = '%sВернуться к списку смайликов%s'; + +// User Management +$lang['USER_ADMIN'] = 'Управление пользователями'; +$lang['USER_ADMIN_EXPLAIN'] = 'Здесь вы можете изменить информацию о пользователе. Чтобы изменить права доступа используйте панель управления правами доступа'; + +$lang['LOOK_UP_USER'] = 'Выбрать пользователя'; + +$lang['ADMIN_USER_FAIL'] = 'Не могу изменить профиль пользователя'; +$lang['ADMIN_USER_UPDATED'] = 'Профиль пользователя был успешно изменен'; +$lang['CLICK_RETURN_USERADMIN'] = '%sВернуться к управлению пользователями%s'; + +$lang['USER_ALLOWPM'] = 'Может посылать личные сообщения'; +$lang['USER_ALLOWAVATAR'] = 'Может показывать аватару'; + +$lang['ADMIN_AVATAR_EXPLAIN'] = 'Здесь вы можете просмотреть и удалить текущую аватару пользователя'; + +$lang['USER_SPECIAL'] = 'Поля только для админа'; +$lang['USER_SPECIAL_EXPLAIN'] = 'Эти поля сами пользователи редактировать не могут. Здесь вы можете установить их статус и сделать прочие недоступные им настройки.'; + +// Group Management +$lang['GROUP_ADMINISTRATION'] = 'Управление группами'; +$lang['GROUP_ADMIN_EXPLAIN'] = 'Здесь вы можете управлять всеми вашими группами: это включает удаление, добавление и изменение групп. Вы можете назначать модераторов, изменять открытый/закрытый статус группы и устанавливать ее название и описание.'; +$lang['ERROR_UPDATING_GROUPS'] = 'Ошибка при изменении группы.'; +$lang['UPDATED_GROUP'] = 'Группа была успешно изменена'; +$lang['ADDED_NEW_GROUP'] = 'Группа была успешно создана'; +$lang['DELETED_GROUP'] = 'Группа была успешно удалена'; +$lang['CREATE_NEW_GROUP'] = 'Создать новую группу'; +$lang['EDIT_GROUP'] = 'Изменить группу'; +$lang['GROUP_STATUS'] = 'Статус группы'; +$lang['GROUP_DELETE'] = 'Удалить группу'; +$lang['GROUP_DELETE_CHECK'] = 'Удалить эту группу'; +$lang['SUBMIT_GROUP_CHANGES'] = 'Сохранить изменения'; +$lang['RESET_GROUP_CHANGES'] = 'Отменить изменения'; +$lang['NO_GROUP_NAME'] = 'Вы должны указать название группы'; +$lang['NO_GROUP_MODERATOR'] = 'Вы должны выбрать модератора группы'; +$lang['NO_GROUP_MODE'] = 'Вы должны выбрать режим группы: открытый или закрытый'; +$lang['NO_GROUP_ACTION'] = 'Не было выбрано действие'; +$lang['DELETE_OLD_GROUP_MOD'] = 'Удалить старого модератора?'; +$lang['DELETE_OLD_GROUP_MOD_EXPL'] = 'Если вы меняете модератора группы и поставите здесь галочку, то предыдущий модератор будет исключен из группы. Если вы ее не поставите, то он станет обычным членом группы.'; +$lang['CLICK_RETURN_GROUPSADMIN'] = '%sВернуться к управлению группами%s'; +$lang['SELECT_GROUP'] = 'Выберите группу'; +$lang['LOOK_UP_GROUP'] = 'Выбрать группу'; + +// Prune Administration +$lang['FORUM_PRUNE'] = 'Чистка форумов'; +$lang['FORUM_PRUNE_EXPLAIN'] = 'Будут удалены темы, в которых не было новых сообщений за выбранное число дней. Если вы не введете число, то будут удалены все темы. Не будут удалены прилепленные темы и объявления. Вам придется удалять такие темы вручную.'; +$lang['DO_PRUNE'] = 'Провести чистку'; +$lang['ALL_FORUMS'] = 'Все форумы'; +$lang['PRUNE_TOPICS_NOT_POSTED'] = 'Удалить темы, в которых не было ответов за данное кол-во дней'; +$lang['TOPICS_PRUNED'] = 'Тем вычищено'; +$lang['POSTS_PRUNED'] = 'Сообщений вычищено'; +$lang['PRUNE_SUCCESS'] = 'Форум успешно почищен'; +$lang['NOT_DAYS'] = 'Вы не указали количество дней'; + +// Word censor +$lang['WORDS_TITLE'] = 'Автоцензор'; +$lang['WORDS_EXPLAIN'] = 'Здесь вы можете добавить, изменить или удалить слова, которые будут автоматически подвергаться цензуре на ваших форумах. Кроме того, пользователи не смогут зарегистрироваться под именами, содержащими эти слова. В списке слов могут использоваться шаблоны (*), т.е. к \'*тест*\' подойдет \'протестировать\', к \'тест*\' — \'тестирование\', к \'*тест\' — \'протест\'.
(Примечание переводчика) Рекомендую пользоваться этой фичей очень аккуратно: например, некие очевидные замены буду неадекватно реагировать на слова \'потребитель\', \'употреблять\' и т.п.'; +$lang['WORD'] = 'Слово'; +$lang['EDIT_WORD_CENSOR'] = 'Изменить автоцензор'; +$lang['REPLACEMENT'] = 'Замена'; +$lang['ADD_NEW_WORD'] = 'Добавить новое слово'; +$lang['UPDATE_WORD'] = 'Обновить автоцензор'; + +$lang['MUST_ENTER_WORD'] = 'Вы должны ввести слово и его замену'; +$lang['NO_WORD_SELECTED'] = 'Не выбрано слово для редактирования'; + +$lang['WORD_UPDATED'] = 'Выбранный автоцензор был успешно изменен'; +$lang['WORD_ADDED'] = 'Автоцензор был успешно добавлен'; +$lang['WORD_REMOVED'] = 'Выбранный автоцензор был успешно удален'; + +$lang['CLICK_RETURN_WORDADMIN'] = '%sВернуться к управлению автоцензором%s'; + +// Mass Email +$lang['MASS_EMAIL_EXPLAIN'] = 'Вы можете разослать e-mail сообщение либо всем вашим пользователям, либо пользователям, входящим в определенную группу. Сообщение будет отправлено на административный адрес, с BCC: всем получателям. Если вы отправляете письмо большой группе людей, то будьте терпеливы: не останавливайте загрузку страницы после нажатия кнопки. Массовая рассылка может занять много времени, вы увидите сообщение, когда выполнение завершится.'; +$lang['COMPOSE'] = 'Текст сообщения'; + +$lang['RECIPIENTS'] = 'Получатели'; +$lang['ALL_USERS'] = 'Все пользователи'; + +$lang['EMAIL_SUCCESSFULL'] = 'Ваше сообщение было отправлено'; +$lang['CLICK_RETURN_MASSEMAIL'] = '%sВернуться к массовой рассылке%s'; + +// Ranks admin +$lang['RANKS_TITLE'] = 'Управление званиями'; +$lang['RANKS_EXPLAIN'] = 'Здесь вы можете добавлять, редактировать, просматривать и удалять звания. Вы также можете создавать специальные звания, которые могут затем быть присвоены пользователям на странице управления пользователями.'; + +$lang['ADD_NEW_RANK'] = 'Новое звание'; +$lang['RANK_TITLE'] = 'Звание'; +$lang['STYLE_COLOR'] = 'Стиль звания'; +$lang['STYLE_COLOR_FAQ'] = 'Укажите class для окраски звания в нужный цвет. Например colorAdmin'; +$lang['RANK_IMAGE'] = 'Картинка к званию'; +$lang['RANK_IMAGE_EXPLAIN'] = 'Здесь вы можете присвоить всем имеющим такое звание специальное изображение. Вы можете указать либо относительный, либо абсолютный путь к изображению'; + +$lang['MUST_SELECT_RANK'] = 'Извините, вы не выбрали звание. Вернитесь и попробуйте еще раз.'; +$lang['NO_ASSIGNED_RANK'] = 'Специального звания не присвоено'; + +$lang['RANK_UPDATED'] = 'Звание было успешно изменено'; +$lang['RANK_ADDED'] = 'Звание было успешно добавлено'; +$lang['RANK_REMOVED'] = 'Звание было успешно удалено'; +$lang['NO_UPDATE_RANKS'] = 'Звание было успешно удалено. Тем не менее, информация о пользователях, у которых было это звание, не была изменена. Вам придется изменить эту информацию вручную.'; + +$lang['CLICK_RETURN_RANKADMIN'] = '%sВернуться к управлению званиями%s'; + +// Disallow Username Admin +$lang['DISALLOW_CONTROL'] = 'Запрещенные имена пользователя'; +$lang['DISALLOW_EXPLAIN'] = 'Здесь вы можете задать имена, которые будут запрещены к использованию. Запрещенные имена могут содержать шаблон \'*\'. Учтите: вы не сможете запретить имя, если уже существует пользователь с таким именем. Вам придется сначала удалить пользователя, а уже потом запретить имя.'; + +$lang['DELETE_DISALLOW'] = 'Удалить'; +$lang['DELETE_DISALLOW_TITLE'] = 'Удалить запрещенное имя пользователя'; +$lang['DELETE_DISALLOW_EXPLAIN'] = 'Вы можете убрать запрещенное имя, выбрав его из списка и нажав кнопку «сохранить»'; + +$lang['ADD_DISALLOW'] = 'Добавить'; +$lang['ADD_DISALLOW_TITLE'] = 'Добавить запрещенное имя пользователя'; +$lang['ADD_DISALLOW_EXPLAIN'] = 'Вы можете запретить имя пользователя, используя шаблон \'*\', который подходит к любому символу'; + +$lang['NO_DISALLOWED'] = 'Нет запрещенных имен'; + +$lang['DISALLOWED_DELETED'] = 'Запрещенное имя пользователя было успешно удалено'; +$lang['DISALLOW_SUCCESSFUL'] = 'Запрещенное имя пользователя было успешно добавлено'; +$lang['DISALLOWED_ALREADY'] = 'Имя, которое вы пытаетесь запретить, либо уже запрещено, либо есть в списке нецензурных слов, либо существует пользователь с подходящим именем'; + +$lang['CLICK_RETURN_DISALLOWADMIN'] = '%sВернуться к управлению запрещенными именами%s'; + +// Version Check +$lang['VERSION_INFORMATION'] = 'Информация о версии TorrentPier'; + +// Login attempts configuration +$lang['MAX_LOGIN_ATTEMPTS'] = 'Разрешено попыток входа'; +$lang['MAX_LOGIN_ATTEMPTS_EXPLAIN'] = 'Количество разрешенных попыток входа на трекер. Для отключения поставьте 0.'; +$lang['LOGIN_RESET_TIME'] = 'Время блокировки имени пользователя.'; +$lang['LOGIN_RESET_TIME_EXPLAIN'] = 'Время, через которое пользователь сможет войти на трекер, после превышения количества разрешенных попыток входа (в минутах).'; + +// Permissions List +$lang['PERMISSIONS_LIST'] = 'Список прав доступа'; +$lang['AUTH_CONTROL_CATEGORY'] = 'Права доступа к категориям'; +$lang['FORUM_AUTH_LIST_EXPLAIN'] = 'Здесь вы можете установить права доступа для каждого форума. Вы можете изменить права с помощью простого или продвинутого режима, нажав на название форума. Помните, что изменение уровня прав доступа к форумам повлияет на то, какие пользователи смогут выполнять в них различные действия.'; +$lang['CAT_AUTH_LIST_EXPLAIN'] = 'Здесь вы можете установить права доступа для каждого форума в этой категории. Вы можете изменить права отдельных форумов с помощью простого или продвинутого режима, нажав на название форума. Кроме того, вы можете установить общие права для всех форумов в этой категории с помощью выпадающего меню в нижней части страницы. Помните, что изменение уровня прав доступа к форумам повлияет на то, какие пользователи смогут выполнять в них различные действия.'; +$lang['FORUM_AUTH_LIST_EXPLAIN_ALL'] = 'Все пользователи'; +$lang['FORUM_AUTH_LIST_EXPLAIN_REG'] = 'Все зарегистрированые пользователи'; +$lang['FORUM_AUTH_LIST_EXPLAIN_PRIVATE'] = 'Только пользователи со спец правами'; +$lang['FORUM_AUTH_LIST_EXPLAIN_MOD'] = 'Только модераторы этого форума'; +$lang['FORUM_AUTH_LIST_EXPLAIN_ADMIN'] = 'Только администраторы'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_VIEW'] = '%s могут просматривать этот форум'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_READ'] = '%s могут просматривать сообщения в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_POST'] = '%s могут создавать сообщения в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_REPLY'] = '%s могут отвечать на сообщения в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_EDIT'] = '%s могут редактировать сообщения в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_DELETE'] = '%s могут удалять сообщения в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_STICKY'] = '%s могут прикреплять темы в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_ANNOUNCE'] = '%s могут размещать объявления в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_VOTE'] = '%s могут голосовать в опросах этого форума'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_POLLCREATE'] = '%s могут создавать опросы в этом форуме'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_ATTACHMENTS'] = '%s могут прикреплять вложения'; +$lang['FORUM_AUTH_LIST_EXPLAIN_AUTH_DOWNLOAD'] = '%s могут скачивать вложения'; + +// Misc +$lang['SF_SHOW_ON_INDEX'] = 'Показывать на главной'; +$lang['SF_PARENT_FORUM'] = 'Родительский форум'; +$lang['SF_NO_PARENT'] = 'Нет родительского форума'; +$lang['TEMPLATE'] = 'Шаблон'; +$lang['SYNC'] = 'Синхронизировать'; + +// Mods +$lang['MAX_NEWS_TITLE'] = 'Макс. длина новости'; +$lang['NEWS_COUNT'] = 'Сколько показывать новостей'; +$lang['NEWS_FORUM_ID'] = 'Из каких форумов выводить
Из нескольких форумов выводите, через запятую. Например 1,2,3
'; +$lang['NOAVATAR'] = 'Нет аватара'; +$lang['TRACKER_STATS'] = 'Статистика по трекеру'; +$lang['WHOIS_INFO'] = 'Информация о IP адресе'; +$lang['SHOW_MOD_HOME_PAGE'] = 'Показывать модераторов на главной'; +$lang['PREMOD_HELP'] = '

Премодерация

Если у релизера нет раздач со статусом , # или T в текущем разделе, включая подразделы, то раздача автоматически получает данный статус
'; +$lang['TOR_COMMENT'] = '

Комментарий к статусу раздачи

Комметарий позволяет указать релизеру допущенные ошибки. При недооформленных статусах релизеру доступна форма ответа о исправлении релиза
'; +$lang['SEED_BONUS_ADD'] = '

Добавление сидбонуса

Кол-во раздаваемых раздач пользователем и размер начисления бонусов за них (начисления раз в час)
'; +$lang['SEED_BONUS_RELEASE'] = 'до N-числа релизов'; +$lang['SEED_BONUS_POINTS'] = 'бонусов в час'; +$lang['SEED_BONUS_TOR_SIZE'] = '

Минимальный размер раздачи, за который будут начисляться бонусы

Если хотите начислять бонусы за все раздачи, оставьте поле пустым.
'; +$lang['SEED_BONUS_USER_REGDATA'] = '

Минимальный стаж пользователя на трекере, после которого будут начисляться бонусы

Если хотите начислять бонусы всем пользователям, оставьте поле пустым.
'; +$lang['SEED_BONUS_WARNING'] = 'ВНИМАНИЕ! Сидбонусы должны быть в порядке возрастания'; +$lang['SEED_BONUS_EXCHANGE'] = 'Настройка обмена сидбонусов'; +$lang['SEED_BONUS_ROPORTION'] = 'Добавление пропорции для обмена бонусов на GB'; + +// Modules, this replaces the keys used +$lang['CONTROL_PANEL'] = 'Контрольная Панель'; +$lang['SHADOW_ATTACHMENTS'] = 'Теневые приложения'; +$lang['FORBIDDEN_EXTENSIONS'] = 'Запрещенные Расширения'; +$lang['EXTENSION_CONTROL'] = 'Контроль Расширений'; +$lang['EXTENSION_GROUP_MANAGE'] = 'Контроль Групп Расширений'; +$lang['SPECIAL_CATEGORIES'] = 'Специальные Категории'; +$lang['SYNC_ATTACHMENTS'] = 'Синхронизация Приложений'; +$lang['QUOTA_LIMITS'] = 'Ограничение Квоты'; + +// Attachments -> Management +$lang['ATTACH_SETTINGS'] = 'Конфигурация приложений'; +$lang['MANAGE_ATTACHMENTS_EXPLAIN'] = 'Здесь Вы можете конфигурировать главные настройки для Мода Приложений. Если Вы нажмете на кнопку "Проверить Настройки", Мод Приложений проведет несколько тестов, чтобы проверить - все ли правильно настроено. Если у Вас возникли проблемы с закачиванием файлов, используйте эту функцию, чтобы получить подробную информацию об ошибке.'; +$lang['ATTACH_FILESIZE_SETTINGS'] = 'Настройки размеров приложений'; +$lang['ATTACH_NUMBER_SETTINGS'] = 'Настройка количества приложений'; +$lang['ATTACH_OPTIONS_SETTINGS'] = 'Настройка приложений'; + +$lang['UPLOAD_DIRECTORY'] = 'Папка для закачанных приложений'; +$lang['UPLOAD_DIRECTORY_EXPLAIN'] = 'Задайте относительный путь от папки форума к папке приложений. Например, задайте \'files\', если путь к форуму http://www.yourdomain.com/torrentpier и папка приложений находится в http://www.yourdomain.com/torrentpier/files.'; +$lang['ATTACH_IMG_PATH'] = 'Иконка для приложений'; +$lang['ATTACH_IMG_PATH_EXPLAIN'] = 'Эта картинка появляется возле ссылок к приложениям в персональных сообщениях. Оставьте это поле пустым, если не хотите видеть иконку. Эта конфигурация будет переписана настройками в Контроле Групп Расширений.'; +$lang['ATTACH_TOPIC_ICON'] = 'Иконка для тем с приложениями'; +$lang['ATTACH_TOPIC_ICON_EXPLAIN'] = 'Эта картинка появляется возле тем с приложениями. Оставьте это поле пустым, если не хотите видеть иконку.'; +$lang['ATTACH_DISPLAY_ORDER'] = 'Последовательность отображения приложений'; +$lang['ATTACH_DISPLAY_ORDER_EXPLAIN'] = 'Здесь Вы можете выбрать, как показывать приложения в постах/личных сообщениях - в порядке убывания (самое новое приложение сначала) или в порядке возрастания (самое старое приложение сначала).'; +$lang['SHOW_APCP'] = 'Использовать новую панель контроля приложений'; +$lang['SHOW_APCP_EXPLAIN'] = 'Выберите, хотите ли Вы использовать отдельную панель контроля приложений (да), или старый метод с двумя боксами для приложений и редактирования приложений (нет) в окне сообщения. Трудно объяснить, как это выглядит, поэтому попробуйте сами.'; + +$lang['MAX_FILESIZE_ATTACH'] = 'Максимальный размер приложений'; +$lang['MAX_FILESIZE_ATTACH_EXPLAIN'] = 'Максимальный размер для приложений. Ноль значит неограниченно. Эта настройка зависит от конфигурации Вашего сервера. Например, если php на Вашем сервере позволяет закачивать файлы не более 2 МБ, то эту величину изменить невозможно.'; +$lang['ATTACH_QUOTA'] = 'Квота приложений'; +$lang['ATTACH_QUOTA_EXPLAIN'] = 'Максимальный размер для всех приложений. Ноль значит неограниченно.'; +$lang['MAX_FILESIZE_PM'] = 'Максимальный размер в папке для личных сообщений'; +$lang['MAX_FILESIZE_PM_EXPLAIN'] = 'Максимальная величина, которую приложения могут занимать в личных почтовых ящиках каждого пользователя. Ноль значит неограниченно.'; +$lang['DEFAULT_QUOTA_LIMIT'] = 'Стандартное ограничение квоты'; +$lang['DEFAULT_QUOTA_LIMIT_EXPLAIN'] = 'Здесь Вы можете конфигурировать стандартное ограничение квоты для новых пользователей или пользователей без установленных ограничений. Настройка "Без Ограничений" для тех, кто не хочет использовать квоты приложений. Вместо этого будут использованы стандартные настройки, заданные в контрольной панеле.'; + +$lang['MAX_ATTACHMENTS'] = 'Максимальное количество приложений'; +$lang['MAX_ATTACHMENTS_EXPLAIN'] = 'Максимальное количество приложений, разрешенных в каждом сообщении.'; +$lang['MAX_ATTACHMENTS_PM'] = 'Максимальное количество приложений разрешенных в каждом личном сообщении'; +$lang['MAX_ATTACHMENTS_PM_EXPLAIN'] = 'Задайте максимальное количество приложений, разрешенное в каждом личном сообщении.'; + +$lang['DISABLE_MOD'] = 'Выключить мод приложений'; +$lang['DISABLE_MOD_EXPLAIN'] = 'Эта настройка используется главным образом для проверки новых скинов, она выключает все функции Мода Приложений, кроме административной панели.'; +$lang['PM_ATTACHMENTS'] = 'Разрешить приложения в личных сообщениях'; +$lang['PM_ATTACHMENTS_EXPLAIN'] = 'Разрешить/Запретить добавлять приложения к личным сообщениям.'; +$lang['ATTACHMENT_TOPIC_REVIEW'] = 'Показывать приложения в окне обзора сообщений темы при написании ответа?'; +$lang['ATTACHMENT_TOPIC_REVIEW_EXPLAIN'] = 'Если поставите "да", все приложения будут показываться в окне обзора сообщений темы.'; + +// Attachments -> Shadow Attachments +$lang['SHADOW_ATTACHMENTS_EXPLAIN'] = 'Здесь Вы можете удалить приложения, если сами файлы исчезли с сервера, или удалить файлы, которые не прикреплены ни к каким сообщениям. Вы можете скачать или посмотреть файл кликнув по нему. Если ссылки нет, то файл не существует.'; +$lang['SHADOW_ATTACHMENTS_FILE_EXPLAIN'] = 'Удалить все приложения, которые существуют на сервере и не прикреплены ни к какому сообщению.'; +$lang['SHADOW_ATTACHMENTS_ROW_EXPLAIN'] = 'Удалить всю информацию про приложения, которые больше не существуют в системе.'; +$lang['EMPTY_FILE_ENTRY'] = 'Занесение пустого файла'; + +// Attachments -> Sync +$lang['SYNC_THUMBNAIL_RESETTED'] = 'Обновлена миниатюра для приложения: %s'; // replace %s with physical Filename +$lang['ATTACH_SYNC_FINISHED'] = 'Синхронизация приложений окончена.'; +$lang['SYNC_TOPICS'] = 'Синхронизация тем'; +$lang['SYNC_POSTS'] = 'Синхронизация сообщений'; +$lang['SYNC_THUMBNAILS'] = 'Синхронизация миниатюр'; + +// Extensions -> Extension Control +$lang['MANAGE_EXTENSIONS'] = 'Конфигурация расширений'; +$lang['MANAGE_EXTENSIONS_EXPLAIN'] = 'Здесь Вы можете настроить расширения файлов. Если Вы хотите разрешить/запретить определенные расширения, пожалуйста, используйте Контроль Групп Расширений.'; +$lang['EXPLANATION'] = 'Обьяснение'; +$lang['EXTENSION_GROUP'] = 'Группа Расширений'; +$lang['INVALID_EXTENSION'] = 'Неправильное расширения'; +$lang['EXTENSION_EXIST'] = 'Расширение %s уже существует'; // replace %s with the Extension +$lang['UNABLE_ADD_FORBIDDEN_EXTENSION'] = 'Расширение %s запрещено, Вы не можете добавить его к группе разрешенных расширений'; // replace %s with Extension + +// Extensions -> Extension Groups Management +$lang['MANAGE_EXTENSION_GROUPS'] = 'Контроль Групп Расширений'; +$lang['MANAGE_EXTENSION_GROUPS_EXPLAIN'] = 'Здесь Вы можете добавить, убрать или изменить группы расширений, Вы можете выключить группы расширений, добавить их в определенные категории, изменить механизм скачивания и выбрать иконку, которая будет отображаться приложением, которое относится к определенной группе.'; +$lang['SPECIAL_CATEGORY'] = 'Специальная категория'; +$lang['CATEGORY_IMAGES'] = 'Картинки'; +$lang['ALLOWED'] = 'Разрешено'; +$lang['ALLOWED_FORUMS'] = 'Разрешенные форумы'; +$lang['EXT_GROUP_PERMISSIONS'] = 'Права Групп'; +$lang['DOWNLOAD_MODE'] = 'Метод скачивания'; +$lang['UPLOAD_ICON'] = 'Иконка для закачки'; +$lang['MAX_GROUPS_FILESIZE'] = 'Максимальный размер файла'; +$lang['EXTENSION_GROUP_EXIST'] = 'Группа расширений %s уже существует'; // replace %s with the group name + +// Extensions -> Special Categories +$lang['MANAGE_CATEGORIES'] = 'Контроль специальных категорий'; +$lang['MANAGE_CATEGORIES_EXPLAIN'] = 'Здесь Вы можете настраивать специальные категории. Вы можете задать специальные параметры для специальных категорий прикрепленных к группам расширений.'; +$lang['SETTINGS_CAT_IMAGES'] = 'Настройки для специальной категории: Изображения'; +$lang['SETTINGS_CAT_FLASH'] = 'Настройки для специальной категории: Flash файлы'; +$lang['DISPLAY_INLINED'] = 'Отображать изображения в сообщениях'; +$lang['DISPLAY_INLINED_EXPLAIN'] = 'Выберите отображать ли изображения прямо в сообщениях (да) или отображать изображения в виде ссылок на них?'; +$lang['MAX_IMAGE_SIZE'] = 'Максимальная величина изображения'; +$lang['MAX_IMAGE_SIZE_EXPLAIN'] = 'Здесь Вы можете задать максимальную величину изображения (ширина х высота в пикселях).
Если установлен ноль, то эта функция отключена. С некоторыми изображениями эта функция не будет работать из-за ограничений в PHP.'; +$lang['IMAGE_LINK_SIZE'] = 'Величина изображений, которые будут автоматически показываться как ссылка'; +$lang['IMAGE_LINK_SIZE_EXPLAIN'] = 'Картинки установленной величины будут отображаться как ссылка, а не прямо в сообщении,
если включена функция "Отображать изображения в сообщениях".
Если установлен ноль, эта функция отключена. С некоторыми изображениями эта функция не будет работать из-за ограничений в PHP.'; +$lang['ASSIGNED_GROUP'] = 'Прикрепленная группа'; + +$lang['IMAGE_CREATE_THUMBNAIL'] = 'Создать миниатюру'; +$lang['IMAGE_CREATE_THUMBNAIL_EXPLAIN'] = 'Всегда создавать миниатюры. Эта функция замещает все настройки в этой специальной категории, кроме настройки "Максимальная величина изображения". При включении этой функции в сообщении будет отображаться миниатюра, пользователь может на нее нажать, чтобы открыть само изображение.
Пожалуйста, заметьте, что для этой функции необходим Imagick, если он не инсталлирован или если включен Safe-Mode, будет использоваться PHP расширения GD. Если тип изображения не поддерживается PHP, эта функция не будет задействована.'; +$lang['IMAGE_MIN_THUMB_FILESIZE'] = 'Минимальный размер миниатюры'; +$lang['IMAGE_MIN_THUMB_FILESIZE_EXPLAIN'] = 'Если изображение меньше, чем данный размер, миниатюра создаваться не будет, потому что само изображение уже достаточно маленькое.'; +$lang['IMAGE_IMAGICK_PATH'] = 'Приложение Imagick (полный путь)'; +$lang['IMAGE_IMAGICK_PATH_EXPLAIN'] = 'Задайте путь к программе конвертации Imagick, обычно /usr/bin/convert (в windows: c:/imagemagick/convert.exe).'; +$lang['IMAGE_SEARCH_IMAGICK'] = 'Поиск Imagick'; + +$lang['USE_GD2'] = 'Включить использование GD2 расширения'; +$lang['USE_GD2_EXPLAIN'] = 'PHP может быть скомпилировано с расширением GD1 или GD2 для работы с изображениями. Чтобы правильно создать миниатюры без imagemagick, Мод приложений может использовать два разных способа, основываясь на Вашем выборе в данной опции. Если Ваши Эскизы будут плохого качества или обезображены, попробуйте изменить эту настройку.'; +$lang['ATTACHMENT_VERSION'] = 'Версия Мода приложений (Attachment Mod) %s'; // %s is the version number + +// Extensions -> Forbidden Extensions +$lang['MANAGE_FORBIDDEN_EXTENSIONS'] = 'Управление запрещенными расширениями'; +$lang['MANAGE_FORBIDDEN_EXTENSIONS_EXPLAIN'] = 'Здесь Вы можете добавить или удалить запрещенное расширение. Расширения php, php3, php4 запрещены для безопасности по умолчанию, и их невозможно удалить.'; +$lang['FORBIDDEN_EXTENSION_EXIST'] = 'Запрещенное расширение %s уже существует'; // replace %s with the extension +$lang['EXTENSION_EXIST_FORBIDDEN'] = 'Расширение %s уже задано в разрешенных расширениях, пожалуйста, удалите его оттуда, перед тем, как добавлять его здесь.'; // replace %s with the extension + +// Extensions -> Extension Groups Control -> Group Permissions +$lang['GROUP_PERMISSIONS_TITLE_ADMIN'] = 'Права групп расширений -> \'%s\''; // Replace %s with the Groups Name +$lang['GROUP_PERMISSIONS_EXPLAIN'] = 'Здесь Вы можете ограничить использование определенных групп расширений в форумах (как задано в боксе "Разрешенные Форумы"). По умолчанию разрешены все группы расширений во всех форумах, в которых пользователь может добавлять файлы (т.е. нормальный метод, который использовался в Моде приложений с самого начала). Если Вы разрешите только определенные форумы, то вариант "Все Форумы" исчезнет. Вы сможете снова добавить все форумы в любое время. Если Вы добавите новый раздел на Вашем форуме и разрешение установлено на "Все форумы", то ничего не изменится. Но если Вы изменили или ограничили доступ к определенным форумам, Вы должны вернуться сюда и добавить этот новый форум. Это можно было бы сделать автоматически, но Вам бы пришлось изменять много файлов, поэтому автор решил использовать текущий вариант. Пожалуйста, заметьте, что здесь будут перечислены все Вами форумы.'; +$lang['NOTE_ADMIN_EMPTY_GROUP_PERMISSIONS'] = 'Замечание:
В ниже перечисленных форумах пользователи обычно могут добавлять файлы, но так как никакие группы расширений там не разрешены, пользователи не смогут ничего прикрепить. Если они попробуют, они увидят сообщение об ошибке. Может быть Вы хотите установить разрешение \'Добавить файлы\' для администрации в этих форумах.

'; +$lang['ADD_FORUMS'] = 'Добавить форумы'; +$lang['ADD_SELECTED'] = 'Добавить выбранные'; +$lang['PERM_ALL_FORUMS'] = 'Все форумы'; + +// Attachments -> Quota Limits +$lang['MANAGE_QUOTAS'] = 'Настройка лимита квоты для расширений'; +$lang['MANAGE_QUOTAS_EXPLAIN'] = 'Здесь Вы можете добавить/удалить/изменить квоты для расширений. Позднее Вы можете прикрепить эти ограничения к определенным пользователям или группам. Чтобы прикрепить ограничение к пользователю, откройте Пользователи->Управление, выберите пользователя и Вы увидите необходимые настройки внизу страницы. Чтобы прикрепить ограничение к группе, откройте Группы->Управление, выберите группу и Вы увидите панель настроек. Если Вы хотите увидеть, какие пользователи и группы прикреплены к определенным ограничениям, нажмите на "Посмотреть" слева от описания квоты.'; +$lang['ASSIGNED_USERS'] = 'Прикрепленные пользователи'; +$lang['ASSIGNED_GROUPS'] = 'Прикрепленные группы'; +$lang['QUOTA_LIMIT_EXIST'] = 'Ограничение %s уже существует.'; // Replace %s with the Quota Description + +// Attachments -> Control Panel +$lang['CONTROL_PANEL_TITLE'] = 'Контрольная панель приложений'; +$lang['CONTROL_PANEL_EXPLAIN'] = 'Здесь Вы можете увидеть и настроить все приложения в зависимости от пользователей, приложений, количества просмотров и т.п.'; +$lang['FILECOMMENT'] = 'Комментарий к файлу'; + +// Control Panel -> Search +$lang['SEARCH_WILDCARD_EXPLAIN'] = 'Используйте *, если не знаете точного названия'; +$lang['SIZE_SMALLER_THAN'] = 'Приложение меньше чем (в байтах)'; +$lang['SIZE_GREATER_THAN'] = 'Приложение больше чем (в байтах)'; +$lang['COUNT_SMALLER_THAN'] = 'Количество скачиваний меньше чем'; +$lang['COUNT_GREATER_THAN'] = 'Количество скачиваний больше чем'; +$lang['MORE_DAYS_OLD'] = 'Старее, чем это количество дней'; +$lang['NO_ATTACH_SEARCH_MATCH'] = 'Не найдено ни одного приложения, которое бы отвечало Вашему поиску'; + +// Control Panel -> Statistics +$lang['NUMBER_OF_ATTACHMENTS'] = 'Количество приложений'; +$lang['TOTAL_FILESIZE'] = 'Общий размер всех приложений'; +$lang['NUMBER_POSTS_ATTACH'] = 'Количество сообщений с приложениями'; +$lang['NUMBER_TOPICS_ATTACH'] = 'Количество тем с приложениями'; +$lang['NUMBER_USERS_ATTACH'] = 'Уникальных пользователей прикрепивших приложения'; +$lang['NUMBER_PMS_ATTACH'] = 'Количество приложений в личных сообщениях'; +$lang['ATTACHMENTS_PER_DAY'] = 'Прикрепления за день'; + +// Control Panel -> Attachments +$lang['STATISTICS_FOR_USER'] = 'Статистика приложений для %s'; // replace %s with username +$lang['DOWNLOADS'] = 'Скачиваний'; +$lang['POST_TIME'] = 'Дата сообщения'; +$lang['POSTED_IN_TOPIC'] = 'Размещено в теме'; +$lang['SUBMIT_CHANGES'] = 'Сохранить изменения'; + +// Sort Types +$lang['SORT_ATTACHMENTS'] = 'Приложения'; +$lang['SORT_SIZE'] = 'Размер'; +$lang['SORT_FILENAME'] = 'Название файла'; +$lang['SORT_COMMENT'] = 'Комментарий'; +$lang['SORT_EXTENSION'] = 'Расширение'; +$lang['SORT_DOWNLOADS'] = 'Скачено'; +$lang['SORT_POSTTIME'] = 'Дата сообщения'; + +// View Types +$lang['VIEW_STATISTIC'] = 'Статистика'; +$lang['VIEW_SEARCH'] = 'Поиск'; +$lang['VIEW_USERNAME'] = 'Имя'; +$lang['VIEW_ATTACHMENTS'] = 'Приложения'; + +// Successfully updated +$lang['ATTACH_CONFIG_UPDATED'] = 'Конфигурация приложений успешно изменена'; +$lang['CLICK_RETURN_ATTACH_CONFIG'] = 'Нажмите %sтут%s, чтобы вернуться к конфигурации приложений'; +$lang['TEST_SETTINGS_SUCCESSFUL'] = 'Тест настроек окончен, конфигурация в порядке.'; + +// Some basic definitions +$lang['ATTACHMENTS'] = 'Приложения'; +$lang['EXTENSIONS'] = 'Расширения'; +$lang['EXTENSION'] = 'Расширение'; + +$lang['RETURN_CONFIG'] = '%sВернуться к настройкам%s'; +$lang['CONFIG_UPD'] = 'Конфигурация успешно изменена'; +$lang['SET_DEFAULTS'] = 'Значения по умолчанию'; + +// Tracker config +$lang['TRACKER_CFG_TITLE'] = 'Трекер'; +$lang['FORUM_CFG_TITLE'] = 'Настройки форумов'; +$lang['TRACKER_SETTINGS'] = 'Настройки трекера'; + +$lang['CHANGES_DISABLED'] = 'Изменения недоступны (смотрите файл config/tracker.php)'; + +$lang['OFF_TRACKER'] = 'Отключить трекер'; +$lang['OFF_REASON'] = 'Причина отключения'; +$lang['OFF_REASON_EXPL'] = 'этот текст будет отправляться клиенту пока трекер отключен'; +$lang['AUTOCLEAN_EXPL'] = 'периодически очищать таблицу peer\'s - не отключайте без особой необходимости!'; +$lang['COMPACT_MODE'] = 'Компактный режим'; +$lang['COMPACT_MODE_EXPL'] = '"Да" - трекер будет работать только в компактном режиме
"Нет" - будет определяется клиентом
в компактном режиме расход трафика наименьший, но могут возникнуть проблемы из-за несовместимости с очень старыми клиентами'; +$lang['BROWSER_REDIRECT_URL'] = 'URL-адрес перенаправления браузера'; +$lang['BROWSER_REDIRECT_URL_EXPL'] = 'переадресация на этот URL при попытке зайти на трекер Web browser\'ом
оставьте пустым для отключения'; + +$lang['ANNOUNCE_INTERVAL_HEAD'] = 'Разное'; +$lang['ANNOUNCE_INTERVAL'] = 'Announce интервал'; +$lang['ANNOUNCE_INTERVAL_EXPL'] = 'пауза между announcements'; +$lang['NUMWANT'] = 'Значение numwant'; +$lang['NUMWANT_EXPL'] = 'количество источников (peers) отправляемых клиенту'; +$lang['EXPIRE_FACTOR'] = 'Фактор смерти peer\'ов'; +$lang['EXPIRE_FACTOR_EXPL'] = 'время жизни peer\'а расчитывается как announce интервал умноженный на фактор смерти peer\'а
должен быть не меньше 1'; +$lang['IGNORE_GIVEN_IP'] = 'Игнорировать указанный клиентом IP'; +$lang['UPDATE_DLSTAT'] = 'Вести учет скачанного/отданного юзером'; + +$lang['LIMIT_ACTIVE_TOR_HEAD'] = 'Ограничения'; +$lang['LIMIT_ACTIVE_TOR'] = 'Ограничить количество одновременных закачек'; +$lang['LIMIT_SEED_COUNT'] = 'Seeding ограничение'; +$lang['LIMIT_SEED_COUNT_EXPL'] = 'ограничение на количество одновременных раздач
0 - нет ограничений'; +$lang['LIMIT_LEECH_COUNT'] = 'Leeching ограничение'; +$lang['LIMIT_LEECH_COUNT_EXPL'] = 'ограничение на количество одновременных закачек
0 - нет ограничений'; +$lang['LEECH_EXPIRE_FACTOR'] = 'Фактор смерти личей'; +$lang['LEECH_EXPIRE_FACTOR_EXPL'] = 'сколько минут считать начатую закачку активной, независимо от того, остановил ли ее юзер
0 - учитывать остановку'; +$lang['LIMIT_CONCURRENT_IPS'] = "Ограничить количество подключений с разных IP"; +$lang['LIMIT_CONCURRENT_IPS_EXPL'] = 'считается отдельно для каждого торрента'; +$lang['LIMIT_SEED_IPS'] = 'Seeding IP ограничение'; +$lang['LIMIT_SEED_IPS_EXPL'] = "раздаваь можно не более чем с хх IP's
(0 - нет ограничений)"; +$lang['LIMIT_LEECH_IPS'] = 'Leeching IP ограничение'; +$lang['LIMIT_LEECH_IPS_EXPL'] = "скачивать можно не более чем с хх IP's
(0 - нет ограничений)"; + +$lang['USE_AUTH_KEY_HEAD'] = 'Авторизация'; +$lang['USE_AUTH_KEY'] = 'Пасскей'; +$lang['USE_AUTH_KEY_EXPL'] = 'включить авторизацию по пасскею'; +$lang['AUTH_KEY_NAME'] = 'Имя ключа пасскей'; +$lang['AUTH_KEY_NAME_EXPL'] = 'имя ключа, который будет добавляться в GET запросе к announce url для идентификации юзера'; +$lang['ALLOW_GUEST_DL'] = 'Разрешить "гостям" (неавторизованным юзерам) доступ к трекеру'; +$lang['ADD_RETRACKER'] = 'Добавлять ретрекер в торрент-файлы'; + +// Forum config +$lang['FORUM_CFG_EXPL'] = 'Настройки форума'; + +$lang['BT_SELECT_FORUMS'] = 'Форумы, в которых:'; +$lang['BT_SELECT_FORUMS_EXPL'] = 'для выделения нескольких форумов, отмечайте их с нажатой клавишей Ctrl'; + +$lang['REG_TORRENTS'] = 'Регистрация торрентов'; +$lang['DISALLOWED'] = 'Запрещено'; +$lang['ALLOW_REG_TRACKER'] = 'Разрешена регистрация торрентов на трекере'; +$lang['ALLOW_PORNO_TOPIC'] = 'Разрешено размещать контент 18+'; +$lang['SHOW_DL_BUTTONS'] = 'Показывать кнопки для изменения DL-статуса'; +$lang['SELF_MODERATED'] = 'Автор топика может перенести его в другой форум'; + +$lang['BT_ANNOUNCE_URL_HEAD'] = 'URL-адрес анонсера'; +$lang['BT_ANNOUNCE_URL'] = 'URL-адрес анонсера'; +$lang['BT_ANNOUNCE_URL_EXPL'] = 'дополнительные разрешенные адреса можно задать в "includes/torrent_announce_urls.php"'; +$lang['BT_DISABLE_DHT'] = 'Запретить DHT сети'; +$lang['BT_DISABLE_DHT_EXPL'] = 'Запретить обмен пирами и DHT (рекомендовано для приватных сетей, только url announce)'; +$lang['BT_CHECK_ANNOUNCE_URL'] = 'Проверять announce url'; +$lang['BT_CHECK_ANNOUNCE_URL_EXPL'] = 'разрешить регистрацию на трекере только если announce url входит в список разрешенных'; +$lang['BT_REPLACE_ANN_URL'] = 'Заменять announce url'; +$lang['BT_REPLACE_ANN_URL_EXPL'] = 'заменять оригинальный announce url в .torrent файлах на ваш'; +$lang['BT_DEL_ADDIT_ANN_URLS'] = 'Удалять все дополнительные announce urls'; +$lang['BT_DEL_ADDIT_ANN_URLS_EXPL'] = 'если торрент содержит адреса других трекеров, они будут удалены'; + +$lang['BT_SHOW_PEERS_HEAD'] = 'Список пиров'; +$lang['BT_SHOW_PEERS'] = 'Показывать список источников (seeders/leechers)'; +$lang['BT_SHOW_PEERS_EXPL'] = 'будет выводиться над топиком с торрентом'; +$lang['BT_SHOW_PEERS_MODE'] = 'По умолчанию показывать источники как:'; +$lang['BT_SHOW_PEERS_MODE_COUNT'] = 'Только количество'; +$lang['BT_SHOW_PEERS_MODE_NAMES'] = 'Только имена'; +$lang['BT_SHOW_PEERS_MODE_FULL'] = 'Подробно'; +$lang['BT_ALLOW_SPMODE_CHANGE'] = 'Разрешить подробный показ источников'; +$lang['BT_ALLOW_SPMODE_CHANGE_EXPL'] = 'если выбрано "нет" - будет доступен только режим по умолчанию'; +$lang['BT_SHOW_IP_ONLY_MODER'] = 'IP могут видеть только модераторы'; +$lang['BT_SHOW_PORT_ONLY_MODER'] = 'Port могут видеть только модераторы'; + +$lang['BT_SHOW_DL_LIST_HEAD'] = 'DL-список'; +$lang['BT_SHOW_DL_LIST'] = 'Показывать DL-List при просмотре топика'; +$lang['BT_DL_LIST_ONLY_1ST_PAGE'] = 'Показывать DL-List только на первой странице топика'; +$lang['BT_DL_LIST_ONLY_COUNT'] = 'Показывать только количество'; +$lang['BT_SHOW_DL_LIST_BUTTONS'] = 'Показывать кнопки для изменения DL-статуса'; +$lang['BT_SHOW_DL_BUT_WILL'] = $lang['DLWILL']; +$lang['BT_SHOW_DL_BUT_DOWN'] = $lang['DLDOWN']; +$lang['BT_SHOW_DL_BUT_COMPL'] = $lang['DLCOMPLETE']; +$lang['BT_SHOW_DL_BUT_CANCEL'] = $lang['DLCANCEL']; + +$lang['BT_ADD_AUTH_KEY_HEAD'] = 'Пасскей'; +$lang['BT_ADD_AUTH_KEY'] = 'Aвтодобавление пасскея к торрент-файлам перед их скачиванием'; + +$lang['BT_TOR_BROWSE_ONLY_REG_HEAD'] = 'Torrent browser (трекер)'; +$lang['BT_TOR_BROWSE_ONLY_REG'] = 'Torrent browser (tracker.php) не доступен для гостей'; +$lang['BT_SEARCH_BOOL_MODE'] = 'Разрешить полнотекстовый поиск в логическом режиме'; +$lang['BT_SEARCH_BOOL_MODE_EXPL'] = 'использовать *, +, - и т.д. при поиске'; + +$lang['BT_SHOW_DL_STAT_ON_INDEX_HEAD'] = "Разное"; +$lang['BT_SHOW_DL_STAT_ON_INDEX'] = "Показывать UL/DL статистику юзера на главной странице форума"; +$lang['BT_NEWTOPIC_AUTO_REG'] = 'Регистрировать торренты на трекере для новых топиков'; +$lang['BT_SET_DLTYPE_ON_TOR_REG'] = 'Изменять статус топика на "Download" во время регистрации торрента на трекере'; +$lang['BT_SET_DLTYPE_ON_TOR_REG_EXPL'] = 'не зависит от того, разрешено ли в этом форуме создавать Download-топики (в настройках форумов)'; +$lang['BT_UNSET_DLTYPE_ON_TOR_UNREG'] = 'Изменять статус топика на "Normal" во время удаления торрента с трекера'; + +// Release +$lang['TEMPLATE_DISABLE'] = 'Шаблон отключен'; +$lang['FOR_NEW_TEMPLATE'] = 'для новых шаблонов!'; +$lang['CHANGED'] = 'Изменено'; +$lang['REMOVED'] = 'Удалено'; +$lang['QUESTION'] = 'Вы уверены, что хотите удалить?'; + +$lang['CRON_LIST'] = 'Список задач'; +$lang['CRON_ID'] = 'ID'; +$lang['CRON_ACTIVE'] = 'Вкл'; +$lang['CRON_ACTIVE_EXPL'] = 'Активность задачи'; +$lang['CRON_TITLE'] = 'Название задачи'; +$lang['CRON_SCRIPT'] = 'Скрипт'; +$lang['CRON_SCHEDULE'] = 'Запуск'; +$lang['CRON_LAST_RUN'] = 'Посл. запуск'; +$lang['CRON_NEXT_RUN'] = 'След. запуск'; +$lang['CRON_RUN_COUNT'] = 'Запусков'; +$lang['CRON_MANAGE'] = 'Управление'; +$lang['CRON_OPTIONS'] = 'Настройки крона'; + +$lang['CRON_ENABLED'] = 'Крон включен'; +$lang['CRON_CHECK_INTERVAL'] = 'Проверка (сек)'; + +$lang['WITH_SELECTED'] = 'С выделенными'; +$lang['NOTHING'] = 'ничего не делать'; +$lang['CRON_RUN'] = 'запустить'; +$lang['CRON_DEL'] = 'удалить'; +$lang['CRON_DISABLE'] = 'отключить'; +$lang['CRON_ENABLE'] = 'включить'; + +$lang['RUN_MAIN_CRON'] = 'Запустить крон'; +$lang['ADD_JOB'] = 'Добавить задачу'; +$lang['DELETE_JOB'] = 'Вы действительно хотите удалить крон задачу?'; +$lang['CRON_WORKS'] = 'Крон в данный момент запущен или завис · '; +$lang['REPAIR_CRON'] = 'Восстановить'; + +$lang['CRON_EDIT_HEAD_EDIT'] = 'Редактировать задачу'; +$lang['CRON_EDIT_HEAD_ADD'] = 'Добавить задачу'; +$lang['CRON_SCRIPT_EXPL'] = 'название в папке "includes/cron/jobs/"'; +$lang['SCHEDULE'] = array( + 'select' => '» Выберите запуск', + 'hourly' => 'ежечасно', + 'daily' => 'ежедневно', + 'weekly' => 'еженедельно', + 'monthly' => 'ежемесячно', + 'interval' => 'интервал' +); +$lang['NOSELECT'] = 'Не указан'; +$lang['RUN_DAY'] = 'День запуска'; +$lang['RUN_DAY_EXPL'] = 'день месяца/недели, когда эта задача будет выполняться'; +$lang['RUN_TIME'] = 'Время запуска'; +$lang['RUN_TIME_EXPL'] = 'время запуска этой задачи (напр. 05:00:00)'; +$lang['RUN_ORDER'] = 'Порядок запуска'; +$lang['LAST_RUN'] = 'Последний запуск'; +$lang['NEXT_RUN'] = 'Следующий запуск'; +$lang['RUN_INTERVAL'] = 'Интервал запуска'; +$lang['RUN_INTERVAL_EXPL'] = 'напр. 00:10:00'; +$lang['LOG_ENABLED'] = 'Логирование включено'; +$lang['LOG_FILE'] = 'Файл лога'; +$lang['LOG_FILE_EXPL'] = 'файл, куда будут сохраняться логи'; +$lang['LOG_SQL_QUERIES'] = 'Логировать SQL запросы'; +$lang['FORUM_DISABLE'] = 'Отключать форум'; +$lang['BOARD_DISABLE_EXPL'] = 'отключать форум, когда задача выполняется?'; +$lang['RUN_COUNTER'] = 'Кол-во запусков'; + +$lang['JOB_REMOVED'] = 'Задача была успешно удалена'; +$lang['SCRIPT_DUPLICATE'] = 'Скрипт ' . @$_POST['cron_script'] . ' уже существует!'; +$lang['TITLE_DUPLICATE'] = 'Название задачи ' . @$_POST['cron_title'] . ' уже существует!'; +$lang['CLICK_RETURN_JOBS_ADDED'] = '%sВернуться к добавлению задачи%s'; +$lang['CLICK_RETURN_JOBS'] = '%sВернуться к планировщику задач%s'; + +$lang['REBUILD_SEARCH'] = 'Индексировать'; +$lang['REBUILD_SEARCH_DESC'] = 'Эта функция индексирует таблицы поиска. Индексация может занять некоторое время.
Пожалуйста, не закрывайте эту страницу до окончания индексации'; + +// Input screen +$lang['STARTING_POST_ID'] = 'Начальный ID сообщения'; +$lang['STARTING_POST_ID_EXPLAIN'] = 'Первая запись, с которой начнется обработка
Вы можете выбрать, чтобы начать с начала или с записи, на которой вы в последний раз остановились'; + +$lang['START_OPTION_BEGINNING'] = 'начать с начала'; +$lang['START_OPTION_CONTINUE'] = 'продолжить с последней остановленной'; + +$lang['CLEAR_SEARCH_TABLES'] = 'Очистить таблицы поиска'; +$lang['CLEAR_SEARCH_TABLES_EXPLAIN'] = ''; +$lang['CLEAR_SEARCH_NO'] = 'Нет'; +$lang['CLEAR_SEARCH_DELETE'] = 'Удаление'; +$lang['CLEAR_SEARCH_TRUNCATE'] = 'Очистка'; + +$lang['NUM_OF_POSTS'] = 'Количество записей'; +$lang['NUM_OF_POSTS_EXPLAIN'] = 'Общее количество записей в процессе
Автоматически заполняется количество от общего/оставшегося числа записей, найденных в БД'; + +$lang['POSTS_PER_CYCLE'] = 'Записей за цикл'; +$lang['POSTS_PER_CYCLE_EXPLAIN'] = 'Количество записей для обработки за один цикл
Держите его низким, чтобы избежать таймаута PHP / веб-сервера'; + +$lang['REFRESH_RATE'] = 'Период обновления'; +$lang['REFRESH_RATE_EXPLAIN'] = 'Сколько времени (сек) бездействовать перед переходом к следующему циклу обработки
Обычно вам не нужно менять это'; + +$lang['TIME_LIMIT'] = 'Ограничение времени'; +$lang['TIME_LIMIT_EXPLAIN'] = 'Сколько времени (сек) после обработки может длиться до перехода к следующему циклу'; +$lang['TIME_LIMIT_EXPLAIN_SAFE'] = 'Ваш PHP (Safe Mode) настроен на таймаут %s сек, так что не превышайте этого значения'; +$lang['TIME_LIMIT_EXPLAIN_WEBSERVER'] = 'Ваш веб-сервер настроен на таймаут %s сек, так что не превышайте этого значения'; + +$lang['DISABLE_BOARD'] = 'Отключение форума'; +$lang['DISABLE_BOARD_EXPLAIN'] = 'Отключать ли форум при обработке'; +$lang['DISABLE_BOARD_EXPLAIN_ENABLED'] = 'Он будет включен автоматически после окончания обработки'; +$lang['DISABLE_BOARD_EXPLAIN_ALREADY'] = 'Ваш форум уже отключен'; + +// Information strings +$lang['INFO_PROCESSING_STOPPED'] = 'В последний раз вы остановились в процессе обработки на post_id %s (%s обработанных записей) от %s'; +$lang['INFO_PROCESSING_ABORTED'] = 'В последний раз вы прервали процесс обработки на post_id %s (%s обработанных записей) от %s'; +$lang['INFO_PROCESSING_ABORTED_SOON'] = 'Пожалуйста, подождите несколько минут, прежде чем продолжить…'; +$lang['INFO_PROCESSING_FINISHED'] = 'Вы успешно завершили процесс (%s обработанных записей) от %s'; +$lang['INFO_PROCESSING_FINISHED_NEW'] = 'Вы успешно завершили процесс на post_id %s (%s обработанных записей) от %s,
но были %s новых записей после этой даты'; + +// Progress screen +$lang['REBUILD_SEARCH_PROGRESS'] = 'Процесс перестроения поиска'; + +$lang['PROCESSED_POST_IDS'] = 'Обработанные записи: %s - %s'; +$lang['TIMER_EXPIRED'] = 'Таймер истек в %s секунд. '; +$lang['CLEARED_SEARCH_TABLES'] = 'Очистка таблиц поиска. '; +$lang['DELETED_POSTS'] = '%s записей были удалены пользователей во время обработки. '; +$lang['PROCESSING_NEXT_POSTS'] = 'Обрабатывается следующие %s записей. Ждите...'; +$lang['ALL_SESSION_POSTS_PROCESSED'] = 'Обработаны все записи в текущей сессии.'; +$lang['ALL_POSTS_PROCESSED'] = 'Все записи были обработаны успешно.'; +$lang['ALL_TABLES_OPTIMIZED'] = 'Все поисковые таблицы были оптимизированы успешно.'; + +$lang['PROCESSING_POST_DETAILS'] = 'Обрабатываемая запись'; +$lang['PROCESSED_POSTS'] = 'Обработанные записи'; +$lang['PERCENT'] = 'Процентов'; +$lang['CURRENT_SESSION'] = 'Текущая сессия'; +$lang['TOTAL'] = 'Всего'; + +$lang['PROCESS_DETAILS'] = 'с %s до %s (из общего %s)'; +$lang['PERCENT_COMPLETED'] = '%s %% завершено'; + +$lang['PROCESSING_TIME_DETAILS'] = 'Детали текущей сесии'; +$lang['PROCESSING_TIME'] = 'Время выполнения'; +$lang['TIME_LAST_POSTS'] = 'Последние %s записей'; +$lang['TIME_FROM_THE_BEGINNING'] = 'Время с начала'; +$lang['TIME_AVERAGE'] = 'Среднее время за цикл'; +$lang['TIME_ESTIMATED'] = 'Расчетное время до завершения'; + +$lang['DATABASE_SIZE_DETAILS'] = 'Детали размера БД'; +$lang['SIZE_CURRENT'] = 'Текущий'; +$lang['SIZE_ESTIMATED'] = 'Расчетный размер после окончания'; +$lang['SIZE_SEARCH_TABLES'] = 'Размер таблицы поиска'; +$lang['SIZE_DATABASE'] = 'Размер ДБ'; + +$lang['ACTIVE_PARAMETERS'] = 'Активные параметры'; +$lang['POSTS_LAST_CYCLE'] = 'Обработанная(ые) запись(и) на последнем цикле'; +$lang['BOARD_STATUS'] = 'Статус форума'; + +$lang['INFO_ESTIMATED_VALUES'] = '(*) Все оценочные значения рассчитываются примерно
на основе текущего завершенного процента и не могут представлять фактического конечного значения.
С ростом процентов расчетные значения приближаются к фактическим.'; + +$lang['CLICK_RETURN_REBUILD_SEARCH'] = 'Нажмите %sздесь%s, чтобы вернуться к перестроению поиска'; +$lang['REBUILD_SEARCH_ABORTED'] = 'Перестроение поиска прервано на post_id %s.

Если вы прервали процесс обработки, вы должны подождать несколько минут до запуска перестроения поиска снова, чтобы последний цикл можно было закончить.'; +$lang['WRONG_INPUT'] = 'Вы ввели некоторые неправильные значения. Проверьте введенные данные и попробуйте еще раз.'; + +// Buttons +$lang['PROCESSING'] = 'Идет обработка...'; +$lang['FINISHED'] = 'Закончить'; + +$lang['BOT_TOPIC_MOVED_FROM_TO'] = 'Топик был перенесен из форума [b]%s[/b] в форум [b]%s[/b][br][br]%s'; +$lang['BOT_MESS_SPLITS'] = 'Сообщения из этой темы были выделены в отдельный топик [b]%s[/b][br][br]%s'; +$lang['BOT_TOPIC_SPLITS'] = 'Тема была выделена из [b]%s[/b][br][br]%s'; + +$lang['CALLSEED'] = 'Позвать скачавших'; +$lang['CALLSEED_EXPLAIN'] = 'Принимать уведомления с просьбой вернуться на раздачу'; +$lang['CALLSEED_SUBJECT'] = 'Помогите скачать %s'; +$lang['CALLSEED_TEXT'] = 'Здравствуйте![br]Ваша помощь необходима в раздаче [url=%s]%s[/url][br]Если Вы решили помочь, но уже удалили торрент-файл, Вы можете скачать его [url=%s]здесь[/url][br][br]Надеюсь на Вашу помощь!'; +$lang['CALLSEED_MSG_OK'] = 'Сообщения успешно отправлены всем скачавшим данный релиз'; +$lang['CALLSEED_MSG_SPAM'] = 'Запрос уже был отправлен (возможно не Вами)

Следующая возможность отправить запрос будет через %s.'; +$lang['CALLSEED_HAVE_SEED'] = 'Раздача не нуждается в помощи (Сидеров: %d)'; + +$lang['LOG_ACTION']['LOG_TYPE'] = array( + 'mod_topic_delete' => 'Топик:
удален', + 'mod_topic_move' => 'Топик:
перенесен', + 'mod_topic_lock' => 'Топик:
закрыт', + 'mod_topic_unlock' => 'Топик:
открыт', + 'mod_topic_split' => 'Топик:
разделен', + 'mod_post_delete' => 'Пост:
удален', + 'adm_user_delete' => 'Юзер:
удален', + 'adm_user_ban' => 'Юзер:
забанен', + 'adm_user_unban' => 'Юзер:
разбанен', +); + +$lang['ACTS_LOG_ALL_ACTIONS'] = 'Все действия'; +$lang['ACTS_LOG_SEARCH_OPTIONS'] = 'Настройки отчета по действиям'; +$lang['ACTS_LOG_FORUM'] = 'Форум'; +$lang['ACTS_LOG_ACTION'] = 'Действие'; +$lang['ACTS_LOG_USER'] = 'Пользователь'; +$lang['ACTS_LOG_LOGS_FROM'] = 'Логи с '; +$lang['ACTS_LOG_FIRST'] = 'начинается с'; +$lang['ACTS_LOG_DAYS_BACK'] = 'дней назад'; +$lang['ACTS_LOG_TOPIC_MATCH'] = 'Совпадение с названием темы'; +$lang['ACTS_LOG_SORT_BY'] = 'Сортировать по'; +$lang['ACTS_LOG_LOGS_ACTION'] = 'Действие'; +$lang['ACTS_LOG_USERNAME'] = 'Имя пользователя'; +$lang['ACTS_LOG_TIME'] = 'Время'; +$lang['ACTS_LOG_INFO'] = 'Инфо'; +$lang['ACTS_LOG_FILTER'] = 'Фильтр'; +$lang['ACTS_LOG_TOPICS'] = 'Топик:'; +$lang['ACTS_LOG_OR'] = 'или'; + +$lang['RELEASE'] = 'Шаблоны для релизов'; +$lang['RELEASES'] = 'Релизы'; + +$lang['BACK'] = 'Назад'; +$lang['ERROR_FORM'] = 'Неверно заполнены поля'; +$lang['RELEASE_WELCOME'] = 'Заполните форму для релиза'; +$lang['NEW_RELEASE'] = 'Новый релиз'; +$lang['NEXT'] = 'Продолжить'; +$lang['OTHER'] = 'Другой'; + +$lang['TPL_EMPTY_FIELD'] = 'Вы должны заполнить поле %s'; +$lang['TPL_EMPTY_SEL'] = 'Вы должны выбрать %s'; +$lang['TPL_NOT_NUM'] = '%s - должно быть число'; +$lang['TPL_NOT_URL'] = '%s - должна быть http:// ссылка'; +$lang['TPL_NOT_IMG_URL'] = '%s - должна быть http:// ссылка на картинку'; +$lang['TPL_PUT_INTO_SUBJECT'] = 'поместить в заголовок'; +$lang['TPL_POSTER'] = 'постер'; +$lang['TPL_REQ_FILLING'] = 'требует заполнения'; +$lang['TPL_NEW_LINE'] = 'новая строка'; +$lang['TPL_NEW_LINE_AFTER'] = 'новая строка после названия'; +$lang['TPL_NUM'] = 'число'; +$lang['TPL_URL'] = 'ссылка'; +$lang['TPL_IMG'] = 'картинка'; +$lang['TPL_PRE'] = 'pre'; +$lang['TPL_SPOILER'] = 'спойлер'; +$lang['TPL_IN_LINE'] = 'на той же строке'; +$lang['TPL_HEADER_ONLY'] = 'только в заголовке'; + +$lang['SEARCH_INVALID_USERNAME'] = 'Введено неправильное имя для поиска'; +$lang['SEARCH_INVALID_EMAIL'] = 'Введен неправильный адрес email для поиска'; +$lang['SEARCH_INVALID_IP'] = 'Введен неправильный IP-адрес для поиска'; +$lang['SEARCH_INVALID_GROUP'] = 'Введена неправильная группа для поиска'; +$lang['SEARCH_INVALID_RANK'] = 'Введено неправильное звание для поиска'; +$lang['SEARCH_INVALID_DATE'] = 'Введена неправильная дата для поиска'; +$lang['SEARCH_INVALID_POSTCOUNT'] = 'Введено неправильное количество сообщений для поиска'; +$lang['SEARCH_INVALID_USERFIELD'] = 'Введены неправильные пользовательские данные для поиска'; +$lang['SEARCH_INVALID_LASTVISITED'] = 'Введены неправильные данные для поиска по последним посещениям'; +$lang['SEARCH_INVALID_LANGUAGE'] = 'Выбран неправильный язык'; +$lang['SEARCH_INVALID_TIMEZONE'] = 'Выбран неправильный часовой пояс'; +$lang['SEARCH_INVALID_MODERATORS'] = 'Выбран неправильный форум'; +$lang['SEARCH_INVALID'] = 'Неверный поиск'; +$lang['SEARCH_INVALID_DAY'] = 'Введенный день неверен'; +$lang['SEARCH_INVALID_MONTH'] = 'Введенный месяц неверен'; +$lang['SEARCH_INVALID_YEAR'] = 'Введенный год неверен'; +$lang['SEARCH_FOR_USERNAME'] = 'Поиск имени пользователя %s'; +$lang['SEARCH_FOR_EMAIL'] = 'Поиск адреса email %s'; +$lang['SEARCH_FOR_IP'] = 'Поиск IP адреса %s'; +$lang['SEARCH_FOR_DATE'] = 'Поиск пользователей, зарегистрированных %s %d/%d/%d'; +$lang['SEARCH_FOR_GROUP'] = 'Поиск членов группы %s'; +$lang['SEARCH_FOR_RANK'] = 'Поиск носителей звания %s'; +$lang['SEARCH_FOR_BANNED'] = 'Поиск забаненных пользователей'; +$lang['SEARCH_FOR_ADMINS'] = 'Поиск администраторов'; +$lang['SEARCH_FOR_MODS'] = 'Поиск модераторов'; +$lang['SEARCH_FOR_DISABLED'] = 'Поиск отключенных пользователей'; +$lang['SEARCH_FOR_POSTCOUNT_GREATER'] = 'Поиск пользователей с количеством сообщений более %d'; +$lang['SEARCH_FOR_POSTCOUNT_LESSER'] = 'Поиск пользователей с количеством сообщений менее %d'; +$lang['SEARCH_FOR_POSTCOUNT_RANGE'] = 'Поиск пользователей с количеством сообщений от %d до %d'; +$lang['SEARCH_FOR_POSTCOUNT_EQUALS'] = 'Поиск пользователей с количеством сообщений %d'; +$lang['SEARCH_FOR_USERFIELD_ICQ'] = 'Поиск пользователей с адресом ICQ %s'; +$lang['SEARCH_FOR_USERFIELD_SKYPE'] = 'Поиск пользователей с логином в Skype %s'; +$lang['SEARCH_FOR_USERFIELD_TWITTER'] = 'Поиск пользователей с логином в Twitter %s'; +$lang['SEARCH_FOR_USERFIELD_WEBSITE'] = 'Поиск пользователей, чей веб-сайт %s'; +$lang['SEARCH_FOR_USERFIELD_LOCATION'] = 'Поиск пользователей из %s'; +$lang['SEARCH_FOR_USERFIELD_INTERESTS'] = 'Поиск пользователей с интересами %s'; +$lang['SEARCH_FOR_USERFIELD_OCCUPATION'] = 'Поиск пользователей с родом занятий %s'; +$lang['SEARCH_FOR_LASTVISITED_INTHELAST'] = 'Поиск пользователей, посетивших трекер в последние %s %s'; +$lang['SEARCH_FOR_LASTVISITED_AFTERTHELAST'] = 'Поиск пользователей, посетивших трекер после %s %s'; +$lang['SEARCH_FOR_LANGUAGE'] = 'Поиск пользователей, у которых выбран %s язык'; +$lang['SEARCH_FOR_TIMEZONE'] = 'Поиск пользователей с часовым поясом UTC %s'; +$lang['SEARCH_FOR_STYLE'] = 'Поиск пользователей, использующих стиль %s'; +$lang['SEARCH_FOR_MODERATORS'] = 'Поиск модареторов форума -> %s'; +$lang['SEARCH_USERS_ADVANCED'] = 'Расширенный поиск пользователя'; +$lang['SEARCH_USERS_EXPLAIN'] = 'Позволяет осуществлять расширенный поиск пользователей по большому диапазону критериев. Пожалуйста, читайте описания полей поиска, чтобы полностью понять каждую из поисковых возможностей.'; +$lang['SEARCH_USERNAME_EXPLAIN'] = 'Здесь можно произвести регистронезависимый поиск имени пользователя. Если вы хотите задать только часть имени, используйте * (звездочка) как маску.'; +$lang['SEARCH_EMAIL_EXPLAIN'] = ' Введите выражение, соответствующее адресам email пользователей. Регистр не имеет значения. Для осуществления поиска по частичному соответствию, используйте * (звездочка) как маску.'; +$lang['SEARCH_IP_EXPLAIN'] = 'Поиск пользователей по определенному IP-адресу (xxx.xxx.xxx.xxx).'; +$lang['SEARCH_USERS_JOINED'] = 'Пользователи, зарегистрированные'; +$lang['SEARCH_USERS_LASTVISITED'] = 'Пользователи, посетившие трекер'; +$lang['IN_THE_LAST'] = 'за последние'; +$lang['AFTER_THE_LAST'] = 'ранее чем за последние'; +$lang['BEFORE'] = 'До'; +$lang['AFTER'] = 'После'; +$lang['SEARCH_USERS_JOINED_EXPLAIN'] = 'Поиск пользователей, зарегистрированных До или После (включительно) указанной даты. Формат даты ГГГГ/ММ/ДД.'; +$lang['SEARCH_USERS_GROUPS_EXPLAIN'] = 'Просмотреть всех членов выбранной группы.'; +$lang['SEARCH_USERS_RANKS_EXPLAIN'] = 'Просмотреть всех носителей выбранного звания.'; +$lang['BANNED_USERS'] = 'Забаненные пользователи'; +$lang['DISABLED_USERS'] = 'Отключенные пользователи'; +$lang['SEARCH_USERS_MISC_EXPLAIN'] = 'Администраторы - все пользователи с правами администратора; Модераторы - все модераторы форумов; Забаненные пользователи - все учетные записи, запрещенные на трекере; отключенные пользователи - все пользователи с отключенными учетными записями (вручную, или не подтвердившие свой адрес email); Пользователи с отключенными ЛС - Пользователи, не имеющие права пользоваться личными сообщениями (установлено через управление пользователями)'; +$lang['POSTCOUNT'] = 'Число сообщений'; +$lang['EQUALS'] = 'Равно'; +$lang['GREATER_THAN'] = 'Больше чем'; +$lang['LESS_THAN'] = 'Меньше чем'; +$lang['SEARCH_USERS_POSTCOUNT_EXPLAIN'] = 'Вы можете искать пользователей по количеству оставленных сообщений. Поиск можно произвести либо по конкретному значению, либо большему или меньшему заданного, либо находящемуся в заданном диапазоне значений. Для поиска в диапазоне, выберите "Равно", и задайте начало и конец диапазона через дефис (-), напр. 10-15'; +$lang['USERFIELD'] = 'Поле профиля'; +$lang['SEARCH_USERS_USERFIELD_EXPLAIN'] = 'Поиск пользователей по различным полям профиля. В качестве маски разрешены звездочки (*).'; +$lang['SEARCH_USERS_LASTVISITED_EXPLAIN'] = 'Вы можете искать пользователей по дате их последнего входа на трекер, используя эту поисковую возможность.'; +$lang['SEARCH_USERS_LANGUAGE_EXPLAIN'] = 'Поиск пользователей, выбравших заданный язык в своем профиле'; +$lang['SEARCH_USERS_TIMEZONE_EXPLAIN'] = 'Поиск пользователей, выбравших заданный часовой пояс в своем профиле'; +$lang['SEARCH_USERS_STYLE_EXPLAIN'] = 'Поиск пользователей, выбравших заданный стиль в своем профиле'; +$lang['MODERATORS_OF'] = 'Модераторы'; +$lang['SEARCH_USERS_MODERATORS_EXPLAIN'] = 'Поиск пользователей с правами модератора на заданном форуме. Права модератора определяются в соответствии с правами пользователя, или в соответствии с правами группы, челоном которой он является.'; + +$lang['SEARCH_USERS_NEW'] = '%s дал %d результат(ов). Новый поиск.'; +$lang['BANNED'] = 'Забаненные'; +$lang['NOT_BANNED'] = 'Не забаненные'; +$lang['SEARCH_NO_RESULTS'] = 'Нет пользователей, отвечающих выбранным критериям. Пожалуйста, попробуйте повторить поиск. Если вы ищете имя пользователя или адрес email по частичному совпадению, вы должны использовать маску * (звездочку).'; +$lang['ACCOUNT_STATUS'] = 'Статус учетной записи'; +$lang['SORT_OPTIONS'] = 'Поля сортировки:'; +$lang['LAST_VISIT'] = 'Последнее посещение'; +$lang['DAY'] = 'День'; + +$lang['POST_EDIT_CANNOT'] = 'Извините, вы не можете редактировать сообщения'; +$lang['FORUMS_IN_CAT'] = 'форумов в этой категории'; + +$lang['MC_TITLE'] = 'Модераторский комментарий'; +$lang['MC_LEGEND'] = 'Тип комментария'; +$lang['MC_FAQ'] = 'Введенный Вами текст будет отображаться под этим сообщением'; +$lang['MC_COMMENT_PM_SUBJECT'] = "%s в Вашем сообщении"; +$lang['MC_COMMENT_PM_MSG'] = "Здравствуйте, [b]%s[/b]\nМодератор оставил в Вашем сообщении [url=%s][b]%s[/b][/url][quote]\n%s\n[/quote]"; +$lang['MC_COMMENT'] = array( + 0 => array( + 'title' => '', + 'type' => 'Удалить комментарий', + ), + 1 => array( + 'title' => 'Комментарий от %s', + 'type' => 'Комментарий', + ), + 2 => array( + 'title' => 'Информация от %s', + 'type' => 'Информация', + ), + 3 => array( + 'title' => 'Предупреждение от %s', + 'type' => 'Предупреждение', + ), + 4 => array( + 'title' => 'Нарушение от %s', + 'type' => 'Нарушение', + ), +); + +$lang['SITEMAP'] = 'Карта сайта (sitemap)'; +$lang['SITEMAP_ADMIN'] = 'Управление картой сайта (sitemap)'; +$lang['SITEMAP_CREATED'] = 'Файл sitemap создан'; +$lang['SITEMAP_AVAILABLE'] = 'и доступен по адресу'; +$lang['SITEMAP_NOT_CREATED'] = 'Файл sitemap еще не создан'; +$lang['SITEMAP_NOTIFY_SEARCH'] = 'Уведомление поисковой системы'; +$lang['SITEMAP_SENT'] = 'отправка завершена'; +$lang['SITEMAP_ERROR'] = 'ошибка отправки'; +$lang['SITEMAP_OPTIONS'] = 'Опции'; +$lang['SITEMAP_CREATE'] = 'Создать / обновить файл sitemap'; +$lang['SITEMAP_NOTIFY'] = 'Уведомить поисковые системы о наличии новой версии файла sitemap'; +$lang['SITEMAP_WHAT_NEXT'] = 'Что сделать дальше?'; +$lang['SITEMAP_GOOGLE_1'] = 'Зарегистрируйте ваш сайт в Google Webmaster с использованием вашей учетной записи Google.'; +$lang['SITEMAP_GOOGLE_2'] = 'Добавьте файл sitemap зарегистрированного вами сайта.'; +$lang['SITEMAP_YANDEX_1'] = 'Зарегистрируйте ваш сайт в Yandex Webmaster с использованием вашей учетной записи Yandex.'; +$lang['SITEMAP_YANDEX_2'] = 'Добавьте файл sitemap зарегистрированного вами сайта.'; +$lang['SITEMAP_BING_1'] = 'Зарегистрируйте ваш сайт в Bing Webmaster с использованием вашей учетной записи Microsoft.'; +$lang['SITEMAP_BING_2'] = 'Добавьте файл sitemap зарегистрированного вами сайта в его настройках.'; +$lang['SITEMAP_ADD_TITLE'] = 'Дополнительные страницы для sitemap'; +$lang['SITEMAP_ADD_PAGE'] = 'Дополнительные страницы'; +$lang['SITEMAP_ADD_EXP_1'] = 'Вы можете указать дополнительные страницы на вашем сайте, которые должны быть включены в ваш файл sitemap, который вы создаете.'; +$lang['SITEMAP_ADD_EXP_2'] = 'Каждая ссылка должна начинаться с http(s):// и новой строки!'; + +$lang['FORUM_MAP'] = 'Карта форумов'; +$lang['ATOM_FEED'] = 'Лента'; +$lang['ATOM_ERROR'] = 'Ошибка генерации ленты'; +$lang['ATOM_SUBSCRIBE'] = 'Подписка на ленту'; +$lang['ATOM_NO_MODE'] = 'Не указан режим для ленты'; +$lang['ATOM_NO_FORUM'] = 'Для этого форума нет ленты (нет начатых тем)'; +$lang['ATOM_NO_USER'] = 'Для этого пользователя нет ленты (нет начатых тем)'; + +$lang['HASH_INVALID'] = 'Хэш %s некорректен'; +$lang['HASH_NOT_FOUND'] = 'Раздача с хэшем %s не найдена'; + +$lang['TERMS_EMPTY_TEXT'] = '[align=center]Текст этой страницы редактируется по адресу: [url=http://%s/admin/admin_terms.php]admin/admin_terms.php[/url]. Эту строку видят только администраторы.[/align]'; +$lang['TERMS_EXPLAIN'] = 'На данной странице вы можете указать текст основных правил ресурса, выводящихся пользователям.'; + +$lang['TR_STATS'] = array( + 0 => 'неактивные пользователи в течение 30 дней', + 1 => 'неактивные пользователи в течение 90 дней', + 2 => 'средний размер раздачи на трекере (сколько мегабайт)', + 3 => 'сколько у нас всего раздач на трекере', + 4 => 'сколько живых раздач (есть хотя бы 1 сид)', + 5 => 'сколько раздач где которые сидируются больше 5 сидами', + 6 => 'сколько у нас аплоадеров (те, кто залили хотя бы 1 раздачу)', + 7 => 'сколько аплоадеров за последние 30 дней', +); + +$lang['NEW_POLL_START'] = 'Опрос включен'; +$lang['NEW_POLL_END'] = 'Опрос завершен'; +$lang['NEW_POLL_ENDED'] = 'Этот опрос уже завершен'; +$lang['NEW_POLL_DELETE'] = 'Опрос удален'; +$lang['NEW_POLL_ADDED'] = 'Опрос добавлен'; +$lang['NEW_POLL_ALREADY'] = 'Тема уже имеет опрос'; +$lang['NEW_POLL_RESULTS'] = 'Опрос изменен и старые результаты удалены'; +$lang['NEW_POLL_VOTES'] = 'Вы должны правильно указать варианты ответа (минимум 2, максимум %s)'; +$lang['NEW_POLL_DAYS'] = 'Время для этого опроса (%s дней с момента создания темы) уже закончилось'; +$lang['NEW_POLL_U_NOSEL'] = 'Вы не выбрали, за что голосуете'; +$lang['NEW_POLL_U_CHANGE'] = 'Изменить опрос'; +$lang['NEW_POLL_U_EDIT'] = 'Изменить опрос (старые результаты будут удалены)'; +$lang['NEW_POLL_U_VOTED'] = 'Всего проголосовало'; +$lang['NEW_POLL_U_START'] = 'Включить опрос'; +$lang['NEW_POLL_U_END'] = 'Завершить опрос'; +$lang['NEW_POLL_M_TITLE'] = 'Заголовок опроса'; +$lang['NEW_POLL_M_VOTES'] = 'Варианты ответа'; +$lang['NEW_POLL_M_EXPLAIN'] = 'Каждая строка соответствует одному варианту ответа (максимум'; + +$lang['OLD_BROWSER'] = 'Вы используете устаревший браузер. Сайт может отображаться некорректно.'; +$lang['GO_BACK'] = 'Вернуться обратно'; + +$lang['UPLOAD_ERROR_COMMON'] = 'Ошибка загрузки файла'; +$lang['UPLOAD_ERROR_SIZE'] = 'Загруженный файл превышает максимальный размер %s'; +$lang['UPLOAD_ERROR_FORMAT'] = 'Недопустимый тип файла изображения'; +$lang['UPLOAD_ERROR_DIMENSIONS'] = 'Размеры изображения превышают максимально допустимые %sx%s px'; +$lang['UPLOAD_ERROR_NOT_IMAGE'] = 'Загруженный файл не является изображением'; +$lang['UPLOAD_ERROR_NOT_ALLOWED'] = 'Расширение %s для загружаемых файлов не разрешено'; +$lang['UPLOAD_ERRORS'] = array( + UPLOAD_ERR_INI_SIZE => 'превышен максимальный размер файлов для сервера', + UPLOAD_ERR_FORM_SIZE => 'превышен максимальный размер загружаемого файла', + UPLOAD_ERR_PARTIAL => 'файл был загружен частично', + UPLOAD_ERR_NO_FILE => 'файл не был загружен', + UPLOAD_ERR_NO_TMP_DIR => 'временная директория не найдена', + UPLOAD_ERR_CANT_WRITE => 'ошибка записи', + UPLOAD_ERR_EXTENSION => 'загрузка остановлена из-за расширения', +); + +// Captcha +$lang['CAPTCHA'] = 'Проверка, что вы не робот'; +$lang['CAPTCHA_WRONG'] = 'Вы не смогли подтвердить, что вы не робот'; +$lang['CAPTCHA_SETTINGS'] = '

ReCaptcha настроена не полностью

Если вы еще не сгенерировали ключи, вы можете это сделать на странице https://www.google.com/recaptcha/admin.
После того, как вы сгенерируете ключи, нужно прописать их в файл library/config.php.

'; + +// Emailer +$lang['EMAILER_SUBJECT'] = [ + 'EMPTY' => 'Нет темы письма', + 'GROUP_ADDED' => 'Вы были включены в группу', + 'GROUP_APPROVED' => 'Ваша просьба была удовлетворена', + 'GROUP_REQUEST' => 'Просьба о вступлении в группу', + 'PRIVMSG_NOTIFY' => 'Новое личное сообщение', + 'TOPIC_NOTIFY' => 'Уведомление об ответе %s', + 'USER_ACTIVATE' => 'Повторная активация учетной записи', + 'USER_ACTIVATE_PASSWD' => 'Активация нового пароля', + 'USER_WELCOME' => 'Добро пожаловать на сайт %s', + 'USER_WELCOME_INACTIVE' => 'Добро пожаловать на сайт %s', +]; diff --git a/styles/templates/default/images/lang/ru/icon_edit.gif b/styles/templates/default/images/lang/ru/icon_edit.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd52b6b272f986dfefec69598767067f44378248 GIT binary patch literal 2220 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 literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/icon_icq_add.gif b/styles/templates/default/images/lang/ru/icon_icq_add.gif new file mode 100644 index 0000000000000000000000000000000000000000..4309f27b5668f2e227e2cf67d97892b03ef1c932 GIT binary patch literal 2473 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 Zuoj(us{(bk&&xkgj=P-+C3e2i{{aRlAN&9S literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/icon_ip.gif b/styles/templates/default/images/lang/ru/icon_ip.gif new file mode 100644 index 0000000000000000000000000000000000000000..5822a929ad89fbdc1b2fdf6c90e4b27578eec239 GIT binary patch literal 1288 zcmeAS@N?(olHy`uVBq!ia0vp^{2c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{LP(UIa|k(_foAF)%RJdAc};RNR^q zZ0*hLC@_z=UC1-hrN+#2O|1x<$fb_f-rgS!tZR>Gt&MW|!<)H9aHEHE#BXN4Nm^6O zlr)qCuN+c)#9VfK=H0zJFYBGVckgWS{<-;O&qE~I9GWidT+z^YG-+dU%I2F#4lFx* zzjI>SBEgRv<&W}P9rf;tKPIuGvZAf^lcCQ0xlB@9?3(kG{I{)@cbt4q$mPMti*-BJ zymLs|&GSNT>KXBF*3W)#`}J?ExS}xmUEAbl(+KssOHF3B|GK*O>i6x>7Me_*UL=#d zHdAV4L^q#-^~C18XDwID$6nD~)>?Kd)vxKGUPp?;ZRW?Vj;oD#-##ARX>GvRTfX4R zneWkqMYmqAW5{Y>eeLJJpSlk|o#GK`+x%^p#L>v9`z>~+KmE=1@5-686LmB%7R&j_ zKFMhko)c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij{$pv5BFj zg^8Jgv9qh8p`nwrqotd$lsiT3Vi3!XMYQsQUuHx_7@zVGB7aKdb&7R?*7v@9uz`D#JcjfMM8 z_^dIE@Ors=PuVzaxFTP{@r1X4z*xG$Jf+nt>+qC$snp$n= rI<_pq(&dU=QsekN=#!BVx@*Ilj) zgTeF}Zgg+;NLIg#bl~dmbIA^odRQiP_LKSuL!>gc7=k%+g~1S#!Doj;-VmD`we3D+ z2ZL#HdA@#9Kc**zBjn@QGd4Ime+CVM*=>-E*qjJRiVTKAc>*fx&CN;_lElrh1;c6l-kqpA@D^^=1*dQk)#U1*>!S_d+vriMzRG#XOIjy z5uB}EoE%-OoSbdxHnUiUKq6%eIMA#vPp$g{tJeM-EQKb9*ixa`S162}?EtSZp;Rad z6N->DA8X_$o`5TqNoI=kJytp-=IwyEE@B}c`7OH?-Y?Yuchujp-2W$Ic(pV5nb!EP zR+-&W_utI)XXC3EKd%lXP~R7^`eI~tfrnu*xGRJ1=qvAdu&GPv>uj{4sJn}Q^Vxz9 zzFtC7KtLFl_?*VmFar-6#K2UZqmRx_?`g95)N^=&h5h+I?ZX}$H*3#TJicniGxW=Q zk^OARwZI*x1eVyFT_dXBo=6@(sE96gAS&XXb&hmCRT5swc2{<%D}(%(G{4U@-8TL8 z%RqB;^V0T-<}XF?j-iUWhOzRV#|upErlzK@S+QbyO2dnHN;+y=|Jk@(qfN0~McT7N zJt2p46wYV$mf`}GTUabl&n-_YV`Ft{95`rw^0^?7tuC)0kH?vd+r^b_@)RVoA)i?!=+&~OJgs>&^OKTcV{V+F>> zZqU9n9z1#%p-C_|zAz_&?XcEpe;85MzH)(Q=#e;ju+hZpu4+S%VZ+I#y757Le&X3w zVp2+C^5A*v;oX-E2d=CS^gi+F`f#_6+wqr0Ti$lO9V5V~U0spbU`5f$#DyY*67+Lm zGRA(@xd^kV#p~lm39mp%jE0`7(bQCIV zI&UHKcjw|N<~3yHit*z>jEn6mWAtc$`0~iM?5i<@{`c#6ff)%7uBe46r-EDi-$%{k zz2)BNi}y&~9Z#+6eLwUhY755)Eqy(}t;)(+&Mm5&zCYK*2e4%-Q?Bh#s+?LT=u9tA zbezdYO!jwfb2;wzuvu!BbB3N zLP-hfUh*s6Eu+jE4;vdr6O;C@$hnd72DzrDjwOCFDn`Nainv(!9+HYVDNeaN{5ZcNxGO5YWO za39lqoj8B?|=AW zUbfEBdZ z$n8T;o9`L#j55h#^b8IT9wXge{Cm!#S1Fg}$F+DKR#8-c_QABQDCWQE%)ZiMn>%kV z5tFhHw|@;ESRV6rL0eQDH;=xPlupdEssMl)Oa(yT^I^FB#oV z=&hptK-I&R0BDhg*wiVa(VHmhd%;tG|dV2M#X~k=oBnJU?2Vfena(ooKGO`9O zwR~&+PIJ~+Xg8j4;Ma^K-hNs0wdAZQq(A#&w0Q&jguRDy<>@MnB7#~G&n2W^E;Z2D zwAQG~)tl~+WI_$TFsxZxwCdn=Q$!y@<)oV095)9>)*ZqHp{HVJe$*JwEPB3E(BA(5 DldVOR literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/icon_poll.gif b/styles/templates/default/images/lang/ru/icon_poll.gif new file mode 100644 index 0000000000000000000000000000000000000000..30a6c5ed395e8fc87967cbcbb71761848eedb802 GIT binary patch literal 2229 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 literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/icon_search.gif b/styles/templates/default/images/lang/ru/icon_search.gif new file mode 100644 index 0000000000000000000000000000000000000000..11e09d7a12fea29df4225f554a42716d872d4f30 GIT binary patch literal 2627 zcmbVOdo)!09v>-{iXt5xGL4g~hk1I8F&^`vMj7vB3LRr+GZXVLv&Rex70RnpN~)tw zc{Ak{r9^}Y6FsQND~h^NbX*mwJ1X7#N9)|R?p|x}-|O@Fe4oFyc9I8m(=ts%O$Y?C zjIx>Rr5bHjug)S3)%TewLZBK9KxaDW%?}183?Tp^u=qg$l)`0%0A2ut6&cf%)M*=+<2`V|6(+QYs% zMR)UnlK4UZY6VAHFp<_ss5J_X!dTka*ldKNktieriAJE%7APAW28}}^q2C{v%9@ZB zjPoM9e7B`q*~8c%D8L~Q5{U#Z!NB>#5CqEB)^=6{jkZuBEJTq!kRi3;iA?7d$bg6` z9-KL0ynoG!aULUM5$7SkTL`a6dZ}*a%bcEiWY%hz<=EM zDO%(cDF6^&fQT;^GF9~mHk~7@a`*R!W`QbiaPC5mswj*wGM_2t0z8mHwuh-s;4BUc zhe9IJ7!r|WNy6AVqfjWUtu@Nont&lXyO78(F4#GZpK;MBB-X~7pyFE-P$*{?_AX1a&aUfzySF|A3i^9t^+*Se2_0<^94|n zw-uDe;j#D<(QI+P#YzT*oCtvBBII+SU$cwj{KWeIj`|yy_5WlHp>hT>+ZzAXDsx+^ z{+pftXnfV;$JGINs{0~TU5xH=+v^aBhL}Po_(;3jX@2hhzAHbsDj9NrP2D963|-(i z-Eu6>m3ADQlzEk>Wxm`$S?ln`r2kk_l9|KA{e{zk2i-fQN#`Kc&ddbtGB-cCk z%cGfTT5aH^(dSLaBqf0+mPhKKokDvqm+O0*CZA}qa-HVIbK2-9wWu2(zDm%G+AR#q zJ%4_%XKHFHx}yEWmZAOkGTyx5@o1@568OUUAWtLdo8{Hlz+b~pFKOV};fwY~TcssO zYliGHFtur{6*>8KeA)VOdIjmxWWfkCOFb+sEWU@=wj+mQNX)Ta+Owl>OqTqBsO3*; z=8%Y&NoAh%le-H_3->-9O?>?N=9b18<-Ov^@^xkGD+luFwTF!D$n(k4#f(0(HfGw7 z_OhX#xN-|+!LyTz3BLO(^%;96jXRu1wUi0OgBRuK{0p5inlSH%mn{F4;fB zIUOqR>i1YwwHmQa=K0~;GvYdRD!n;5)@=WJV$NrIir&MFTl#y;w&ueVTs!jCX|T*QcpQCod@VZ>0uq+IO`&RCh{knb4f7pJQ&N{orf+L?~P36q!3YapA4We&08 zST}0HL-2$g4-kPhq8eYwD_tiZTHWh;#LEa<{WQ%Ym!iC!A;t`Fia;i5uW>*CA>+hx z!rc~(>DaUJZQkt-d&AF+R%)fOE7#NI=-qGsrJb0jacSdVQtz-@J3%Mtd1|FMURPI_ z&1O5n((CWMG=KDupn{2&b$K|XT}Ax;7j|PGUHcgqm{*JQ-i=!221gy*s(e+;gqjvp zq9>Wl9p9%y`$lhVakuF|p8q=Gx^`FVz_^B^)|*b{(3kq$+SAysuK2Drhv?m(HF2%l zK?$R=S*4Cq1(f=!JryB{rky)HQYGuB#Fjm`Lg;luPIBje{nX zmDM0y=qE4*jYVlLvVFiFhqIe~TZ>?38TxStU(sAA$}C$>c>h80H@u!C>1Ef3VPTNn zXVzy&g1QrUWrLa1LBrGMcQ@;3phY_7M3JbVxLB_-QC~!*Qe_wF6QLL6@nJ@j?&Fd>W^c=hux9+SY zrfiVDEuE1T+}Y5$R=de7=-AGoV^#Av!r`(%Wkmf}MdE=2o*o{zWG@)$6SrQ0wJ(H8 z1x1lXM~)Be-i~t}K^NA+FC*`cR;3u*`Iu@{Gkk!zmz$@-SLKYc@!wyQb9{ z9A1%;YWPe;UrfqFO6scfc7Y2N{Rlrrl}W<~AAQBnFzaPQDPJwa~}4JAl)f zh}KXZy7LY_kQ5KmO(K)Yks|CLGC8GHHWae0CsFL=sSFJEju^VeO0Q%Q%|m0&2<`ZW zz}Qp8IHrgstCWBpzOb^NA%>)xtcd>FpQY?$h zqI~pPe9Z=z8%Jv(w|iUYtzYZs-`u#dW)K~-yc1YJNj1jZ8>`#*q?WMi-S2BIV=%m3 q-KH-XhZTb`@fU@*B4*4)O#@ literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/icon_www.gif b/styles/templates/default/images/lang/ru/icon_www.gif new file mode 100644 index 0000000000000000000000000000000000000000..3da9e0e8c8a5b0147277afccb8e99a2a3ecdfb52 GIT binary patch literal 2739 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 KlyZ-q34Z}$%bN87 literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/msg_newpost.gif b/styles/templates/default/images/lang/ru/msg_newpost.gif new file mode 100644 index 0000000000000000000000000000000000000000..f5d7bcb81300b9c77fa22a533fa260360f2fdef4 GIT binary patch literal 3804 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 TIr-53|0dSL7E@>Lb@6`ymFt}A literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/post.gif b/styles/templates/default/images/lang/ru/post.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5e3349a06ba8a23f3d9666f253cec75335db0d0 GIT binary patch literal 3573 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 literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/lang/ru/reply-locked.gif b/styles/templates/default/images/lang/ru/reply-locked.gif new file mode 100644 index 0000000000000000000000000000000000000000..538693e918ea21af8acdf78aac9d94b4a6a76c8c GIT binary patch literal 3786 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 Date: Fri, 30 Jun 2017 08:57:18 +0300 Subject: [PATCH 2/3] Full new localization system. --- admin/admin_attach_cp.php | 22 +- admin/admin_attachments.php | 26 +- admin/admin_board.php | 8 +- admin/admin_bt_forum_cfg.php | 8 +- admin/admin_bt_tracker_cfg.php | 2 +- admin/admin_cron.php | 22 +- admin/admin_disallow.php | 12 +- admin/admin_extensions.php | 18 +- admin/admin_forum_prune.php | 6 +- admin/admin_forumauth.php | 24 +- admin/admin_forumauth_list.php | 28 +- admin/admin_forums.php | 68 +- admin/admin_groups.php | 34 +- admin/admin_log.php | 8 +- admin/admin_mass_email.php | 8 +- admin/admin_ranks.php | 18 +- admin/admin_rebuild_search.php | 48 +- admin/admin_sitemap.php | 4 +- admin/admin_smilies.php | 16 +- admin/admin_terms.php | 2 +- admin/admin_ug_auth.php | 62 +- admin/admin_user_ban.php | 10 +- admin/admin_user_search.php | 136 +- admin/admin_words.php | 14 +- admin/index.php | 6 +- admin/pagestart.php | 2 +- admin/stats/tr_stats.php | 4 +- admin/stats/tracker.php | 2 +- ajax.php | 4 +- bootstrap.php | 2 +- callseed.php | 14 +- dl.php | 22 +- dl_list.php | 6 +- feed.php | 14 +- group.php | 75 +- group_edit.php | 14 +- index.php | 36 +- info.php | 12 +- .../TorrentPier/TorrentPier/Legacy/Ajax.php | 14 +- .../TorrentPier/TorrentPier/Legacy/Attach.php | 42 +- .../TorrentPier/Legacy/Common/Upload.php | 17 +- .../TorrentPier/Legacy/Common/User.php | 29 +- .../TorrentPier/Legacy/DateDelta.php | 8 +- .../TorrentPier/Legacy/Emailer.php | 4 +- .../TorrentPier/Legacy/LogAction.php | 6 +- .../TorrentPier/TorrentPier/Legacy/Poll.php | 6 +- .../TorrentPier/Legacy/Template.php | 15 +- .../TorrentPier/Legacy/TorrentFileList.php | 6 +- library/ajax/avatar.php | 4 +- library/ajax/change_tor_status.php | 46 +- library/ajax/change_torrent.php | 16 +- library/ajax/change_user_opt.php | 4 +- library/ajax/change_user_rank.php | 6 +- library/ajax/edit_group_profile.php | 6 +- library/ajax/edit_user_profile.php | 32 +- library/ajax/gen_passkey.php | 6 +- library/ajax/group_membership.php | 4 +- library/ajax/index_data.php | 34 +- library/ajax/manage_admin.php | 18 +- library/ajax/manage_user.php | 36 +- library/ajax/mod_action.php | 26 +- library/ajax/post_mod_comment.php | 10 +- library/ajax/posts.php | 66 +- library/ajax/sitemap.php | 18 +- library/ajax/user_register.php | 16 +- library/ajax/view_post.php | 8 +- library/ajax/view_torrent.php | 12 +- library/attach_mod/attachment_mod.php | 20 - library/attach_mod/displaying.php | 8 +- library/attach_mod/displaying_torrent.php | 34 +- .../attach_mod/includes/functions_admin.php | 10 +- .../attach_mod/includes/functions_delete.php | 8 +- .../includes/functions_includes.php | 12 +- .../attach_mod/includes/functions_selects.php | 16 +- library/defines.php | 29 + library/includes/bbcode.php | 4 +- library/includes/functions.php | 139 +- library/includes/functions_admin.php | 4 +- library/includes/functions_admin_cron.php | 8 +- library/includes/functions_admin_torrent.php | 14 +- library/includes/functions_post.php | 32 +- library/includes/functions_selects.php | 6 +- library/includes/functions_torrent.php | 72 +- library/includes/functions_validate.php | 24 +- library/includes/init_bb.php | 2 +- library/includes/online_userlist.php | 10 +- library/includes/page_footer.php | 14 +- library/includes/page_header.php | 23 +- library/includes/posting_tpl.php | 4 +- library/includes/torrent_show_dl_list.php | 6 +- library/includes/ucp/activate.php | 8 +- library/includes/ucp/bonus.php | 16 +- library/includes/ucp/email.php | 10 +- library/includes/ucp/register.php | 80 +- library/includes/ucp/sendpasswd.php | 14 +- library/includes/ucp/topic_watch.php | 10 +- library/includes/ucp/viewprofile.php | 44 +- library/includes/ucp/viewtorrent.php | 6 +- library/language/en/main.php | 2833 ----------------- library/language/ru/main.php | 2833 ----------------- library/language/source/main.php | 2817 ---------------- login.php | 10 +- memberlist.php | 30 +- modcp.php | 62 +- poll.php | 40 +- posting.php | 54 +- privmsg.php | 152 +- resources/lang/ru/messages.php | 2348 ++++++++++++++ search.php | 104 +- styles/templates/default/page_header.tpl | 6 +- styles/templates/default/tpl_config.php | 38 +- terms.php | 2 +- tracker.php | 112 +- viewforum.php | 68 +- viewtopic.php | 96 +- 115 files changed, 3690 insertions(+), 9934 deletions(-) delete mode 100644 library/language/en/main.php delete mode 100644 library/language/ru/main.php delete mode 100644 library/language/source/main.php create mode 100644 resources/lang/ru/messages.php diff --git a/admin/admin_attach_cp.php b/admin/admin_attach_cp.php index 9943ac12f..71dcf532a 100644 --- a/admin/admin_attach_cp.php +++ b/admin/admin_attach_cp.php @@ -33,7 +33,7 @@ $view = (isset($_POST['search']) && $_POST['search']) ? 'attachments' : $view; // process modes based on view if ($view === 'username') { - $mode_types_text = array($lang['SORT_USERNAME'], $lang['SORT_ATTACHMENTS'], $lang['SORT_SIZE']); + $mode_types_text = array(trans('messages.SORT_USERNAME'), trans('messages.SORT_ATTACHMENTS'), trans('messages.SORT_SIZE')); $mode_types = array('username', 'attachments', 'filesize'); if (!$mode) { @@ -41,7 +41,7 @@ if ($view === 'username') { $sort_order = 'DESC'; } } elseif ($view === 'attachments') { - $mode_types_text = array($lang['SORT_FILENAME'], $lang['SORT_COMMENT'], $lang['SORT_EXTENSION'], $lang['SORT_SIZE'], $lang['SORT_DOWNLOADS'], $lang['SORT_POSTTIME']); + $mode_types_text = array(trans('messages.SORT_FILENAME'), trans('messages.SORT_COMMENT'), trans('messages.SORT_EXTENSION'), trans('messages.SORT_SIZE'), trans('messages.SORT_DOWNLOADS'), trans('messages.SORT_POSTTIME')); $mode_types = array('real_filename', 'comment', 'extension', 'filesize', 'downloads', 'post_time'); if (!$mode) { @@ -49,7 +49,7 @@ if ($view === 'username') { $sort_order = 'ASC'; } } elseif ($view === 'search') { - $mode_types_text = array($lang['SORT_FILENAME'], $lang['SORT_COMMENT'], $lang['SORT_EXTENSION'], $lang['SORT_SIZE'], $lang['SORT_DOWNLOADS'], $lang['SORT_POSTTIME']); + $mode_types_text = array(trans('messages.SORT_FILENAME'), trans('messages.SORT_COMMENT'), trans('messages.SORT_EXTENSION'), trans('messages.SORT_SIZE'), trans('messages.SORT_DOWNLOADS'), trans('messages.SORT_POSTTIME')); $mode_types = array('real_filename', 'comment', 'extension', 'filesize', 'downloads', 'post_time'); $sort_order = 'DESC'; @@ -111,7 +111,7 @@ if ($view === 'username') { } // Set select fields -$view_types_text = array($lang['VIEW_STATISTIC'], $lang['VIEW_SEARCH']); +$view_types_text = array(trans('messages.VIEW_STATISTIC'), trans('messages.VIEW_SEARCH')); $view_types = array('stats', 'search'); $select_view = ''; if ($sort_order === 'ASC') { - $select_sort_order .= ''; + $select_sort_order .= ''; } else { - $select_sort_order .= ''; + $select_sort_order .= ''; } $select_sort_order .= ''; @@ -268,16 +268,16 @@ if ($view === 'search') { $s_categories = ''; if ($s_forums) { - $s_forums = '' . $s_forums; + $s_forums = '' . $s_forums; // Category to search - $s_categories = ''; + $s_categories = ''; foreach ($list_cat as $cat_id => $cat_title) { $s_categories .= ''; } } else { - bb_die($lang['NO_SEARCHABLE_FORUMS']); + bb_die(trans('messages.NO_SEARCHABLE_FORUMS')); } $template->assign_vars(array( @@ -333,7 +333,7 @@ if ($view === 'attachments') { $template->assign_vars(array( 'S_USER_HIDDEN' => $s_hidden, - 'L_STATISTICS_FOR_USER' => sprintf($lang['STATISTICS_FOR_USER'], $username), + 'L_STATISTICS_FOR_USER' => sprintf(trans('messages.STATISTICS_FOR_USER'), $username), )); $sql = 'SELECT attach_id @@ -430,7 +430,7 @@ if ($view === 'attachments') { $post_titles[] = '' . $post_title . ''; } else { - $post_titles[] = $lang['PRIVATE_MESSAGE']; + $post_titles[] = trans('messages.PRIVATE_MESSAGE'); } } diff --git a/admin/admin_attachments.php b/admin/admin_attachments.php index 4f8a1ad0b..846b6d79b 100644 --- a/admin/admin_attachments.php +++ b/admin/admin_attachments.php @@ -197,18 +197,18 @@ if ($check_upload) { // Does the target directory exist, is it a directory and writeable if (!@file_exists(amod_realpath($upload_dir))) { $error = true; - $error_msg = sprintf($lang['DIRECTORY_DOES_NOT_EXIST'], $attach_config['upload_dir']) . '
'; + $error_msg = sprintf(trans('messages.DIRECTORY_DOES_NOT_EXIST'), $attach_config['upload_dir']) . '
'; } if (!$error && !is_dir($upload_dir)) { $error = true; - $error_msg = sprintf($lang['DIRECTORY_IS_NOT_A_DIR'], $attach_config['upload_dir']) . '
'; + $error_msg = sprintf(trans('messages.DIRECTORY_IS_NOT_A_DIR'), $attach_config['upload_dir']) . '
'; } if (!$error) { if (!($fp = @fopen($upload_dir . '/0_000000.000', 'wb'))) { $error = true; - $error_msg = sprintf($lang['DIRECTORY_NOT_WRITEABLE'], $attach_config['upload_dir']) . '
'; + $error_msg = sprintf(trans('messages.DIRECTORY_NOT_WRITEABLE'), $attach_config['upload_dir']) . '
'; } else { @fclose($fp); unlink_attach($upload_dir . '/0_000000.000'); @@ -216,14 +216,14 @@ if ($check_upload) { } if (!$error) { - bb_die($lang['TEST_SETTINGS_SUCCESSFUL'] . '

' . sprintf($lang['CLICK_RETURN_ATTACH_CONFIG'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.TEST_SETTINGS_SUCCESSFUL') . '

' . sprintf(trans('messages.CLICK_RETURN_ATTACH_CONFIG'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } } // Management if ($submit && $mode == 'manage') { if (!$error) { - bb_die($lang['ATTACH_CONFIG_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_ATTACH_CONFIG'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.ATTACH_CONFIG_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_ATTACH_CONFIG'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } } @@ -256,12 +256,12 @@ if ($mode == 'manage') { if ($submit && $mode == 'cats') { if (!$error) { - bb_die($lang['ATTACH_CONFIG_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_ATTACH_CONFIG'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.ATTACH_CONFIG_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_ATTACH_CONFIG'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } } if ($mode == 'cats') { - $s_assigned_group_images = $lang['NONE']; + $s_assigned_group_images = trans('messages.NONE'); $sql = 'SELECT group_name, cat_id FROM ' . BB_EXTENSION_GROUPS . ' WHERE cat_id > 0 ORDER BY cat_id'; @@ -351,19 +351,19 @@ if ($check_image_cat) { if (!@file_exists(amod_realpath($upload_dir))) { $error = true; - $error_msg = sprintf($lang['DIRECTORY_DOES_NOT_EXIST'], $upload_dir) . '
'; + $error_msg = sprintf(trans('messages.DIRECTORY_DOES_NOT_EXIST'), $upload_dir) . '
'; } } if (!$error && !is_dir($upload_dir)) { $error = true; - $error_msg = sprintf($lang['DIRECTORY_IS_NOT_A_DIR'], $upload_dir) . '
'; + $error_msg = sprintf(trans('messages.DIRECTORY_IS_NOT_A_DIR'), $upload_dir) . '
'; } if (!$error) { if (!($fp = @fopen($upload_dir . '/0_000000.000', 'wb'))) { $error = true; - $error_msg = sprintf($lang['DIRECTORY_NOT_WRITEABLE'], $upload_dir) . '
'; + $error_msg = sprintf(trans('messages.DIRECTORY_NOT_WRITEABLE'), $upload_dir) . '
'; } else { @fclose($fp); @unlink($upload_dir . '/0_000000.000'); @@ -371,7 +371,7 @@ if ($check_image_cat) { } if (!$error) { - bb_die($lang['TEST_SETTINGS_SUCCESSFUL'] . '

' . sprintf($lang['CLICK_RETURN_ATTACH_CONFIG'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.TEST_SETTINGS_SUCCESSFUL') . '

' . sprintf(trans('messages.CLICK_RETURN_ATTACH_CONFIG'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } } @@ -442,7 +442,7 @@ if ($submit && $mode == 'quota') { if (isset($error_msg)) { $error_msg .= '
'; } - $error_msg .= sprintf($lang['QUOTA_LIMIT_EXIST'], $extension_group); + $error_msg .= sprintf(trans('messages.QUOTA_LIMIT_EXIST'), $extension_group); } } } @@ -460,7 +460,7 @@ if ($submit && $mode == 'quota') { } if (!$error) { - bb_die($lang['ATTACH_CONFIG_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_ATTACH_CONFIG'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.ATTACH_CONFIG_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_ATTACH_CONFIG'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } } diff --git a/admin/admin_board.php b/admin/admin_board.php index 94d8f3442..ebf659ae1 100644 --- a/admin/admin_board.php +++ b/admin/admin_board.php @@ -18,9 +18,9 @@ require INC_DIR . '/functions_selects.php'; $mode = $_GET['mode'] ?? ''; $return_links = array( - 'index' => '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''), - 'config' => '

' . sprintf($lang['CLICK_RETURN_CONFIG'], '', ''), - 'config_mods' => '

' . sprintf($lang['CLICK_RETURN_CONFIG_MODS'], '', '') + 'index' => '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''), + 'config' => '

' . sprintf(trans('messages.CLICK_RETURN_CONFIG'), '', ''), + 'config_mods' => '

' . sprintf(trans('messages.CLICK_RETURN_CONFIG_MODS'), '', '') ); /** @@ -50,7 +50,7 @@ if (!$result = OLD_DB()->sql_query($sql)) { } if (isset($_POST['submit'])) { - bb_die($lang['CONFIG_UPDATED'] . $return_links[$mode] . $return_links['index']); + bb_die(trans('messages.CONFIG_UPDATED') . $return_links[$mode] . $return_links['index']); } } diff --git a/admin/admin_bt_forum_cfg.php b/admin/admin_bt_forum_cfg.php index a563132c1..f40fe09a2 100644 --- a/admin/admin_bt_forum_cfg.php +++ b/admin/admin_bt_forum_cfg.php @@ -87,7 +87,7 @@ if ($submit && $confirm) { $datastore->update('cat_forums'); - bb_die($lang['CONFIG_UPD'] . '

' . sprintf($lang['RETURN_CONFIG'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.CONFIG_UPD') . '

' . sprintf(trans('messages.RETURN_CONFIG'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } // Set template vars @@ -136,9 +136,9 @@ foreach ($db_fields_bool as $field_name => $field_def_val) { } $template->assign_vars(array( - 'L_BT_SHOW_PEERS_MODE_COUNT' => ($cfg['bt_show_peers_mode'] == SHOW_PEERS_COUNT) ? '' . $lang['BT_SHOW_PEERS_MODE_COUNT'] . '' : $lang['BT_SHOW_PEERS_MODE_COUNT'], - 'L_BT_SHOW_PEERS_MODE_NAMES' => ($cfg['bt_show_peers_mode'] == SHOW_PEERS_NAMES) ? '' . $lang['BT_SHOW_PEERS_MODE_NAMES'] . '' : $lang['BT_SHOW_PEERS_MODE_NAMES'], - 'L_BT_SHOW_PEERS_MODE_FULL' => ($cfg['bt_show_peers_mode'] == SHOW_PEERS_FULL) ? '' . $lang['BT_SHOW_PEERS_MODE_FULL'] . '' : $lang['BT_SHOW_PEERS_MODE_FULL'], + 'L_BT_SHOW_PEERS_MODE_COUNT' => ($cfg['bt_show_peers_mode'] == SHOW_PEERS_COUNT) ? '' . trans('messages.BT_SHOW_PEERS_MODE_COUNT') . '' : trans('messages.BT_SHOW_PEERS_MODE_COUNT'), + 'L_BT_SHOW_PEERS_MODE_NAMES' => ($cfg['bt_show_peers_mode'] == SHOW_PEERS_NAMES) ? '' . trans('messages.BT_SHOW_PEERS_MODE_NAMES') . '' : trans('messages.BT_SHOW_PEERS_MODE_NAMES'), + 'L_BT_SHOW_PEERS_MODE_FULL' => ($cfg['bt_show_peers_mode'] == SHOW_PEERS_FULL) ? '' . trans('messages.BT_SHOW_PEERS_MODE_FULL') . '' : trans('messages.BT_SHOW_PEERS_MODE_FULL'), 'BT_SHOW_PEERS_MODE_COUNT_VAL' => SHOW_PEERS_COUNT, 'BT_SHOW_PEERS_MODE_NAMES_VAL' => SHOW_PEERS_NAMES, diff --git a/admin/admin_bt_tracker_cfg.php b/admin/admin_bt_tracker_cfg.php index a963abf28..f7297f9ab 100644 --- a/admin/admin_bt_tracker_cfg.php +++ b/admin/admin_bt_tracker_cfg.php @@ -16,7 +16,7 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; if (!IS_SUPER_ADMIN) { - bb_die($lang['NOT_ADMIN']); + bb_die(trans('messages.NOT_ADMIN')); } require INC_DIR . '/functions_admin_torrent.php'; diff --git a/admin/admin_cron.php b/admin/admin_cron.php index ab1c4115a..290871ffa 100644 --- a/admin/admin_cron.php +++ b/admin/admin_cron.php @@ -30,7 +30,7 @@ if ($mode == 'run' && !$job_id) { } if (!IS_SUPER_ADMIN) { - bb_die($lang['NOT_ADMIN']); + bb_die(trans('messages.NOT_ADMIN')); } require INC_DIR . '/functions_admin_torrent.php'; @@ -64,10 +64,10 @@ switch ($mode) { 'ROW_CLASS' => !($i % 2) ? 'row2' : 'row1', 'JOB_ID' => $i + 1, 'CRON_ID' => $row['cron_id'], - 'CRON_ACTIVE' => $row['cron_active'] ? '' . $lang['YES'] . '' : '' . $lang['NO'] . '', + 'CRON_ACTIVE' => $row['cron_active'] ? '' . trans('messages.YES') . '' : '' . trans('messages.NO') . '', 'CRON_TITLE' => $row['cron_title'], 'CRON_SCRIPT' => $row['cron_script'], - 'SCHEDULE' => $row['schedule'] ? $lang['SCHEDULE'][$row['schedule']] : '' . $lang['NOSELECT'] . '', + 'SCHEDULE' => $row['schedule'] ? trans('messages.SCHEDULE.' . $row['schedule']) : '' . trans('messages.NOSELECT') . '', 'RUN_DAY' => $row['run_day'], 'LAST_RUN' => $row['last_run'], 'NEXT_RUN' => $row['next_run'], @@ -110,7 +110,7 @@ switch ($mode) { 'CRON_ACTIVE' => $row['cron_active'], 'CRON_TITLE' => $row['cron_title'], 'CRON_SCRIPT' => $row['cron_script'], - 'SCHEDULE' => $row['schedule'] ? $lang['SCHEDULE'][$row['schedule']] : '', + 'SCHEDULE' => $row['schedule'] ? trans('messages.SCHEDULE.' . $row['schedule']) : '', 'RUN_DAY' => $row['run_day'], 'RUN_TIME' => $row['run_time'], 'RUN_ORDER' => $row['run_order'], @@ -125,13 +125,13 @@ switch ($mode) { )); } - $run_day = array($lang['DELTA_TIME']['INTERVALS']['mday'][0] => 0); + $run_day = [trans('messages.DELTA_TIME.INTERVALS.mday.0') => 0]; for ($i = 1; $i <= 28; $i++) { $run_day[$i] = $i; } - $schedule = array($lang['SCHEDULE']['select'] => 0); - foreach ($lang['SCHEDULE'] as $type => $key) { + $schedule = [trans('messages.SCHEDULE.select') => 0]; + foreach (trans('messages.SCHEDULE') as $type => $key) { $schedule[$key] = $type; } @@ -141,18 +141,18 @@ switch ($mode) { 'S_MODE' => 'edit', 'SCHEDULE' => build_select('schedule', $schedule, $row['schedule']), 'RUN_DAY' => build_select('run_day', $run_day, $row['run_day']), - 'L_CRON_EDIT_HEAD' => $lang['CRON_EDIT_HEAD_EDIT'], + 'L_CRON_EDIT_HEAD' => trans('messages.CRON_EDIT_HEAD_EDIT'), )); break; case 'add': - $run_day = array($lang['DELTA_TIME']['INTERVALS']['mday'][0] => 0); + $run_day = [trans('messages.DELTA_TIME.INTERVALS.mday.0') => 0]; for ($i = 1; $i <= 28; $i++) { $run_day[$i] = $i; } $schedule = array(); - foreach ($lang['SCHEDULE'] as $type => $key) { + foreach (trans('messages.SCHEDULE') as $type => $key) { $schedule[$key] = $type; } @@ -181,7 +181,7 @@ switch ($mode) { case 'delete': delete_jobs($job_id); - bb_die($lang['JOB_REMOVED'] . '

' . sprintf($lang['CLICK_RETURN_JOBS'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.JOB_REMOVED') . '

' . sprintf(trans('messages.CLICK_RETURN_JOBS'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; } diff --git a/admin/admin_disallow.php b/admin/admin_disallow.php index 88618783f..cd774e0b4 100644 --- a/admin/admin_disallow.php +++ b/admin/admin_disallow.php @@ -21,20 +21,20 @@ if (isset($_POST['add_name'])) { $disallowed_user = isset($_POST['disallowed_user']) ? trim($_POST['disallowed_user']) : trim($_GET['disallowed_user']); if ($disallowed_user == '') { - bb_die($lang['FIELDS_EMPTY']); + bb_die(trans('messages.FIELDS_EMPTY')); } if (!validate_username($disallowed_user)) { - $message = $lang['DISALLOWED_ALREADY']; + $message = trans('messages.DISALLOWED_ALREADY'); } else { $sql = 'INSERT INTO ' . BB_DISALLOW . " (disallow_username) VALUES('" . OLD_DB()->escape($disallowed_user) . "')"; $result = OLD_DB()->sql_query($sql); if (!$result) { bb_die('Could not add disallowed user'); } - $message = $lang['DISALLOW_SUCCESSFUL']; + $message = trans('messages.DISALLOW_SUCCESSFUL'); } - $message .= '

' . sprintf($lang['CLICK_RETURN_DISALLOWADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= '

' . sprintf(trans('messages.CLICK_RETURN_DISALLOWADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } elseif (isset($_POST['delete_name'])) { @@ -46,7 +46,7 @@ if (isset($_POST['add_name'])) { bb_die('Could not removed disallowed user'); } - $message .= $lang['DISALLOWED_DELETED'] . '

' . sprintf($lang['CLICK_RETURN_DISALLOWADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= trans('messages.DISALLOWED_DELETED') . '

' . sprintf(trans('messages.CLICK_RETURN_DISALLOWADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } @@ -68,7 +68,7 @@ $disallowed = OLD_DB()->sql_fetchrowset($result); $disallow_select = ''; $template->assign_block_vars('forum_auth', array( - 'CELL_TITLE' => $lang['SIMPLE_MODE'], + 'CELL_TITLE' => trans('messages.SIMPLE_MODE'), 'S_AUTH_LEVELS_SELECT' => $simple_auth, )); @@ -184,7 +184,7 @@ if (empty($forum_id)) { for ($k = 0, $kMax = count($forum_auth_levels); $k < $kMax; $k++) { $selected = ($forum_rows[0][$forum_auth_fields[$j]] == $forum_auth_const[$k]) ? ' selected="selected"' : ''; - $custom_auth[$j] .= ''; + $custom_auth[$j] .= ''; } $custom_auth[$j] .= ' '; @@ -201,7 +201,7 @@ if (empty($forum_id)) { $adv_mode = empty($adv) ? '1' : '0'; $switch_mode = "admin_forumauth.php?f=$forum_id&adv=$adv_mode"; - $switch_mode_text = empty($adv) ? $lang['ADVANCED_MODE'] : $lang['SIMPLE_MODE']; + $switch_mode_text = empty($adv) ? trans('messages.ADVANCED_MODE') : trans('messages.SIMPLE_MODE'); $u_switch_mode = '' . $switch_mode_text . ''; $s_hidden_fields = ''; diff --git a/admin/admin_forumauth_list.php b/admin/admin_forumauth_list.php index bd7fec7cd..2b0efa830 100644 --- a/admin/admin_forumauth_list.php +++ b/admin/admin_forumauth_list.php @@ -26,13 +26,13 @@ $simple_auth_ary = [ ]; $simple_auth_types = [ - $lang['PUBLIC'], - $lang['REGISTERED'], - $lang['REGISTERED'] . ' [' . $lang['HIDDEN'] . ']', - $lang['PRIVATE'], - $lang['PRIVATE'] . ' [' . $lang['HIDDEN'] . ']', - $lang['MODERATORS'], - $lang['MODERATORS'] . ' [' . $lang['HIDDEN'] . ']', + trans('messages.PUBLIC'), + trans('messages.REGISTERED'), + trans('messages.REGISTERED') . ' [' . trans('messages.HIDDEN') . ']', + trans('messages.PRIVATE'), + trans('messages.PRIVATE') . ' [' . trans('messages.HIDDEN') . ']', + trans('messages.MODERATORS'), + trans('messages.MODERATORS') . ' [' . trans('messages.HIDDEN') . ']', ]; $forum_auth_fields = [ @@ -52,7 +52,7 @@ $forum_auth_fields = [ $field_names = []; foreach ($forum_auth_fields as $auth_type) { - $field_names[$auth_type] = $lang[strtoupper($auth_type)]; + $field_names[$auth_type] = trans('messages.' . strtoupper($auth_type)); } $forum_auth_levels = ['ALL', 'REG', 'PRIVATE', 'MOD', 'ADMIN']; @@ -146,7 +146,7 @@ if (isset($_POST['submit'])) { } $datastore->update('cat_forums'); - bb_die($lang['FORUM_AUTH_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMAUTH'], '', '')); + bb_die(trans('messages.FORUM_AUTH_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_FORUMAUTH'), '', '')); } // End of submit // @@ -218,8 +218,8 @@ if (empty($forum_id) && empty($cat_id)) { } } $template->assign_block_vars('cat_row.forum_row.forum_auth_data', array( - 'CELL_VALUE' => $lang['FORUM_' . $item_auth_level], - 'AUTH_EXPLAIN' => sprintf($lang[strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $forum_auth_fields[$k])], $lang[strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $item_auth_level)])) + 'CELL_VALUE' => trans('messages.FORUM_' . $item_auth_level), + 'AUTH_EXPLAIN' => sprintf(trans('messages.' . strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $forum_auth_fields[$k])), trans('messages.' . strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $item_auth_level)))) ); } } @@ -277,8 +277,8 @@ if (empty($forum_id) && empty($cat_id)) { } } $template->assign_block_vars('cat_row.forum_row.forum_auth_data', array( - 'CELL_VALUE' => $lang['FORUM_' . $item_auth_level], - 'AUTH_EXPLAIN' => sprintf($lang[strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $forum_auth_fields[$k])], $lang[strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $item_auth_level)])) + 'CELL_VALUE' => trans('messages.FORUM_' . $item_auth_level), + 'AUTH_EXPLAIN' => sprintf(trans('messages.' . strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $forum_auth_fields[$k])), trans('messages.' . strtoupper('FORUM_AUTH_LIST_EXPLAIN_' . $item_auth_level)))) ); } } @@ -293,7 +293,7 @@ if (empty($forum_id) && empty($cat_id)) { for ($k = 0, $kMax = count($forum_auth_levels); $k < $kMax; $k++) { $selected = (!empty($forum_rows) && $forum_rows[0][$forum_auth_fields[$j]] == $forum_auth_const[$k]) ? ' selected="selected"' : ''; - $custom_auth[$j] .= ''; + $custom_auth[$j] .= ''; } $custom_auth[$j] .= ''; diff --git a/admin/admin_forums.php b/admin/admin_forums.php index 45dd66e0d..d004f54cb 100644 --- a/admin/admin_forums.php +++ b/admin/admin_forums.php @@ -65,9 +65,9 @@ if ($mode) { if ($mode == 'editforum') { // $newmode determines if we are going to INSERT or UPDATE after posting? - $l_title = $lang['EDIT_FORUM']; + $l_title = trans('messages.EDIT_FORUM'); $newmode = 'modforum'; - $buttonvalue = $lang['UPDATE']; + $buttonvalue = trans('messages.UPDATE'); $forum_id = (int)$_GET[POST_FORUM_URL]; @@ -87,9 +87,9 @@ if ($mode) { $allow_porno_topic = $row['allow_porno_topic']; $self_moderated = $row['self_moderated']; } else { - $l_title = $lang['CREATE_FORUM']; + $l_title = trans('messages.CREATE_FORUM'); $newmode = 'createforum'; - $buttonvalue = $lang['CREATE_FORUM']; + $buttonvalue = trans('messages.CREATE_FORUM'); $forumdesc = ''; $forumstatus = FORUM_UNLOCKED; @@ -119,15 +119,15 @@ if ($mode) { $forumstatus == FORUM_LOCKED ? $forumlocked = 'selected="selected"' : $forumunlocked = 'selected="selected"'; - $statuslist = '\n'; - $statuslist .= '\n'; + $statuslist = '\n'; + $statuslist .= '\n'; $forum_display_sort_list = get_forum_display_sort_option($forum_display_sort, 'list', 'sort'); $forum_display_order_list = get_forum_display_sort_option($forum_display_order, 'list', 'order'); $s_hidden_fields = ''; - $s_parent = '\n'; + $s_parent = '\n'; $sel_forum = ($forum_parent && !isset($_REQUEST['forum_parent'])) ? $forum_id : $forum_parent; $s_parent .= sf_get_list('forum', $forum_id, $sel_forum); @@ -146,10 +146,10 @@ if ($mode) { 'S_PARENT_FORUM' => $s_parent, 'CAT_LIST_CLASS' => $forum_parent ? 'hidden' : '', 'SHOW_ON_INDEX_CLASS' => (!$forum_parent) ? 'hidden' : '', - 'TPL_SELECT' => get_select('forum_tpl', $forum_tpl_id, 'html', $lang['TEMPLATE_DISABLE']), - 'ALLOW_REG_TRACKER' => build_select('allow_reg_tracker', array($lang['DISALLOWED'] => 0, $lang['ALLOWED'] => 1), $allow_reg_tracker), - 'ALLOW_PORNO_TOPIC' => build_select('allow_porno_topic', array($lang['NONE'] => 0, $lang['YES'] => 1), $allow_porno_topic), - 'SELF_MODERATED' => build_select('self_moderated', array($lang['NONE'] => 0, $lang['YES'] => 1), $self_moderated), + 'TPL_SELECT' => get_select('forum_tpl', $forum_tpl_id, 'html', trans('messages.TEMPLATE_DISABLE')), + 'ALLOW_REG_TRACKER' => build_select('allow_reg_tracker', array(trans('messages.DISALLOWED') => 0, trans('messages.ALLOWED') => 1), $allow_reg_tracker), + 'ALLOW_PORNO_TOPIC' => build_select('allow_porno_topic', array(trans('messages.NONE') => 0, trans('messages.YES') => 1), $allow_porno_topic), + 'SELF_MODERATED' => build_select('self_moderated', array(trans('messages.NONE') => 0, trans('messages.YES') => 1), $self_moderated), 'L_FORUM_TITLE' => $l_title, @@ -218,7 +218,7 @@ if ($mode) { $datastore->update('cat_forums'); OLD_CACHE('bb_cache')->rm(); - bb_die($lang['FORUMS_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.FORUMS_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; @@ -305,9 +305,9 @@ if ($mode) { $datastore->update('cat_forums'); OLD_CACHE('bb_cache')->rm(); - $message = $lang['FORUMS_UPDATED'] . '

'; + $message = trans('messages.FORUMS_UPDATED') . '

'; $message .= $fix ? "$fix

" : ''; - $message .= sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); break; @@ -334,7 +334,7 @@ if ($mode) { $datastore->update('cat_forums'); OLD_CACHE('bb_cache')->rm(); - bb_die($lang['FORUMS_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.FORUMS_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; @@ -354,7 +354,7 @@ if ($mode) { 'TPL_EDIT_CATEGORY' => true, 'CAT_TITLE' => htmlCHR($cat_info['cat_title']), 'S_HIDDEN_FIELDS' => build_hidden_fields($hidden_fields), - 'S_SUBMIT_VALUE' => $lang['UPDATE'], + 'S_SUBMIT_VALUE' => trans('messages.UPDATE'), 'S_FORUM_ACTION' => 'admin_forums.php', )); @@ -388,7 +388,7 @@ if ($mode) { $datastore->update('cat_forums'); OLD_CACHE('bb_cache')->rm(); - bb_die($lang['FORUMS_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.FORUMS_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; @@ -398,7 +398,7 @@ if ($mode) { // $forum_id = (int)$_GET['f']; - $move_to_options = ''; + $move_to_options = ''; $move_to_options .= sf_get_list('forum', $forum_id, 0); $foruminfo = get_info('forum', $forum_id); @@ -412,13 +412,13 @@ if ($mode) { 'TPL_DELETE_FORUM' => true, 'WHAT_TO_DELETE' => htmlCHR($foruminfo['forum_name']), - 'DELETE_TITLE' => $lang['FORUM_DELETE'], - 'CAT_FORUM_NAME' => $lang['FORUM_NAME'], + 'DELETE_TITLE' => trans('messages.FORUM_DELETE'), + 'CAT_FORUM_NAME' => trans('messages.FORUM_NAME'), 'S_HIDDEN_FIELDS' => build_hidden_fields($hidden_fields), 'S_FORUM_ACTION' => 'admin_forums.php', 'MOVE_TO_OPTIONS' => $move_to_options, - 'S_SUBMIT_VALUE' => $lang['MOVE_AND_DELETE'], + 'S_SUBMIT_VALUE' => trans('messages.MOVE_AND_DELETE'), )); break; @@ -474,7 +474,7 @@ if ($mode) { $datastore->update('cat_forums'); OLD_CACHE('bb_cache')->rm(); - bb_die($lang['FORUMS_UPDATED'] . '

' . sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.FORUMS_UPDATED') . '

' . sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; @@ -488,9 +488,9 @@ if ($mode) { $row = OLD_DB()->fetch_row('SELECT COUNT(*) AS forums_count FROM ' . BB_FORUMS); if ($row['forums_count'] > 0) { - bb_die($lang['MUST_DELETE_FORUMS']); + bb_die(trans('messages.MUST_DELETE_FORUMS')); } else { - $template->assign_var('NOWHERE_TO_MOVE', $lang['NOWHERE_TO_MOVE']); + $template->assign_var('NOWHERE_TO_MOVE', trans('messages.NOWHERE_TO_MOVE')); } } @@ -503,13 +503,13 @@ if ($mode) { 'TPL_DELETE_FORUM' => true, 'WHAT_TO_DELETE' => htmlCHR($catinfo['cat_title']), - 'DELETE_TITLE' => $lang['CATEGORY_DELETE'], - 'CAT_FORUM_NAME' => $lang['CATEGORY'], + 'DELETE_TITLE' => trans('messages.CATEGORY_DELETE'), + 'CAT_FORUM_NAME' => trans('messages.CATEGORY'), 'S_HIDDEN_FIELDS' => build_hidden_fields($hidden_fields), 'S_FORUM_ACTION' => 'admin_forums.php', 'MOVE_TO_OPTIONS' => get_list('category', $cat_id, 0), - 'S_SUBMIT_VALUE' => $lang['MOVE_AND_DELETE'], + 'S_SUBMIT_VALUE' => trans('messages.MOVE_AND_DELETE'), )); break; @@ -540,9 +540,9 @@ if ($mode) { $datastore->update('cat_forums'); OLD_CACHE('bb_cache')->rm(); - $message = $lang['FORUMS_UPDATED'] . '

'; + $message = trans('messages.FORUMS_UPDATED') . '

'; $message .= $fix ? "$fix

" : ''; - $message .= sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); break; @@ -648,7 +648,7 @@ if ($mode) { break; default: - bb_die($lang['NO_MODE']); + bb_die(trans('messages.NO_MODE')); break; } @@ -659,7 +659,7 @@ if (!$mode || $show_main_page) { 'TPL_FORUMS_LIST' => true, 'S_FORUM_ACTION' => 'admin_forums.php', - 'L_FORUM_TITLE' => $lang['FORUM_ADMIN_MAIN'], + 'L_FORUM_TITLE' => trans('messages.FORUM_ADMIN_MAIN'), )); $sql = 'SELECT cat_id, cat_title, cat_order FROM ' . BB_CATEGORIES . ' ORDER BY cat_order'; @@ -1033,8 +1033,6 @@ function get_orphan_sf() */ function fix_orphan_sf($orphan_sf_sql = '', $show_mess = false) { - global $lang; - $done_mess = ''; if (!$orphan_sf_sql) { @@ -1054,8 +1052,8 @@ function fix_orphan_sf($orphan_sf_sql = '', $show_mess = false) if ($show_mess) { $message = $done_mess . '

'; - $message .= sprintf($lang['CLICK_RETURN_FORUMADMIN'], '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= sprintf(trans('messages.CLICK_RETURN_FORUMADMIN'), '', '') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } } diff --git a/admin/admin_groups.php b/admin/admin_groups.php index 564132d67..eb199d292 100644 --- a/admin/admin_groups.php +++ b/admin/admin_groups.php @@ -22,7 +22,7 @@ attachment_quota_settings('group', isset($_POST['group_update']), $mode); if (!empty($_POST['edit']) || !empty($_POST['new'])) { if (!empty($_POST['edit'])) { if (!$row = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } $group_info = array( 'group_name' => $row['group_name'], @@ -58,7 +58,7 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { 'GROUP_NAME' => stripslashes(htmlspecialchars($group_info['group_name'])), 'GROUP_DESCRIPTION' => stripslashes(htmlspecialchars($group_info['group_description'])), 'GROUP_MODERATOR' => replace_quote($group_info['group_mod_name']), - 'T_GROUP_EDIT_DELETE' => ($mode == 'newgroup') ? $lang['CREATE_NEW_GROUP'] : $lang['EDIT_GROUP'], + 'T_GROUP_EDIT_DELETE' => ($mode == 'newgroup') ? trans('messages.CREATE_NEW_GROUP') : trans('messages.EDIT_GROUP'), 'U_SEARCH_USER' => BB_ROOT . 'search.php?mode=searchuser', 'S_GROUP_OPEN_TYPE' => GROUP_OPEN, 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED, @@ -73,14 +73,14 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { } elseif (!empty($_POST['group_update'])) { if (!empty($_POST['group_delete'])) { if (!$group_info = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } // Delete Group delete_group($group_id); - $message = $lang['DELETED_GROUP'] . '

'; - $message .= sprintf($lang['CLICK_RETURN_GROUPSADMIN'], '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message = trans('messages.DELETED_GROUP') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_GROUPSADMIN'), '', '') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } else { @@ -91,14 +91,14 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { $group_moderator = $_POST['username'] ?? ''; if ($group_name === '') { - bb_die($lang['NO_GROUP_NAME']); + bb_die(trans('messages.NO_GROUP_NAME')); } elseif ($group_moderator === '') { - bb_die($lang['NO_GROUP_MODERATOR']); + bb_die(trans('messages.NO_GROUP_MODERATOR')); } $this_userdata = get_userdata($group_moderator, true); if (!$group_moderator = $this_userdata['user_id']) { - bb_die($lang['NO_GROUP_MODERATOR']); + bb_die(trans('messages.NO_GROUP_MODERATOR')); } $sql_ary = array( @@ -112,7 +112,7 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { if ($mode == 'editgroup') { if (!$group_info = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } if ($group_info['group_moderator'] != $group_moderator) { @@ -131,9 +131,9 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { // Update group's data OLD_DB()->query('UPDATE ' . BB_GROUPS . " SET $sql_args WHERE group_id = $group_id"); - $message = $lang['UPDATED_GROUP'] . '

'; - $message .= sprintf($lang['CLICK_RETURN_GROUPSADMIN'], '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message = trans('messages.UPDATED_GROUP') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_GROUPSADMIN'), '', '') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } elseif ($mode == 'newgroup') { @@ -147,13 +147,13 @@ if (!empty($_POST['edit']) || !empty($_POST['new'])) { // Create user_group for group's moderator add_user_into_group($new_group_id, $group_moderator); - $message = $lang['ADDED_NEW_GROUP'] . '

'; - $message .= sprintf($lang['CLICK_RETURN_GROUPSADMIN'], '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message = trans('messages.ADDED_NEW_GROUP') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_GROUPSADMIN'), '', '') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } else { - bb_die($lang['NO_GROUP_ACTION']); + bb_die(trans('messages.NO_GROUP_ACTION')); } } } else { diff --git a/admin/admin_log.php b/admin/admin_log.php index c88c16c20..097a2c143 100644 --- a/admin/admin_log.php +++ b/admin/admin_log.php @@ -66,7 +66,7 @@ if (!$mod = $datastore->get('moderators')) { array_deep($mod['moderators'], 'html_entity_decode'); array_deep($mod['admins'], 'html_entity_decode'); -$users = array($lang['ACTS_LOG_ALL_ACTIONS'] => $all_users) + array_flip($mod['moderators']) + array_flip($mod['admins']); +$users = array(trans('messages.ACTS_LOG_ALL_ACTIONS') => $all_users) + array_flip($mod['moderators']) + array_flip($mod['admins']); unset($mod); @@ -253,7 +253,7 @@ if ($log_rowset) { $datetime_href_s = url_arg($datetime_href_s, $daysback_key, 1); $template->assign_block_vars('log', array( - 'ACTION_DESC' => $lang['LOG_ACTION']['LOG_TYPE'][$log_type_flip[$row['log_type_id']]], + 'ACTION_DESC' => trans('messages.LOG_ACTION.LOG_TYPE.' . $log_type_flip[$row['log_type_id']]), 'ACTION_HREF_S' => url_arg($url, $type_key, $row['log_type_id']), 'USER_ID' => $row['log_user_id'], @@ -323,7 +323,7 @@ if ($log_rowset) { } // Select -$log_type_select = array($lang['ACTS_LOG_ALL_ACTIONS'] => $all_types) + $log_action->log_type_select; +$log_type_select = array(trans('messages.ACTS_LOG_ALL_ACTIONS') => $all_types) + $log_action->log_type_select; $template->assign_vars(array( 'LOG_COLSPAN' => 4, @@ -332,7 +332,7 @@ $template->assign_vars(array( 'DATETIME_VAL' => date('Y-m-d', $datetime_val), 'DAYSBACK_NAME' => $daysback_key, 'DAYSBACK_VAL' => $daysback_val, - 'FIRST_LOG_TIME' => $first_log_time ? date('Y-m-d', $first_log_time) : $lang['ACC_NONE'], + 'FIRST_LOG_TIME' => $first_log_time ? date('Y-m-d', $first_log_time) : trans('messages.ACC_NONE'), 'TITLE_MATCH_MAX' => $title_match_max_len, 'TITLE_MATCH_NAME' => $title_match_key, diff --git a/admin/admin_mass_email.php b/admin/admin_mass_email.php index 8c90f6b9e..e6df2b275 100644 --- a/admin/admin_mass_email.php +++ b/admin/admin_mass_email.php @@ -24,13 +24,13 @@ $errors = $user_id_sql = []; if (isset($_POST['submit'])) { if (!$subject) { - $errors[] = $lang['EMPTY_SUBJECT']; + $errors[] = trans('messages.EMPTY_SUBJECT'); } if (!$message) { - $errors[] = $lang['EMPTY_MESSAGE']; + $errors[] = trans('messages.EMPTY_MESSAGE'); } if (!$group_id) { - $errors[] = $lang['GROUP_NOT_EXIST']; + $errors[] = trans('messages.GROUP_NOT_EXIST'); } if (!$errors) { @@ -88,7 +88,7 @@ $sql = 'SELECT group_id, group_name ORDER BY group_name '; -$groups = array('-- ' . $lang['ALL_USERS'] . ' --' => -1); +$groups = array('-- ' . trans('messages.ALL_USERS') . ' --' => -1); foreach (OLD_DB()->fetch_rowset($sql) as $row) { $groups[$row['group_name']] = $row['group_id']; } diff --git a/admin/admin_ranks.php b/admin/admin_ranks.php index 1b58087c2..c50acff07 100644 --- a/admin/admin_ranks.php +++ b/admin/admin_ranks.php @@ -40,7 +40,7 @@ if ($mode != '') { if ($mode == 'edit') { if (empty($rank_id)) { - bb_die($lang['MUST_SELECT_RANK']); + bb_die(trans('messages.MUST_SELECT_RANK')); } $sql = 'SELECT * FROM ' . BB_RANKS . " WHERE rank_id = $rank_id"; @@ -76,7 +76,7 @@ if ($mode != '') { $rank_image = isset($_POST['rank_image']) ? trim($_POST['rank_image']) : ''; if ($rank_title == '') { - bb_die($lang['MUST_SELECT_RANK']); + bb_die(trans('messages.MUST_SELECT_RANK')); } // @@ -91,7 +91,7 @@ if ($mode != '') { if ($rank_id) { $sql = 'UPDATE ' . BB_USERS . " SET user_rank = 0 WHERE user_rank = $rank_id"; if (!$result = OLD_DB()->sql_query($sql)) { - bb_die($lang['NO_UPDATE_RANKS']); + bb_die(trans('messages.NO_UPDATE_RANKS')); } $sql = 'UPDATE ' . BB_RANKS . " @@ -100,19 +100,19 @@ if ($mode != '') { rank_style = '" . OLD_DB()->escape($rank_style) . "' WHERE rank_id = $rank_id"; - $message = $lang['RANK_UPDATED']; + $message = trans('messages.RANK_UPDATED'); } else { $sql = 'INSERT INTO ' . BB_RANKS . " (rank_title, rank_image, rank_style) VALUES ('" . OLD_DB()->escape($rank_title) . "', '" . OLD_DB()->escape($rank_image) . "', '" . OLD_DB()->escape($rank_style) . "')"; - $message = $lang['RANK_ADDED']; + $message = trans('messages.RANK_ADDED'); } if (!$result = OLD_DB()->sql_query($sql)) { bb_die('Could not update / insert into ranks table'); } - $message .= '

' . sprintf($lang['CLICK_RETURN_RANKADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= '

' . sprintf(trans('messages.CLICK_RETURN_RANKADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); $datastore->update('ranks'); @@ -137,14 +137,14 @@ if ($mode != '') { $sql = 'UPDATE ' . BB_USERS . " SET user_rank = 0 WHERE user_rank = $rank_id"; if (!$result = OLD_DB()->sql_query($sql)) { - bb_die($lang['NO_UPDATE_RANKS']); + bb_die(trans('messages.NO_UPDATE_RANKS')); } $datastore->update('ranks'); - bb_die($lang['RANK_REMOVED'] . '

' . sprintf($lang['CLICK_RETURN_RANKADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.RANK_REMOVED') . '

' . sprintf(trans('messages.CLICK_RETURN_RANKADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } else { - bb_die($lang['MUST_SELECT_RANK']); + bb_die(trans('messages.MUST_SELECT_RANK')); } } else { bb_die('Invalid mode'); diff --git a/admin/admin_rebuild_search.php b/admin/admin_rebuild_search.php index a8d24ad10..873e22733 100644 --- a/admin/admin_rebuild_search.php +++ b/admin/admin_rebuild_search.php @@ -16,7 +16,7 @@ if (!empty($setmodules)) { require __DIR__ . '/pagestart.php'; if (!IS_SUPER_ADMIN) { - bb_die($lang['NOT_ADMIN']); + bb_die(trans('messages.NOT_ADMIN')); } require INC_DIR . '/bbcode.php'; @@ -50,7 +50,7 @@ if (isset($_REQUEST['cancel_button'])) { "); } - bb_die(sprintf($lang['REBUILD_SEARCH_ABORTED'], $last_session_data['end_post_id']) . '

' . sprintf($lang['CLICK_RETURN_REBUILD_SEARCH'], '', '')); + bb_die(sprintf(trans('messages.REBUILD_SEARCH_ABORTED'), $last_session_data['end_post_id']) . '

' . sprintf(trans('messages.CLICK_RETURN_REBUILD_SEARCH'), '', '')); } // from which post to start processing @@ -98,13 +98,13 @@ if (isset($_REQUEST['time_limit'])) { $time_limit = (int)$_REQUEST['time_limit']; } else { $time_limit = $def_time_limit; - $time_limit_explain = $lang['TIME_LIMIT_EXPLAIN']; + $time_limit_explain = trans('messages.TIME_LIMIT_EXPLAIN'); // check for webserver timeout (IE returns null) if (isset($_SERVER['HTTP_KEEP_ALIVE'])) { // get webserver timeout $webserver_timeout = (int)$_SERVER['HTTP_KEEP_ALIVE']; - $time_limit_explain .= '
' . sprintf($lang['TIME_LIMIT_EXPLAIN_WEBSERVER'], $webserver_timeout); + $time_limit_explain .= '
' . sprintf(trans('messages.TIME_LIMIT_EXPLAIN_WEBSERVER'), $webserver_timeout); if ($time_limit > $webserver_timeout) { $time_limit = $webserver_timeout; @@ -118,7 +118,7 @@ $refresh_rate = isset($_REQUEST['refresh_rate']) ? (int)$_REQUEST['refresh_rate' // check if the user gave wrong input if ($mode == 'submit') { if (($session_posts_processing || $post_limit || $refresh_rate || $time_limit) <= 0) { - bb_die($lang['WRONG_INPUT'] . '

' . sprintf($lang['CLICK_RETURN_REBUILD_SEARCH'], '', '')); + bb_die(trans('messages.WRONG_INPUT') . '

' . sprintf(trans('messages.CLICK_RETURN_REBUILD_SEARCH'), '', '')); } } @@ -222,8 +222,8 @@ if ($mode == 'submit' || $mode == 'refresh') { $template->assign_vars(array('TPL_REBUILD_SEARCH_PROGRESS' => true)); $processing_messages = ''; - $processing_messages .= $timer_expired ? sprintf($lang['TIMER_EXPIRED'], TIMENOW - $start_time) : ''; - $processing_messages .= ($start == 0 && $clear_search) ? $lang['CLEARED_SEARCH_TABLES'] : ''; + $processing_messages .= $timer_expired ? sprintf(trans('messages.TIMER_EXPIRED'), TIMENOW - $start_time) : ''; + $processing_messages .= ($start == 0 && $clear_search) ? trans('messages.CLEARED_SEARCH_TABLES') : ''; // check if we have reached the end of our post processing $session_posts_processed = get_processed_posts('session'); @@ -238,10 +238,10 @@ if ($mode == 'submit' || $mode == 'refresh') { $form_parameters .= '&refresh_rate=' . $refresh_rate; $form_action = 'admin_rebuild_search.php' . '?mode=refresh' . $form_parameters; - $next_button = $lang['NEXT']; + $next_button = trans('messages.NEXT'); $progress_bar_img = $images['progress_bar']; - $processing_messages .= sprintf($lang['PROCESSING_NEXT_POSTS'], $post_limit); + $processing_messages .= sprintf(trans('messages.PROCESSING_NEXT_POSTS'), $post_limit); meta_refresh($form_action, $refresh_rate); @@ -253,11 +253,11 @@ if ($mode == 'submit' || $mode == 'refresh') { // end of processing $form_action = 'admin_rebuild_search.php'; - $next_button = $lang['FINISHED']; + $next_button = trans('messages.FINISHED'); $progress_bar_img = $images['progress_bar_full']; - $processing_messages .= ($session_posts_processed < $session_posts_processing) ? sprintf($lang['DELETED_POSTS'], $session_posts_processing - $session_posts_processed) : ''; - $processing_messages .= ($total_posts_processed == $total_posts) ? $lang['ALL_POSTS_PROCESSED'] : $lang['ALL_SESSION_POSTS_PROCESSED']; + $processing_messages .= ($session_posts_processed < $session_posts_processing) ? sprintf(trans('messages.DELETED_POSTS'), $session_posts_processing - $session_posts_processed) : ''; + $processing_messages .= ($total_posts_processed == $total_posts) ? trans('messages.ALL_POSTS_PROCESSED') : trans('messages.ALL_SESSION_POSTS_PROCESSED'); // if we have processed all the db posts we need to update the rebuild_status OLD_DB()->query('UPDATE ' . BB_SEARCH_REBUILD . ' SET @@ -274,7 +274,7 @@ if ($mode == 'submit' || $mode == 'refresh') { OLD_DB()->query("OPTIMIZE TABLE $table"); } - $processing_messages .= '
' . $lang['ALL_TABLES_OPTIMIZED']; + $processing_messages .= '
' . trans('messages.ALL_TABLES_OPTIMIZED'); } // calculate the percent @@ -315,17 +315,17 @@ if ($mode == 'submit' || $mode == 'refresh') { $template->assign_vars(array( 'L_NEXT' => $next_button, - 'L_TIME_LAST_POSTS_ADMIN' => sprintf($lang['TIME_LAST_POSTS'], $num_rows), + 'L_TIME_LAST_POSTS_ADMIN' => sprintf(trans('messages.TIME_LAST_POSTS'), $num_rows), - 'PROCESSING_POSTS' => sprintf($lang['PROCESSED_POST_IDS'], $start_post_id, $end_post_id), + 'PROCESSING_POSTS' => sprintf(trans('messages.PROCESSED_POST_IDS'), $start_post_id, $end_post_id), 'PROCESSING_MESSAGES' => $processing_messages, 'PROGRESS_BAR_IMG' => $progress_bar_img, - 'SESSION_DETAILS' => sprintf($lang['PROCESS_DETAILS'], $session_posts_processed - $num_rows + 1, $session_posts_processed, $session_posts_processing), - 'SESSION_PERCENT' => sprintf($lang['PERCENT_COMPLETED'], round($session_percent, 2)), + 'SESSION_DETAILS' => sprintf(trans('messages.PROCESS_DETAILS'), $session_posts_processed - $num_rows + 1, $session_posts_processed, $session_posts_processing), + 'SESSION_PERCENT' => sprintf(trans('messages.PERCENT_COMPLETED'), round($session_percent, 2)), - 'TOTAL_DETAILS' => sprintf($lang['PROCESS_DETAILS'], $total_posts_processed - $num_rows + 1, $total_posts_processed, $total_posts), - 'TOTAL_PERCENT' => sprintf($lang['PERCENT_COMPLETED'], round($total_percent, 2)), + 'TOTAL_DETAILS' => sprintf(trans('messages.PROCESS_DETAILS'), $total_posts_processed - $num_rows + 1, $total_posts_processed, $total_posts), + 'TOTAL_PERCENT' => sprintf(trans('messages.PERCENT_COMPLETED'), round($total_percent, 2)), 'LAST_CYCLE_TIME' => delta_time(TIMENOW), 'SESSION_TIME' => delta_time($last_session_data['start_time']), @@ -363,15 +363,15 @@ if ($mode == 'submit' || $mode == 'refresh') { // check our last status if ($last_session_data['rebuild_session_status'] == REBUILD_SEARCH_PROCESSED) { - $last_saved_processing = sprintf($lang['INFO_PROCESSING_STOPPED'], $last_saved_post_id, $total_posts_processed, $last_saved_date); + $last_saved_processing = sprintf(trans('messages.INFO_PROCESSING_STOPPED'), $last_saved_post_id, $total_posts_processed, $last_saved_date); $clear_search_disabled = 'disabled="disabled"'; $template->assign_block_vars('start_select_input', array()); } elseif ($last_session_data['rebuild_session_status'] == REBUILD_SEARCH_ABORTED) { - $last_saved_processing = sprintf($lang['INFO_PROCESSING_ABORTED'], $last_saved_post_id, $total_posts_processed, $last_saved_date); + $last_saved_processing = sprintf(trans('messages.INFO_PROCESSING_ABORTED'), $last_saved_post_id, $total_posts_processed, $last_saved_date); // check if the interrupted cycle has finished if (TIMENOW - $last_session_data['end_time'] < $last_session_data['last_cycle_time']) { - $last_saved_processing .= '
' . $lang['INFO_PROCESSING_ABORTED_SOON']; + $last_saved_processing .= '
' . trans('messages.INFO_PROCESSING_ABORTED_SOON'); } $clear_search_disabled = 'disabled="disabled"'; @@ -380,12 +380,12 @@ if ($mode == 'submit' || $mode == 'refresh') { // when finished if ($last_session_data['end_post_id'] < $max_post_id) { - $last_saved_processing = sprintf($lang['INFO_PROCESSING_FINISHED_NEW'], $last_saved_post_id, $total_posts_processed, $last_saved_date, $total_posts - $total_posts_processed); + $last_saved_processing = sprintf(trans('messages.INFO_PROCESSING_FINISHED_NEW'), $last_saved_post_id, $total_posts_processed, $last_saved_date, $total_posts - $total_posts_processed); $clear_search_disabled = 'disabled="disabled"'; $template->assign_block_vars('start_select_input', array()); } else { - $last_saved_processing = sprintf($lang['INFO_PROCESSING_FINISHED'], $total_posts, $last_saved_date); + $last_saved_processing = sprintf(trans('messages.INFO_PROCESSING_FINISHED'), $total_posts, $last_saved_date); $template->assign_block_vars('start_text_input', array()); } diff --git a/admin/admin_sitemap.php b/admin/admin_sitemap.php index 1d0f9a153..1f2ac52ba 100644 --- a/admin/admin_sitemap.php +++ b/admin/admin_sitemap.php @@ -39,8 +39,8 @@ if (!$result = OLD_DB()->sql_query($sql)) { } } -$s_mess = $lang['SITEMAP_CREATED'] . ': ' . bb_date($new['sitemap_time'], config('tp.post_date_format')) . ' ' . $lang['SITEMAP_AVAILABLE'] . ': ' . make_url('sitemap/sitemap.xml') . ''; -$message = file_exists(SITEMAP_DIR . '/sitemap.xml') ? $s_mess : $lang['SITEMAP_NOT_CREATED']; +$s_mess = trans('messages.SITEMAP_CREATED') . ': ' . bb_date($new['sitemap_time'], config('tp.post_date_format')) . ' ' . trans('messages.SITEMAP_AVAILABLE') . ': ' . make_url('sitemap/sitemap.xml') . ''; +$message = file_exists(SITEMAP_DIR . '/sitemap.xml') ? $s_mess : trans('messages.SITEMAP_NOT_CREATED'); $template->assign_vars(array( 'STATIC_SITEMAP' => $new['static_sitemap'], diff --git a/admin/admin_smilies.php b/admin/admin_smilies.php index 3fcc07668..b2894f7ca 100644 --- a/admin/admin_smilies.php +++ b/admin/admin_smilies.php @@ -109,10 +109,10 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } } - bb_die($lang['SMILEY_IMPORT_SUCCESS'] . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.SMILEY_IMPORT_SUCCESS') . '

' . sprintf(trans('messages.CLICK_RETURN_SMILEADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } else { // Display the script to get the smile_pak cfg file - $smile_paks_select = ''; foreach ($smiley_paks as $key => $value) { if (!empty($value)) { $smile_paks_select .= ''; @@ -156,7 +156,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { exit; } - bb_die(sprintf($lang['EXPORT_SMILES'], '', '') . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(sprintf(trans('messages.EXPORT_SMILES'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_SMILEADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } elseif (isset($_POST['add']) || isset($_GET['add'])) { $filename_list = ''; for ($i = 0, $iMax = count($smiley_images); $i < $iMax; $i++) { @@ -186,7 +186,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } $datastore->update('smile_replacements'); - bb_die($lang['SMILEY_DEL_SUCCESS'] . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.SMILEY_DEL_SUCCESS') . '

' . sprintf(trans('messages.CLICK_RETURN_SMILEADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; case 'edit': @@ -235,7 +235,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { // If no code was entered complain if ($smile_code == '' || $smile_url == '') { - bb_die($lang['FIELDS_EMPTY']); + bb_die(trans('messages.FIELDS_EMPTY')); } // Convert < and > to proper htmlentities for parsing @@ -251,7 +251,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } $datastore->update('smile_replacements'); - bb_die($lang['SMILEY_EDIT_SUCCESS'] . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.SMILEY_EDIT_SUCCESS') . '

' . sprintf(trans('messages.CLICK_RETURN_SMILEADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; case 'savenew': @@ -265,7 +265,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { // If no code was entered complain if ($smile_code == '' || $smile_url == '') { - bb_die($lang['FIELDS_EMPTY']); + bb_die(trans('messages.FIELDS_EMPTY')); } // Convert < and > to proper htmlentities for parsing @@ -281,7 +281,7 @@ if (isset($_GET['import_pack']) || isset($_POST['import_pack'])) { } $datastore->update('smile_replacements'); - bb_die($lang['SMILEY_ADD_SUCCESS'] . '

' . sprintf($lang['CLICK_RETURN_SMILEADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.SMILEY_ADD_SUCCESS') . '

' . sprintf(trans('messages.CLICK_RETURN_SMILEADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); break; } } else { diff --git a/admin/admin_terms.php b/admin/admin_terms.php index adbdbdc6b..51f74733b 100644 --- a/admin/admin_terms.php +++ b/admin/admin_terms.php @@ -16,7 +16,7 @@ require INC_DIR . '/bbcode.php'; if (isset($_POST['post']) && config('tp.terms') != $_POST['message']) { bb_update_config(array('terms' => $_POST['message'])); - bb_die($lang['CONFIG_UPDATED']); + bb_die(trans('messages.CONFIG_UPDATED')); } $template->assign_vars(array( diff --git a/admin/admin_ug_auth.php b/admin/admin_ug_auth.php index 8c16fdecc..c34191a7c 100644 --- a/admin/admin_ug_auth.php +++ b/admin/admin_ug_auth.php @@ -49,7 +49,7 @@ if ($submit && $mode == 'user') { // Obtain relevant data for this user if (!$row = get_userdata($user_id)) { - bb_die($lang['NO_SUCH_USER']); + bb_die(trans('messages.NO_SUCH_USER')); } $this_user_level = $row['user_level']; @@ -81,9 +81,9 @@ if ($submit && $mode == 'user') { // Delete any entries in auth_access, they are not required if user is becoming an admin delete_permissions($group_id, $user_id); - $message = $lang['AUTH_UPDATED'] . '

'; - $message .= sprintf($lang['CLICK_RETURN_USERAUTH'], '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message = trans('messages.AUTH_UPDATED') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_USERAUTH'), '', '') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } // Make admin a user (if already admin) @@ -97,9 +97,9 @@ if ($submit && $mode == 'user') { delete_permissions($group_id, $user_id); - $message = $lang['AUTH_UPDATED'] . '

'; - $message .= sprintf($lang['CLICK_RETURN_USERAUTH'], '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message = trans('messages.AUTH_UPDATED') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_USERAUTH'), '', '') . '

'; + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } @@ -124,10 +124,10 @@ if ($submit && $mode == 'user') { update_user_level($user_id); - $l_auth_return = ($mode == 'user') ? $lang['CLICK_RETURN_USERAUTH'] : $lang['CLICK_RETURN_GROUPAUTH']; - $message = $lang['AUTH_UPDATED'] . '

'; + $l_auth_return = ($mode == 'user') ? trans('messages.CLICK_RETURN_USERAUTH') : trans('messages.CLICK_RETURN_GROUPAUTH'); + $message = trans('messages.AUTH_UPDATED') . '

'; $message .= sprintf($l_auth_return, '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } @@ -136,7 +136,7 @@ if ($submit && $mode == 'user') { // elseif ($submit && $mode == 'group' && is_array($_POST['auth'])) { if (!$group_data = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } $auth = array(); @@ -153,10 +153,10 @@ elseif ($submit && $mode == 'group' && is_array($_POST['auth'])) { update_user_level('all'); - $l_auth_return = $lang['CLICK_RETURN_GROUPAUTH']; - $message = $lang['AUTH_UPDATED'] . '

'; + $l_auth_return = trans('messages.CLICK_RETURN_GROUPAUTH'); + $message = trans('messages.AUTH_UPDATED') . '

'; $message .= sprintf($l_auth_return, '', '') . '

'; - $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } @@ -174,7 +174,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { $this_userdata = get_userdata($user_id); } if (!$this_userdata) { - bb_die($lang['NO_SUCH_USER']); + bb_die(trans('messages.NO_SUCH_USER')); } if (!$forums = $datastore->get('cat_forums')) { @@ -211,7 +211,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { 'FORUM_NAME' => str_short($forums['forum_name_html'][$f_id], $max_forum_name_length), 'SF_SPACER' => $f_data['forum_parent'] ? HTML_SF_SPACER : '', 'IS_MODERATOR' => (bool)$auth_mod, - 'MOD_STATUS' => $auth_mod ? $lang['MODERATOR'] : $lang['NONE'], + 'MOD_STATUS' => $auth_mod ? trans('messages.MODERATOR') : trans('messages.NONE'), 'MOD_CLASS' => $auth_mod ? ($disabled ? 'yesDisabled' : 'yesMOD') : 'noMOD', 'AUTH_MOD_VAL' => $auth_mod ? 1 : 0, )); @@ -251,7 +251,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { foreach ($forum_auth_fields as $auth_type) { $template->assign_block_vars('acltype', array( - 'ACL_TYPE_NAME' => preg_replace('#(.{5})#u', "\\1
", $lang[strtoupper($auth_type)]), + 'ACL_TYPE_NAME' => preg_replace('#(.{5})#u', "\\1
", trans('messages.' . strtoupper($auth_type))), 'ACL_TYPE_BF' => $bf['forum_perm'][$auth_type], )); $s_column_span++; @@ -267,13 +267,13 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { $s_user_type = ($this_userdata['user_level'] == ADMIN) ? ' ' : ' '; @@ -282,10 +282,10 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { $template->assign_vars(array( 'TPL_AUTH_UG_MAIN' => true, 'USER_OR_GROUPNAME' => $this_userdata['username'], - 'USER_LEVEL' => $lang['USER_LEVEL'] . ' : ' . $s_user_type, - 'T_USER_OR_GROUPNAME' => $lang['USERNAME'], - 'T_AUTH_TITLE' => $lang['AUTH_CONTROL_USER'], - 'T_AUTH_EXPLAIN' => $lang['USER_AUTH_EXPLAIN'], + 'USER_LEVEL' => trans('messages.USER_LEVEL') . ' : ' . $s_user_type, + 'T_USER_OR_GROUPNAME' => trans('messages.USERNAME'), + 'T_AUTH_TITLE' => trans('messages.AUTH_CONTROL_USER'), + 'T_AUTH_EXPLAIN' => trans('messages.USER_AUTH_EXPLAIN'), 'S_COLUMN_SPAN' => $s_column_span, 'S_HIDDEN_FIELDS' => $s_hidden_fields, )); @@ -293,7 +293,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { $page_cfg['quirks_mode'] = true; if (!$group_data = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } if (!$forums = $datastore->get('cat_forums')) { @@ -326,7 +326,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { 'FORUM_NAME' => str_short($forums['forum_name_html'][$f_id], $max_forum_name_length), 'SF_SPACER' => $f_data['forum_parent'] ? HTML_SF_SPACER : '', 'IS_MODERATOR' => (bool)$auth_mod, - 'MOD_STATUS' => $auth_mod ? $lang['MODERATOR'] : $lang['NO'], + 'MOD_STATUS' => $auth_mod ? trans('messages.MODERATOR') : trans('messages.NO'), 'MOD_CLASS' => $auth_mod ? 'yesMOD' : 'noMOD', 'AUTH_MOD_VAL' => $auth_mod ? 1 : 0, )); @@ -366,7 +366,7 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { foreach ($forum_auth_fields as $auth_type) { $template->assign_block_vars('acltype', array( - 'ACL_TYPE_NAME' => preg_replace('#(.{5})#u', "\\1
", $lang[strtoupper($auth_type)]), + 'ACL_TYPE_NAME' => preg_replace('#(.{5})#u', "\\1
", trans('messages.' . strtoupper($auth_type))), 'ACL_TYPE_BF' => $bf['forum_perm'][$auth_type], )); $s_column_span++; @@ -382,10 +382,10 @@ if ($mode == 'user' && (!empty($_POST['username']) || $user_id)) { $template->assign_vars(array( 'TPL_AUTH_UG_MAIN' => true, - 'T_USER_OR_GROUPNAME' => $lang['GROUP_NAME'], + 'T_USER_OR_GROUPNAME' => trans('messages.GROUP_NAME'), 'USER_LEVEL' => false, - 'T_AUTH_TITLE' => $lang['AUTH_CONTROL_GROUP'], - 'T_AUTH_EXPLAIN' => $lang['GROUP_AUTH_EXPLAIN'], + 'T_AUTH_TITLE' => trans('messages.AUTH_CONTROL_GROUP'), + 'T_AUTH_EXPLAIN' => trans('messages.GROUP_AUTH_EXPLAIN'), 'USER_OR_GROUPNAME' => htmlCHR($group_data['group_name']), 'S_COLUMN_SPAN' => $s_column_span, 'S_HIDDEN_FIELDS' => $s_hidden_fields, diff --git a/admin/admin_user_ban.php b/admin/admin_user_ban.php index d46fe7f38..c25329282 100644 --- a/admin/admin_user_ban.php +++ b/admin/admin_user_ban.php @@ -23,7 +23,7 @@ if (isset($_POST['submit'])) { if (!empty($_POST['username'])) { $this_userdata = get_userdata($_POST['username'], true); if (!$this_userdata) { - bb_die($lang['NO_USER_ID_SPECIFIED']); + bb_die(trans('messages.NO_USER_ID_SPECIFIED')); } $user_list[] = $this_userdata['user_id']; @@ -165,7 +165,7 @@ if (isset($_POST['submit'])) { } } - bb_die($lang['BAN_UPDATE_SUCESSFUL'] . '

' . sprintf($lang['CLICK_RETURN_BANADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.BAN_UPDATE_SUCESSFUL') . '

' . sprintf(trans('messages.CLICK_RETURN_BANADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } else { $template->assign_vars(array( 'S_BANLIST_ACTION' => 'admin_user_ban.php', @@ -195,7 +195,7 @@ if (isset($_POST['submit'])) { } if ($select_userlist == '') { - $select_userlist = ''; + $select_userlist = ''; } $select_userlist = ''; @@ -226,11 +226,11 @@ if (isset($_POST['submit'])) { } if ($select_iplist == '') { - $select_iplist = ''; + $select_iplist = ''; } if ($select_emaillist == '') { - $select_emaillist = ''; + $select_emaillist = ''; } $select_iplist = ''; diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php index 8bf9c633c..754dc9374 100644 --- a/admin/admin_user_search.php +++ b/admin/admin_user_search.php @@ -86,7 +86,7 @@ if (!isset($_REQUEST['dosearch'])) { $lastvisited_list = ''; foreach ($lastvisited as $days) { - $lastvisited_list .= ''; + $lastvisited_list .= ''; } $template->assign_vars(array( @@ -141,21 +141,21 @@ if (!isset($_REQUEST['dosearch'])) { case 'search_username': $username = $_REQUEST['username']; if (!$username) { - bb_die($lang['SEARCH_INVALID_USERNAME']); + bb_die(trans('messages.SEARCH_INVALID_USERNAME')); } break; case 'search_email': $email = $_REQUEST['email']; if (!$email) { - bb_die($lang['SEARCH_INVALID_EMAIL']); + bb_die(trans('messages.SEARCH_INVALID_EMAIL')); } break; case 'search_ip': $ip_address = $_REQUEST['ip_address']; if (!$ip_address) { - bb_die($lang['SEARCH_INVALID_IP']); + bb_die(trans('messages.SEARCH_INVALID_IP')); } break; @@ -165,21 +165,21 @@ if (!isset($_REQUEST['dosearch'])) { $date_month = $_REQUEST['date_month']; $date_year = $_REQUEST['date_year']; if (!($date_type || $date_day || $date_month || $date_year)) { - bb_die($lang['SEARCH_INVALID_DATE']); + bb_die(trans('messages.SEARCH_INVALID_DATE')); } break; case 'search_group': $group_id = $_REQUEST['group_id']; if (!$group_id) { - bb_die($lang['SEARCH_INVALID_GROUP']); + bb_die(trans('messages.SEARCH_INVALID_GROUP')); } break; case 'search_rank': $rank_id = $_REQUEST['rank_id']; if (!$rank_id) { - bb_die($lang['SEARCH_INVALID_RANK']); + bb_die(trans('messages.SEARCH_INVALID_RANK')); } break; @@ -187,7 +187,7 @@ if (!isset($_REQUEST['dosearch'])) { $postcount_type = $_REQUEST['postcount_type']; $postcount_value = $_REQUEST['postcount_value']; if (!$postcount_type || (!$postcount_value && $postcount_value != 0)) { - bb_die($lang['SEARCH_INVALID_POSTCOUNT']); + bb_die(trans('messages.SEARCH_INVALID_POSTCOUNT')); } break; @@ -195,7 +195,7 @@ if (!isset($_REQUEST['dosearch'])) { $userfield_type = $_REQUEST['userfield_type']; $userfield_value = $_REQUEST['userfield_value']; if (!$userfield_type || !$userfield_value) { - bb_die($lang['SEARCH_INVALID_USERFIELD']); + bb_die(trans('messages.SEARCH_INVALID_USERFIELD')); } break; @@ -203,35 +203,35 @@ if (!isset($_REQUEST['dosearch'])) { $lastvisited_days = $_REQUEST['lastvisited_days']; $lastvisited_type = $_REQUEST['lastvisited_type']; if (!$lastvisited_days || !$lastvisited_type) { - bb_die($lang['SEARCH_INVALID_LASTVISITED']); + bb_die(trans('messages.SEARCH_INVALID_LASTVISITED')); } break; case 'search_language': $language_type = $_REQUEST['language_type']; if (!$language_type) { - bb_die($lang['SEARCH_INVALID_LANGUAGE']); + bb_die(trans('messages.SEARCH_INVALID_LANGUAGE')); } break; case 'search_timezone': $timezone_type = $_REQUEST['timezone_type']; if (!$timezone_type && $timezone_type != 0) { - bb_die($lang['SEARCH_INVALID_TIMEZONE']); + bb_die(trans('messages.SEARCH_INVALID_TIMEZONE')); } break; case 'search_moderators': $moderators_forum = $_REQUEST['moderators_forum']; if (!$moderators_forum) { - bb_die($lang['SEARCH_INVALID_MODERATORS']); + bb_die(trans('messages.SEARCH_INVALID_MODERATORS')); } break; case 'search_misc': $misc = $_REQUEST['misc']; if (!$misc) { - bb_die($lang['SEARCH_INVALID']); + bb_die(trans('messages.SEARCH_INVALID')); } break; @@ -251,7 +251,7 @@ if (!isset($_REQUEST['dosearch'])) { case 'search_username': $base_url .= '&search_username=true&username=' . rawurlencode(stripslashes($username)); - $text = sprintf($lang['SEARCH_FOR_USERNAME'], strip_tags(htmlspecialchars(stripslashes($username)))); + $text = sprintf(trans('messages.SEARCH_FOR_USERNAME'), strip_tags(htmlspecialchars(stripslashes($username)))); $username = preg_replace('/\*/', '%', trim(strip_tags(strtolower($username)))); @@ -262,7 +262,7 @@ if (!isset($_REQUEST['dosearch'])) { } if ($username == '') { - bb_die($lang['SEARCH_INVALID_USERNAME']); + bb_die(trans('messages.SEARCH_INVALID_USERNAME')); } $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " WHERE {$lower_b}username{$lower_e} $op '" . OLD_DB()->escape($username) . "' AND user_id <> " . GUEST_UID; @@ -272,7 +272,7 @@ if (!isset($_REQUEST['dosearch'])) { case 'search_email': $base_url .= '&search_email=true&email=' . rawurlencode(stripslashes($email)); - $text = sprintf($lang['SEARCH_FOR_EMAIL'], strip_tags(htmlspecialchars(stripslashes($email)))); + $text = sprintf(trans('messages.SEARCH_FOR_EMAIL'), strip_tags(htmlspecialchars(stripslashes($email)))); $email = preg_replace('/\*/', '%', trim(strip_tags(strtolower($email)))); @@ -283,7 +283,7 @@ if (!isset($_REQUEST['dosearch'])) { } if ($email == '') { - bb_die($lang['SEARCH_INVALID_EMAIL']); + bb_die(trans('messages.SEARCH_INVALID_EMAIL')); } $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " WHERE {$lower_b}user_email{$lower_e} $op '" . OLD_DB()->escape($email) . "' AND user_id <> " . GUEST_UID; @@ -295,7 +295,7 @@ if (!isset($_REQUEST['dosearch'])) { $ip_address = trim($ip_address); - $text = sprintf($lang['SEARCH_FOR_IP'], strip_tags(htmlspecialchars(stripslashes($ip_address)))); + $text = sprintf(trans('messages.SEARCH_FOR_IP'), strip_tags(htmlspecialchars(stripslashes($ip_address)))); unset($users); $users = []; @@ -304,7 +304,7 @@ if (!isset($_REQUEST['dosearch'])) { $ip = encode_ip($ip_address); $users[] = $ip; } else { - bb_die($lang['SEARCH_INVALID_IP']); + bb_die(trans('messages.SEARCH_INVALID_IP')); } $ip_in_sql = $ip_like_sql = $ip_like_sql_flylast = $ip_like_sql_flyreg = ''; @@ -375,7 +375,7 @@ if (!isset($_REQUEST['dosearch'])) { } } if ($no_result_search == true) { - bb_die($lang['SEARCH_NO_RESULTS']); + bb_die(trans('messages.SEARCH_NO_RESULTS')); } $select_sql .= " WHERE u.user_id IN ($ip_users_sql)"; @@ -387,28 +387,28 @@ if (!isset($_REQUEST['dosearch'])) { $date_type = strtolower(trim($date_type)); if ($date_type != 'before' && $date_type != 'after') { - bb_die($lang['SEARCH_INVALID_DATE']); + bb_die(trans('messages.SEARCH_INVALID_DATE')); } $date_day = (int)$date_day; if (!preg_match('/^([1-9]|[0-2][0-9]|3[0-1])$/', $date_day)) { - bb_die($lang['SEARCH_INVALID_DAY']); + bb_die(trans('messages.SEARCH_INVALID_DAY')); } $date_month = (int)$date_month; if (!preg_match('/^(0?[1-9]|1[0-2])$/', $date_month)) { - bb_die($lang['SEARCH_INVALID_MONTH']); + bb_die(trans('messages.SEARCH_INVALID_MONTH')); } $date_year = (int)$date_year; if (!preg_match('/^(20[0-9]{2}|19[0-9]{2})$/', $date_year)) { - bb_die($lang['SEARCH_INVALID_YEAR']); + bb_die(trans('messages.SEARCH_INVALID_YEAR')); } - $text = sprintf($lang['SEARCH_FOR_DATE'], strip_tags(htmlspecialchars(stripslashes($date_type))), $date_year, $date_month, $date_day); + $text = sprintf(trans('messages.SEARCH_FOR_DATE'), strip_tags(htmlspecialchars(stripslashes($date_type))), $date_year, $date_month, $date_day); $time = mktime(0, 0, 0, $date_month, $date_day, $date_year); @@ -428,7 +428,7 @@ if (!isset($_REQUEST['dosearch'])) { $base_url .= '&search_group=true&group_id=' . rawurlencode($group_id); if (!$group_id) { - bb_die($lang['SEARCH_INVALID_GROUP']); + bb_die(trans('messages.SEARCH_INVALID_GROUP')); } $sql = 'SELECT group_name FROM ' . BB_GROUPS . " WHERE group_id = $group_id AND group_single_user = 0"; @@ -438,12 +438,12 @@ if (!isset($_REQUEST['dosearch'])) { } if (OLD_DB()->num_rows($result) == 0) { - bb_die($lang['SEARCH_INVALID_GROUP']); + bb_die(trans('messages.SEARCH_INVALID_GROUP')); } $group_name = OLD_DB()->sql_fetchrow($result); - $text = sprintf($lang['SEARCH_FOR_GROUP'], strip_tags(htmlspecialchars($group_name['group_name']))); + $text = sprintf(trans('messages.SEARCH_FOR_GROUP'), strip_tags(htmlspecialchars($group_name['group_name']))); $total_sql .= 'SELECT COUNT(u.user_id) AS total FROM ' . BB_USERS . ' AS u, ' . BB_USER_GROUP . " AS ug @@ -463,7 +463,7 @@ if (!isset($_REQUEST['dosearch'])) { $base_url .= '&search_rank=true&rank_id=' . rawurlencode($rank_id); if (!$rank_id) { - bb_die($lang['SEARCH_INVALID_RANK']); + bb_die(trans('messages.SEARCH_INVALID_RANK')); } $sql = 'SELECT rank_title FROM ' . BB_RANKS . " WHERE rank_id = $rank_id"; @@ -473,12 +473,12 @@ if (!isset($_REQUEST['dosearch'])) { } if (OLD_DB()->num_rows($result) == 0) { - bb_die($lang['SEARCH_INVALID_RANK']); + bb_die(trans('messages.SEARCH_INVALID_RANK')); } $rank_title = OLD_DB()->sql_fetchrow($result); - $text = sprintf($lang['SEARCH_FOR_RANK'], strip_tags(htmlspecialchars($rank_title['rank_title']))); + $text = sprintf(trans('messages.SEARCH_FOR_RANK'), strip_tags(htmlspecialchars($rank_title['rank_title']))); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -499,7 +499,7 @@ if (!isset($_REQUEST['dosearch'])) { case 'greater': $postcount_value = (int)$postcount_value; - $text = sprintf($lang['SEARCH_FOR_POSTCOUNT_GREATER'], $postcount_value); + $text = sprintf(trans('messages.SEARCH_FOR_POSTCOUNT_GREATER'), $postcount_value); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -512,7 +512,7 @@ if (!isset($_REQUEST['dosearch'])) { case 'lesser': $postcount_value = (int)$postcount_value; - $text = sprintf($lang['SEARCH_FOR_POSTCOUNT_LESSER'], $postcount_value); + $text = sprintf(trans('messages.SEARCH_FOR_POSTCOUNT_LESSER'), $postcount_value); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -531,10 +531,10 @@ if (!isset($_REQUEST['dosearch'])) { $range_end = (int)$range[1]; if ($range_begin > $range_end) { - bb_die($lang['SEARCH_INVALID_POSTCOUNT']); + bb_die(trans('messages.SEARCH_INVALID_POSTCOUNT')); } - $text = sprintf($lang['SEARCH_FOR_POSTCOUNT_RANGE'], $range_begin, $range_end); + $text = sprintf(trans('messages.SEARCH_FOR_POSTCOUNT_RANGE'), $range_begin, $range_end); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -548,7 +548,7 @@ if (!isset($_REQUEST['dosearch'])) { } else { $postcount_value = (int)$postcount_value; - $text = sprintf($lang['SEARCH_FOR_POSTCOUNT_EQUALS'], $postcount_value); + $text = sprintf(trans('messages.SEARCH_FOR_POSTCOUNT_EQUALS'), $postcount_value); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -560,7 +560,7 @@ if (!isset($_REQUEST['dosearch'])) { } break; default: - bb_die($lang['SEARCH_INVALID']); + bb_die(trans('messages.SEARCH_INVALID')); } break; @@ -578,42 +578,42 @@ if (!isset($_REQUEST['dosearch'])) { } if ($userfield_value == '') { - bb_die($lang['SEARCH_INVALID_USERFIELD']); + bb_die(trans('messages.SEARCH_INVALID_USERFIELD')); } $userfield_type = strtolower(trim($userfield_type)); switch ($userfield_type) { case 'icq': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_ICQ'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_ICQ'), $text); $field = 'user_icq'; break; case 'skype': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_SKYPE'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_SKYPE'), $text); $field = 'user_skype'; break; case 'twitter': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_TWITTER'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_TWITTER'), $text); $field = 'user_twitter'; break; case 'website': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_WEBSITE'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_WEBSITE'), $text); $field = 'user_website'; break; case 'location': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_LOCATION'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_LOCATION'), $text); $field = 'user_from'; break; case 'interests': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_INTERESTS'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_INTERESTS'), $text); $field = 'user_interests'; break; case 'occupation': - $text = sprintf($lang['SEARCH_FOR_USERFIELD_OCCUPATION'], $text); + $text = sprintf(trans('messages.SEARCH_FOR_USERFIELD_OCCUPATION'), $text); $field = 'user_occ'; break; default: - bb_die($lang['SEARCH_INVALID']); + bb_die(trans('messages.SEARCH_INVALID')); } $total_sql .= 'SELECT COUNT(user_id) AS total @@ -635,7 +635,7 @@ if (!isset($_REQUEST['dosearch'])) { switch ($lastvisited_type) { case 'in': - $text = sprintf($lang['SEARCH_FOR_LASTVISITED_INTHELAST'], $lastvisited_days, (($lastvisited_days > 1) ? $lang['DAYS'] : $lang['DAY'])); + $text = sprintf(trans('messages.SEARCH_FOR_LASTVISITED_INTHELAST'), $lastvisited_days, (($lastvisited_days > 1) ? trans('messages.DAYS') : trans('messages.DAY'))); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -646,7 +646,7 @@ if (!isset($_REQUEST['dosearch'])) { AND u.user_id <> " . GUEST_UID; break; case 'after': - $text = sprintf($lang['SEARCH_FOR_LASTVISITED_AFTERTHELAST'], $lastvisited_days, (($lastvisited_days > 1) ? $lang['DAYS'] : $lang['DAY'])); + $text = sprintf(trans('messages.SEARCH_FOR_LASTVISITED_AFTERTHELAST'), $lastvisited_days, (($lastvisited_days > 1) ? trans('messages.DAYS') : trans('messages.DAY'))); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -658,7 +658,7 @@ if (!isset($_REQUEST['dosearch'])) { break; default: - bb_die($lang['SEARCH_INVALID_LASTVISITED']); + bb_die(trans('messages.SEARCH_INVALID_LASTVISITED')); } break; @@ -668,10 +668,10 @@ if (!isset($_REQUEST['dosearch'])) { $language_type = strtolower(trim(stripslashes($language_type))); if ($language_type == '') { - bb_die($lang['SEARCH_INVALID_LANGUAGE']); + bb_die(trans('messages.SEARCH_INVALID_LANGUAGE')); } - $text = sprintf($lang['SEARCH_FOR_LANGUAGE'], strip_tags(htmlspecialchars($language_type))); + $text = sprintf(trans('messages.SEARCH_FOR_LANGUAGE'), strip_tags(htmlspecialchars($language_type))); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . " @@ -684,7 +684,7 @@ if (!isset($_REQUEST['dosearch'])) { case 'search_timezone': $base_url .= '&search_timezone=true&timezone_type=' . rawurlencode(stripslashes($timezone_type)); - $text = sprintf($lang['SEARCH_FOR_TIMEZONE'], strip_tags(htmlspecialchars(stripslashes($timezone_type)))); + $text = sprintf(trans('messages.SEARCH_FOR_TIMEZONE'), strip_tags(htmlspecialchars(stripslashes($timezone_type)))); $timezone_type = (int)$timezone_type; @@ -708,12 +708,12 @@ if (!isset($_REQUEST['dosearch'])) { } if (OLD_DB()->num_rows($result) == 0) { - bb_die($lang['SEARCH_INVALID_MODERATORS']); + bb_die(trans('messages.SEARCH_INVALID_MODERATORS')); } $forum_name = OLD_DB()->sql_fetchrow($result); - $text = sprintf($lang['SEARCH_FOR_MODERATORS'], htmlCHR($forum_name['forum_name'])); + $text = sprintf(trans('messages.SEARCH_FOR_MODERATORS'), htmlCHR($forum_name['forum_name'])); $total_sql .= 'SELECT COUNT(DISTINCT u.user_id) AS total FROM ' . BB_USERS . ' AS u, ' . BB_GROUPS . ' AS g, ' . BB_USER_GROUP . ' AS ug, ' . BB_AUTH_ACCESS . ' AS aa @@ -742,7 +742,7 @@ if (!isset($_REQUEST['dosearch'])) { switch ($misc) { case 'admins': - $text = $lang['SEARCH_FOR_ADMINS']; + $text = trans('messages.SEARCH_FOR_ADMINS'); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . ' @@ -753,7 +753,7 @@ if (!isset($_REQUEST['dosearch'])) { AND u.user_id <> ' . GUEST_UID; break; case 'mods': - $text = $lang['SEARCH_FOR_MODS']; + $text = trans('messages.SEARCH_FOR_MODS'); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . ' @@ -764,7 +764,7 @@ if (!isset($_REQUEST['dosearch'])) { AND u.user_id <> ' . GUEST_UID; break; case 'banned': - $text = $lang['SEARCH_FOR_BANNED']; + $text = trans('messages.SEARCH_FOR_BANNED'); $total_sql .= 'SELECT COUNT(u.user_id) AS total FROM ' . BB_USERS . ' AS u, ' . BB_BANLIST . ' AS b @@ -777,7 +777,7 @@ if (!isset($_REQUEST['dosearch'])) { break; case 'disabled': - $text = $lang['SEARCH_FOR_DISABLED']; + $text = trans('messages.SEARCH_FOR_DISABLED'); $total_sql .= 'SELECT COUNT(user_id) AS total FROM ' . BB_USERS . ' @@ -789,7 +789,7 @@ if (!isset($_REQUEST['dosearch'])) { break; default: - bb_die($lang['SEARCH_INVALID']); + bb_die(trans('messages.SEARCH_INVALID')); } } @@ -860,7 +860,7 @@ if (!isset($_REQUEST['dosearch'])) { $total_pages = OLD_DB()->sql_fetchrow($result); if ($total_pages['total'] == 0) { - bb_die($lang['SEARCH_NO_RESULTS']); + bb_die(trans('messages.SEARCH_NO_RESULTS')); } } $num_pages = ceil($total_pages['total'] / config('tp.topics_per_page')); @@ -868,20 +868,20 @@ if (!isset($_REQUEST['dosearch'])) { $pagination = ''; if ($page > 1) { - $pagination .= '' . $lang['PREVIOUS'] . ''; + $pagination .= '' . trans('messages.PREVIOUS') . ''; } if ($page < $num_pages) { - $pagination .= ($pagination == '') ? '' . $lang['NEXT'] . '' : ' | ' . $lang['NEXT'] . ''; + $pagination .= ($pagination == '') ? '' . trans('messages.NEXT') . '' : ' | ' . trans('messages.NEXT') . ''; } if ($num_pages > 2) { - $pagination .= '   '; + $pagination .= '   '; } $template->assign_vars(array( 'TPL_ADMIN_USER_SEARCH_RESULTS' => true, - 'PAGE_NUMBER' => sprintf($lang['PAGE_OF'], $page, $num_pages), + 'PAGE_NUMBER' => sprintf(trans('messages.PAGE_OF'), $page, $num_pages), 'PAGINATION' => $pagination, - 'NEW_SEARCH' => sprintf($lang['SEARCH_USERS_NEW'], $text, $total_pages['total'], 'admin_user_search.php'), + 'NEW_SEARCH' => sprintf(trans('messages.SEARCH_USERS_NEW'), $text, $total_pages['total'], 'admin_user_search.php'), 'U_USERNAME' => ($sort == 'username') ? "$base_url&sort=$sort&order=$o_order" : "$base_url&sort=username&order=$order", 'U_EMAIL' => ($sort == 'user_email') ? "$base_url&sort=$sort&order=$o_order" : "$base_url&sort=user_email&order=$order", @@ -928,8 +928,8 @@ if (!isset($_REQUEST['dosearch'])) { 'JOINDATE' => bb_date($rowset[$i]['user_regdate']), 'LASTVISIT' => bb_date($rowset[$i]['user_lastvisit']), 'POSTS' => $rowset[$i]['user_posts'], - 'BAN' => (!isset($banned[$rowset[$i]['user_id']])) ? $lang['NOT_BANNED'] : $lang['BANNED'], - 'ABLED' => $rowset[$i]['user_active'] ? $lang['ENABLED'] : $lang['DISABLED'], + 'BAN' => (!isset($banned[$rowset[$i]['user_id']])) ? trans('messages.NOT_BANNED') : trans('messages.BANNED'), + 'ABLED' => $rowset[$i]['user_active'] ? trans('messages.ENABLED') : trans('messages.DISABLED'), 'U_VIEWPOSTS' => "../search.php?search_author=1&uid={$rowset[$i]['user_id']}", 'U_MANAGE' => '../profile.php?mode=editprofile&' . POST_USERS_URL . '=' . $rowset[$i]['user_id'] . '&admin=1', diff --git a/admin/admin_words.php b/admin/admin_words.php index 3207dd7ed..63a90962a 100644 --- a/admin/admin_words.php +++ b/admin/admin_words.php @@ -45,7 +45,7 @@ if ($mode != '') { $word = $word_info['word']; $replacement = $word_info['replacement']; } else { - bb_die($lang['NO_WORD_SELECTED']); + bb_die(trans('messages.NO_WORD_SELECTED')); } } @@ -62,18 +62,18 @@ if ($mode != '') { $replacement = trim(request_var('replacement', '')); if ($word == '' || $replacement == '') { - bb_die($lang['MUST_ENTER_WORD']); + bb_die(trans('messages.MUST_ENTER_WORD')); } if ($word_id) { $sql = 'UPDATE ' . BB_WORDS . " SET word = '" . OLD_DB()->escape($word) . "', replacement = '" . OLD_DB()->escape($replacement) . "' WHERE word_id = $word_id"; - $message = $lang['WORD_UPDATED']; + $message = trans('messages.WORD_UPDATED'); } else { $sql = 'INSERT INTO ' . BB_WORDS . " (word, replacement) VALUES ('" . OLD_DB()->escape($word) . "', '" . OLD_DB()->escape($replacement) . "')"; - $message = $lang['WORD_ADDED']; + $message = trans('messages.WORD_ADDED'); } if (!$result = OLD_DB()->sql_query($sql)) { @@ -81,7 +81,7 @@ if ($mode != '') { } OLD_CACHE('bb_cache')->rm('censored'); - $message .= '

' . sprintf($lang['CLICK_RETURN_WORDADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''); + $message .= '

' . sprintf(trans('messages.CLICK_RETURN_WORDADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', ''); bb_die($message); } elseif ($mode == 'delete') { @@ -96,9 +96,9 @@ if ($mode != '') { OLD_CACHE('bb_cache')->rm('censored'); - bb_die($lang['WORD_REMOVED'] . '

' . sprintf($lang['CLICK_RETURN_WORDADMIN'], '', '') . '

' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '')); + bb_die(trans('messages.WORD_REMOVED') . '

' . sprintf(trans('messages.CLICK_RETURN_WORDADMIN'), '', '') . '

' . sprintf(trans('messages.CLICK_RETURN_ADMIN_INDEX'), '', '')); } else { - bb_die($lang['NO_WORD_SELECTED']); + bb_die(trans('messages.NO_WORD_SELECTED')); } } } else { diff --git a/admin/index.php b/admin/index.php index ed1b87673..c683ca03c 100644 --- a/admin/index.php +++ b/admin/index.php @@ -34,7 +34,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { ksort($module); foreach ($module as $cat => $action_array) { - $cat = (!empty($lang[$cat])) ? $lang[$cat] : preg_replace('/_/', ' ', $cat); + $cat = !empty(trans('messages.' . $cat)) ? trans('messages.' . $cat) : preg_replace('/_/', ' ', $cat); $template->assign_block_vars('catrow', array( 'ADMIN_CATEGORY' => $cat, @@ -46,7 +46,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { foreach ($action_array as $action => $file) { $row_class = !($row_count % 2) ? 'row1' : 'row2'; - $action = (!empty($lang[$action])) ? $lang[$action] : preg_replace('/_/', ' ', $action); + $action = !empty(trans('messages.' . $action)) ? trans('messages.' . $action) : preg_replace('/_/', ' ', $action); $template->assign_block_vars('catrow.modulerow', array( 'ROW_CLASS' => $row_class, @@ -86,7 +86,7 @@ if (isset($_GET['pane']) && $_GET['pane'] == 'left') { $avatar_dir_size = humn_size($avatar_dir_size); } else { - $avatar_dir_size = $lang['NOT_AVAILABLE']; + $avatar_dir_size = trans('messages.NOT_AVAILABLE'); } if ((int)$posts_per_day > $total_posts) { diff --git a/admin/pagestart.php b/admin/pagestart.php index b3e7a6c62..0066d8b35 100644 --- a/admin/pagestart.php +++ b/admin/pagestart.php @@ -22,7 +22,7 @@ if (IS_GUEST) { } if (!IS_ADMIN) { - bb_die($lang['NOT_ADMIN']); + bb_die(trans('messages.NOT_ADMIN')); } if (!$userdata['session_admin']) { diff --git a/admin/stats/tr_stats.php b/admin/stats/tr_stats.php index 4ea6c72da..398079b8d 100644 --- a/admin/stats/tr_stats.php +++ b/admin/stats/tr_stats.php @@ -14,7 +14,7 @@ require BB_ROOT . 'common.php'; $user->session_start(); if (!IS_ADMIN) { - bb_die($lang['NOT_AUTHORISED']); + bb_die(trans('messages.NOT_AUTHORISED')); } $sql[] = 'SELECT count(*) FROM `' . BB_USERS . '` WHERE `user_lastvisit` < UNIX_TIMESTAMP()-2592000'; @@ -31,7 +31,7 @@ echo '

"; + echo ""; } echo '
{$lang['TR_STATS'][$i]}{$row[0]}
" . trans('messages.TR_STATS.' . $i) . "{$row[0]}
'; diff --git a/admin/stats/tracker.php b/admin/stats/tracker.php index eb7778d7c..658a3f342 100644 --- a/admin/stats/tracker.php +++ b/admin/stats/tracker.php @@ -14,7 +14,7 @@ require BB_ROOT . 'common.php'; $user->session_start(); if (!IS_ADMIN) { - bb_die($lang['NOT_AUTHORISED']); + bb_die(trans('messages.NOT_AUTHORISED')); } $peers_in_last_minutes = [30, 15, 5, 1]; diff --git a/ajax.php b/ajax.php index b491c79b3..3e750d301 100644 --- a/ajax.php +++ b/ajax.php @@ -22,9 +22,9 @@ $user->session_start(); // Exit if board is disabled via ON/OFF trigger or by admin if ($ajax->action != 'manage_admin') { if (config('tp.board_disable')) { - $ajax->ajax_die($lang['BOARD_DISABLE']); + $ajax->ajax_die(trans('messages.BOARD_DISABLE')); } elseif (file_exists(BB_DISABLED)) { - $ajax->ajax_die($lang['BOARD_DISABLE_CRON']); + $ajax->ajax_die(trans('messages.BOARD_DISABLE_CRON')); } } diff --git a/bootstrap.php b/bootstrap.php index ee23e5342..fadce70a7 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -159,5 +159,5 @@ $container->singleton('translator', function ($app) { }); $container->singleton('translation.loader', function ($app) { - return new FileLoader($app['files'], __DIR__ . '/../resources/lang'); + return new FileLoader($app['files'], __DIR__ . '/resources/lang'); }); diff --git a/callseed.php b/callseed.php index 058212a48..d85a780ca 100644 --- a/callseed.php +++ b/callseed.php @@ -21,10 +21,10 @@ $forum_id = $t_data['forum_id']; set_die_append_msg($forum_id, $topic_id); if ($t_data['seeders'] > 2) { - bb_die(sprintf($lang['CALLSEED_HAVE_SEED'], $t_data['seeders'])); + bb_die(sprintf(trans('messages.CALLSEED_HAVE_SEED'), $t_data['seeders'])); } elseif ($t_data['call_seed_time'] > (TIMENOW - 86400)) { $time_left = delta_time($t_data['call_seed_time'] + 86400, TIMENOW, 'days'); - bb_die(sprintf($lang['CALLSEED_MSG_SPAM'], $time_left)); + bb_die(sprintf(trans('messages.CALLSEED_MSG_SPAM'), $time_left)); } $ban_user_id = []; @@ -48,8 +48,8 @@ $user_list = OLD_DB()->fetch_rowset(" GROUP BY dl.user_id "); -$subject = sprintf($lang['CALLSEED_SUBJECT'], $t_data['topic_title']); -$message = sprintf($lang['CALLSEED_TEXT'], make_url(TOPIC_URL . $topic_id), $t_data['topic_title'], make_url(DOWNLOAD_URL . $t_data['attach_id'])); +$subject = sprintf(trans('messages.CALLSEED_SUBJECT'), $t_data['topic_title']); +$message = sprintf(trans('messages.CALLSEED_TEXT'), make_url(TOPIC_URL . $topic_id), $t_data['topic_title'], make_url(DOWNLOAD_URL . $t_data['attach_id'])); if ($user_list) { foreach ($user_list as $row) { @@ -68,12 +68,10 @@ if ($user_list) { OLD_DB()->query("UPDATE " . BB_BT_TORRENTS . " SET call_seed_time = " . TIMENOW . " WHERE topic_id = $topic_id"); meta_refresh(TOPIC_URL . $topic_id); -bb_die($lang['CALLSEED_MSG_OK']); +bb_die(trans('messages.CALLSEED_MSG_OK')); function topic_info($topic_id) { - global $lang; - $sql = " SELECT tor.poster_id, tor.forum_id, tor.attach_id, tor.call_seed_time, @@ -85,7 +83,7 @@ function topic_info($topic_id) "; if (!$torrent = OLD_DB()->fetch_row($sql)) { - bb_die($lang['TOPIC_POST_NOT_EXIST']); + bb_die(trans('messages.TOPIC_POST_NOT_EXIST')); } return $torrent; diff --git a/dl.php b/dl.php index 37102372c..fe47deda5 100644 --- a/dl.php +++ b/dl.php @@ -24,14 +24,14 @@ $thumbnail = request_var('thumb', 0); // Send file to browser function send_file_to_browser($attachment, $upload_dir) { - global $lang, $userdata; + global $userdata; $filename = ($upload_dir == '') ? $attachment['physical_filename'] : $upload_dir . '/' . $attachment['physical_filename']; $gotit = false; if (@!file_exists(@amod_realpath($filename))) { - bb_die($lang['ERROR_NO_ATTACHMENT'] . "

" . $filename . "

" . $lang['TOR_NOT_FOUND']); + bb_die(trans('messages.ERROR_NO_ATTACHMENT') . "

" . $filename . "

" . trans('messages.TOR_NOT_FOUND')); } else { $gotit = true; } @@ -67,7 +67,7 @@ function send_file_to_browser($attachment, $upload_dir) } readfile($filename); } else { - bb_die($lang['ERROR_NO_ATTACHMENT'] . "

" . $filename . "

" . $lang['TOR_NOT_FOUND']); + bb_die(trans('messages.ERROR_NO_ATTACHMENT') . "

" . $filename . "

" . trans('messages.TOR_NOT_FOUND')); } exit; @@ -81,11 +81,11 @@ $user->session_start(); set_die_append_msg(); if (!$download_id) { - bb_die($lang['NO_ATTACHMENT_SELECTED']); + bb_die(trans('messages.NO_ATTACHMENT_SELECTED')); } if ($attach_config['disable_mod'] && !IS_ADMIN) { - bb_die($lang['ATTACHMENT_FEATURE_DISABLED']); + bb_die(trans('messages.ATTACHMENT_FEATURE_DISABLED')); } $sql = 'SELECT * FROM ' . BB_ATTACHMENTS_DESC . ' WHERE attach_id = ' . (int)$download_id; @@ -95,7 +95,7 @@ if (!($result = OLD_DB()->sql_query($sql))) { } if (!($attachment = OLD_DB()->sql_fetchrow($result))) { - bb_die($lang['ERROR_NO_ATTACHMENT']); + bb_die(trans('messages.ERROR_NO_ATTACHMENT')); } $attachment['physical_filename'] = basename($attachment['physical_filename']); @@ -140,7 +140,7 @@ for ($i = 0; $i < $num_auth_pages && $authorised == false; $i++) { } if (!$authorised) { - bb_die($lang['SORRY_AUTH_VIEW_ATTACH']); + bb_die(trans('messages.SORRY_AUTH_VIEW_ATTACH')); } $datastore->rm('cat_forums'); @@ -159,7 +159,7 @@ for ($i = 0; $i < $num_rows; $i++) { // Disallowed if (!in_array($attachment['extension'], $allowed_extensions) && !IS_ADMIN) { - bb_die(sprintf($lang['EXTENSION_DISABLED_AFTER_POSTING'], $attachment['extension'])); + bb_die(sprintf(trans('messages.EXTENSION_DISABLED_AFTER_POSTING'), $attachment['extension'])); } $download_mode = (int)$download_mode[$attachment['extension']]; @@ -189,11 +189,11 @@ if (IS_GUEST && !bb_captcha('check')) { $redirect_url = $_POST['redirect_url'] ?? $_SERVER['HTTP_REFERER'] ?? '/'; $message = '
'; - $message .= $lang['CAPTCHA'] . ':'; + $message .= trans('messages.CAPTCHA') . ':'; $message .= '
' . bb_captcha('get') . '
'; $message .= ''; - $message .= '  '; - $message .= ''; + $message .= '  '; + $message .= ''; $message .= '
'; $template->assign_vars(array( diff --git a/dl_list.php b/dl_list.php index d47471712..4c59bfda0 100644 --- a/dl_list.php +++ b/dl_list.php @@ -73,7 +73,7 @@ if ($mode == 'dl_delete' && $topic_id) { $is_auth = auth_user(AUTH_ALL, $row['forum_id'], $userdata); if (!$is_auth['auth_mod']) { - bb_die($lang['NOT_MODERATOR']); + bb_die(trans('messages.NOT_MODERATOR')); } } @@ -84,7 +84,7 @@ if ($mode == 'dl_delete' && $topic_id) { ); print_confirmation(array( - 'QUESTION' => $lang['DL_LIST_DEL_CONFIRM'], + 'QUESTION' => trans('messages.DL_LIST_DEL_CONFIRM'), 'FORM_ACTION' => 'dl_list.php', 'HIDDEN_FIELDS' => build_hidden_fields($hidden_fields), )); @@ -100,7 +100,7 @@ $req_topics_ary = $topics_ary = array(); // Get topics selected by user if ($mode == 'set_topics_dl_status') { if (!isset($_POST['dl_topics_id_list']) || !is_array($_POST['dl_topics_id_list'])) { - bb_die($lang['NONE_SELECTED']); + bb_die(trans('messages.NONE_SELECTED')); } foreach ($_POST['dl_topics_id_list'] as $topic_id) { diff --git a/feed.php b/feed.php index c23b4323d..ee6649e84 100644 --- a/feed.php +++ b/feed.php @@ -19,7 +19,7 @@ $id = $_POST['id'] ?? 0; $timecheck = TIMENOW - 600; if (!$mode) { - bb_simple_die($lang['ATOM_NO_MODE']); + bb_simple_die(trans('messages.ATOM_NO_MODE')); } if ($mode == 'get_feed_url' && ($type == 'f' || $type == 'u') && $id >= 0) { @@ -30,7 +30,7 @@ if ($mode == 'get_feed_url' && ($type == 'f' || $type == 'u') && $id >= 0) { if ($id == 0) { $forum_data = array(); } else { - bb_simple_die($lang['ATOM_ERROR'] . ' #1'); + bb_simple_die(trans('messages.ATOM_ERROR') . ' #1'); } } if (file_exists(config('tp.atom.path') . '/f/' . $id . '.atom') && filemtime(config('tp.atom.path') . '/f/' . $id . '.atom') > $timecheck) { @@ -40,17 +40,17 @@ if ($mode == 'get_feed_url' && ($type == 'f' || $type == 'u') && $id >= 0) { if (update_forum_feed($id, $forum_data)) { redirectToUrl(config('tp.atom.url') . '/f/' . $id . '.atom'); } else { - bb_simple_die($lang['ATOM_NO_FORUM']); + bb_simple_die(trans('messages.ATOM_NO_FORUM')); } } } if ($type == 'u') { // Check if the user has actually sent a user ID if ($id < 1) { - bb_simple_die($lang['ATOM_ERROR'] . ' #2'); + bb_simple_die(trans('messages.ATOM_ERROR') . ' #2'); } if (!$username = get_username($id)) { - bb_simple_die($lang['ATOM_ERROR'] . ' #3'); + bb_simple_die(trans('messages.ATOM_ERROR') . ' #3'); } if (file_exists(config('tp.atom.path') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom') && filemtime(config('tp.atom.path') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom') > $timecheck) { redirectToUrl(config('tp.atom.url') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom'); @@ -59,10 +59,10 @@ if ($mode == 'get_feed_url' && ($type == 'f' || $type == 'u') && $id >= 0) { if (update_user_feed($id, $username)) { redirectToUrl(config('tp.atom.url') . '/u/' . floor($id / 5000) . '/' . ($id % 100) . '/' . $id . '.atom'); } else { - bb_simple_die($lang['ATOM_NO_USER']); + bb_simple_die(trans('messages.ATOM_NO_USER')); } } } } else { - bb_simple_die($lang['ATOM_ERROR'] . ' #4'); + bb_simple_die(trans('messages.ATOM_ERROR') . ' #4'); } diff --git a/group.php b/group.php index 7f7a4dadf..47371d55c 100644 --- a/group.php +++ b/group.php @@ -20,13 +20,13 @@ $select_sort_mode = $select_sort_order = ''; function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$joined, &$pm, &$email, &$www, &$user_time, &$avatar) { - global $lang, $images; + global $images; $from = (!empty($row['user_from'])) ? $row['user_from'] : ''; $joined = bb_date($row['user_regdate']); - $user_time = (!empty($row['user_time'])) ? bb_date($row['user_time']) : $lang['NONE']; + $user_time = (!empty($row['user_time'])) ? bb_date($row['user_time']) : trans('messages.NONE'); $posts = $row['user_posts'] ?: 0; - $pm = '' . $lang['SEND_PM_TXTB'] . ''; + $pm = '' . trans('messages.SEND_PM_TXTB') . ''; $avatar = get_avatar($row['user_id'], $row['avatar_ext_id'], !bf($row['user_opt'], 'user_opt', 'dis_avatar'), '', 50, 50); if (bf($row['user_opt'], 'user_opt', 'user_viewemail') || $group_mod) { @@ -37,7 +37,7 @@ function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$ } if ($row['user_website']) { - $www = '' . $lang['VISIT_WEBSITE_TXTB'] . ''; + $www = '' . trans('messages.VISIT_WEBSITE_TXTB') . ''; } else { $www = ''; } @@ -60,7 +60,7 @@ $is_moderator = false; if ($group_id) { if (!$group_info = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } if (!$group_info['group_id'] || !$group_info['group_moderator'] || !$group_info['moderator_name']) { bb_die("Invalid group data [group_id: $group_id]"); @@ -126,17 +126,16 @@ if (!$group_id) { function build_group($params) { - global $lang; - $options = ''; + foreach ($params as $name => $data) { $text = htmlCHR(str_short(rtrim($name), HTML_SELECT_MAX_LENGTH)); - $members = ($data['m']) ? $lang['MEMBERS_IN_GROUP'] . ': ' . $data['m'] : $lang['NO_GROUP_MEMBERS']; - $candidates = ($data['c']) ? $lang['PENDING_MEMBERS'] . ': ' . $data['c'] : $lang['NO_PENDING_GROUP_MEMBERS']; + $members = ($data['m']) ? trans('messages.MEMBERS_IN_GROUP') . ': ' . $data['m'] : trans('messages.NO_GROUP_MEMBERS'); + $candidates = ($data['c']) ? trans('messages.PENDING_MEMBERS') . ': ' . $data['c'] : trans('messages.NO_PENDING_GROUP_MEMBERS'); $options .= '
  • ' . $text . '
  • '; - $options .= ($data['rg']) ? '
    • ' . $lang['RELEASE_GROUP'] . '
    • ' : '
        '; + $options .= ($data['rg']) ? '
        • ' . trans('messages.RELEASE_GROUP') . '
        • ' : '
            '; $options .= '
          • ' . $members . '
          • '; if (IS_AM) { $options .= '
          • ' . $candidates . '
          • '; @@ -151,14 +150,14 @@ if (!$group_id) { foreach ($groups as $type => $grp) { $template->assign_block_vars('groups', array( - 'MEMBERSHIP' => $lang["GROUP_MEMBER_{$type}"], + 'MEMBERSHIP' => trans('messages.GROUP_MEMBER_' . $type), 'GROUP_SELECT' => build_group($grp), )); } $template->assign_vars(array( 'SELECT_GROUP' => true, - 'PAGE_TITLE' => $lang['GROUP_CONTROL_PANEL'], + 'PAGE_TITLE' => trans('messages.GROUP_CONTROL_PANEL'), 'S_USERGROUP_ACTION' => 'group.php', 'S_HIDDEN_FIELDS' => $s_hidden_fields, )); @@ -166,12 +165,12 @@ if (!$group_id) { if (IS_ADMIN) { redirectToUrl('admin/admin_groups.php'); } else { - bb_die($lang['NO_GROUPS_EXIST']); + bb_die(trans('messages.NO_GROUPS_EXIST')); } } } elseif (isset($_POST['joingroup']) && $_POST['joingroup']) { if ($group_info['group_type'] != GROUP_OPEN) { - bb_die($lang['THIS_CLOSED_GROUP']); + bb_die(trans('messages.THIS_CLOSED_GROUP')); } $sql = "SELECT g.group_id, g.group_name, ug.user_id, u.user_email, u.username, u.user_lang @@ -186,11 +185,11 @@ if (!$group_id) { $row = $moderator = OLD_DB()->fetch_row($sql); if (!$row['group_id']) { - bb_die($lang['NO_GROUPS_EXIST']); + bb_die(trans('messages.NO_GROUPS_EXIST')); } if ($row['user_id']) { set_die_append_msg(false, false, $group_id); - bb_die($lang['ALREADY_MEMBER_GROUP']); + bb_die(trans('messages.ALREADY_MEMBER_GROUP')); } add_user_into_group($group_id, $userdata['user_id'], 1, TIMENOW); @@ -201,7 +200,7 @@ if (!$group_id) { $emailer->set_from([config('tp.board_email') => config('tp.sitename')]); $emailer->set_to([$moderator['user_email'] => $moderator['username']]); - $emailer->set_subject($lang['EMAILER_SUBJECT']['GROUP_REQUEST']); + $emailer->set_subject(trans('messages.EMAILER_SUBJECT.GROUP_REQUEST')); $emailer->set_template('group_request', $moderator['user_lang']); $emailer->assign_vars(array( @@ -215,24 +214,24 @@ if (!$group_id) { } set_die_append_msg(false, false, $group_id); - bb_die($lang['GROUP_JOINED']); + bb_die(trans('messages.GROUP_JOINED')); } elseif (!empty($_POST['unsub']) || !empty($_POST['unsubpending'])) { delete_user_group($group_id, $userdata['user_id']); set_die_append_msg(false, false, $group_id); - bb_die($lang['UNSUB_SUCCESS']); + bb_die(trans('messages.UNSUB_SUCCESS')); } else { // Handle Additions, removals, approvals and denials $group_moderator = $group_info['group_moderator']; if (!empty($_POST['add']) || !empty($_POST['remove']) || !empty($_POST['approve']) || !empty($_POST['deny'])) { if (!$is_moderator) { - bb_die($lang['NOT_GROUP_MODERATOR']); + bb_die(trans('messages.NOT_GROUP_MODERATOR')); } if (!empty($_POST['add'])) { if (isset($_POST['username']) && !($row = get_userdata($_POST['username'], true))) { - bb_die($lang['COULD_NOT_ADD_USER']); + bb_die(trans('messages.COULD_NOT_ADD_USER')); } add_user_into_group($group_id, $row['user_id']); @@ -243,7 +242,7 @@ if (!$group_id) { $emailer->set_from([config('tp.board_email') => config('tp.sitename')]); $emailer->set_to([$row['user_email'] => $row['username']]); - $emailer->set_subject($lang['EMAILER_SUBJECT']['GROUP_ADDED']); + $emailer->set_subject(trans('messages.EMAILER_SUBJECT.GROUP_ADDED')); $emailer->set_template('group_added', $row['user_lang']); $emailer->assign_vars(array( @@ -263,7 +262,7 @@ if (!$group_id) { $sql_in[] = (int)$members_id; } if (!$sql_in = implode(',', $sql_in)) { - bb_die($lang['NONE_SELECTED']); + bb_die(trans('messages.NONE_SELECTED')); } if (!empty($_POST['approve'])) { @@ -302,7 +301,7 @@ if (!$group_id) { $emailer->set_from([config('tp.board_email') => config('tp.sitename')]); $emailer->set_to([$row['user_email'] => $row['username']]); - $emailer->set_subject($lang['EMAILER_SUBJECT']['GROUP_APPROVED']); + $emailer->set_subject(trans('messages.EMAILER_SUBJECT.GROUP_APPROVED')); $emailer->set_template('group_approved', $row['user_lang']); $emailer->assign_vars(array( @@ -344,29 +343,29 @@ if (!$group_id) { } if ($userdata['user_id'] == $group_moderator['user_id']) { - $group_details = $lang['ARE_GROUP_MODERATOR']; + $group_details = trans('messages.ARE_GROUP_MODERATOR'); $s_hidden_fields = ''; } elseif ($is_group_member || $is_group_pending_member) { $template->assign_vars(array( 'SHOW_UNSUBSCRIBE_CONTROLS' => true, 'CONTROL_NAME' => ($is_group_member) ? 'unsub' : 'unsubpending', )); - $group_details = ($is_group_pending_member) ? $lang['PENDING_THIS_GROUP'] : $lang['MEMBER_THIS_GROUP']; + $group_details = ($is_group_pending_member) ? trans('messages.PENDING_THIS_GROUP') : trans('messages.MEMBER_THIS_GROUP'); $s_hidden_fields = ''; } elseif (IS_GUEST) { - $group_details = $lang['LOGIN_TO_JOIN']; + $group_details = trans('messages.LOGIN_TO_JOIN'); $s_hidden_fields = ''; } else { if ($group_info['group_type'] == GROUP_OPEN) { $template->assign_var('SHOW_SUBSCRIBE_CONTROLS'); - $group_details = $lang['THIS_OPEN_GROUP']; + $group_details = trans('messages.THIS_OPEN_GROUP'); $s_hidden_fields = ''; } elseif ($group_info['group_type'] == GROUP_CLOSED) { - $group_details = $lang['THIS_CLOSED_GROUP']; + $group_details = trans('messages.THIS_CLOSED_GROUP'); $s_hidden_fields = ''; } elseif ($group_info['group_type'] == GROUP_HIDDEN) { - $group_details = $lang['THIS_HIDDEN_GROUP']; + $group_details = trans('messages.THIS_HIDDEN_GROUP'); $s_hidden_fields = ''; } } @@ -379,24 +378,24 @@ if (!$group_id) { $group_type = ''; if ($group_info['group_type'] == GROUP_OPEN) { - $group_type = $lang['GROUP_OPEN']; + $group_type = trans('messages.GROUP_OPEN'); } elseif ($group_info['group_type'] == GROUP_CLOSED) { - $group_type = $lang['GROUP_CLOSED']; + $group_type = trans('messages.GROUP_CLOSED'); } elseif ($group_info['group_type'] == GROUP_HIDDEN) { - $group_type = $lang['GROUP_HIDDEN']; + $group_type = trans('messages.GROUP_HIDDEN'); } $i = 0; $template->assign_vars(array( 'ROW_NUMBER' => $i + ($start + 1), 'GROUP_INFO' => true, - 'PAGE_TITLE' => $lang['GROUP_CONTROL_PANEL'], + 'PAGE_TITLE' => trans('messages.GROUP_CONTROL_PANEL'), 'GROUP_NAME' => htmlCHR($group_info['group_name']), 'GROUP_DESCRIPTION' => bbcode2html($group_info['group_description']), 'GROUP_SIGNATURE' => bbcode2html($group_info['group_signature']), 'GROUP_AVATAR' => get_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id'], true), 'GROUP_DETAILS' => $group_details, - 'GROUP_TIME' => (!empty($group_info['group_time'])) ? sprintf('%s (%s)', bb_date($group_info['group_time']), delta_time($group_info['group_time'])) : $lang['NONE'], + 'GROUP_TIME' => (!empty($group_info['group_time'])) ? sprintf('%s (%s)', bb_date($group_info['group_time']), delta_time($group_info['group_time'])) : trans('messages.NONE'), 'MOD_USER' => profile_url($group_moderator), 'MOD_AVATAR' => $avatar, 'MOD_FROM' => $from, @@ -405,7 +404,7 @@ if (!$group_id) { 'MOD_PM' => $pm, 'MOD_EMAIL' => $email, 'MOD_WWW' => $www, - 'MOD_TIME' => (!empty($group_info['mod_time'])) ? bb_date($group_info['mod_time']) : $lang['NONE'], + 'MOD_TIME' => (!empty($group_info['mod_time'])) ? bb_date($group_info['mod_time']) : trans('messages.NONE'), 'U_SEARCH_USER' => "search.php?mode=searchuser", 'U_SEARCH_RELEASES' => "tracker.php?srg=$group_id", 'U_GROUP_RELEASES' => "group.php?view=releases&" . POST_GROUPS_URL . "=$group_id", @@ -433,7 +432,7 @@ if (!$group_id) { if (!$group_info['release_group']) { set_die_append_msg(false, false, $group_id); - bb_die($lang['NOT_A_RELEASE_GROUP']); + bb_die(trans('messages.NOT_A_RELEASE_GROUP')); } // Count releases for pagination @@ -464,7 +463,7 @@ if (!$group_id) { if (!$releases = OLD_DB()->fetch_rowset($sql)) { set_die_append_msg(false, false, $group_id); - bb_die($lang['NO_SEARCH_MATCH']); + bb_die(trans('messages.NO_SEARCH_MATCH')); } foreach ($releases as $i => $release) { diff --git a/group_edit.php b/group_edit.php index 632a470f3..b5e259e94 100644 --- a/group_edit.php +++ b/group_edit.php @@ -25,7 +25,7 @@ $submit = !empty($_POST['submit']); if ($group_id) { if (!$group_info = get_group_data($group_id)) { - bb_die($lang['GROUP_NOT_EXIST']); + bb_die(trans('messages.GROUP_NOT_EXIST')); } if (!$group_info['group_id'] || !$group_info['group_moderator'] || !$group_info['moderator_name']) { bb_die("Invalid group data [group_id: $group_id]"); @@ -51,17 +51,17 @@ if ($is_moderator) { $group_type = ''; if ($group_info['group_type'] == GROUP_OPEN) { - $group_type = $lang['GROUP_OPEN']; + $group_type = trans('messages.GROUP_OPEN'); } elseif ($group_info['group_type'] == GROUP_CLOSED) { - $group_type = $lang['GROUP_CLOSED']; + $group_type = trans('messages.GROUP_CLOSED'); } elseif ($group_info['group_type'] == GROUP_HIDDEN) { - $group_type = $lang['GROUP_HIDDEN']; + $group_type = trans('messages.GROUP_HIDDEN'); } $s_hidden_fields = ''; $template->assign_vars(array( - 'PAGE_TITLE' => $lang['GROUP_CONTROL_PANEL'], + 'PAGE_TITLE' => trans('messages.GROUP_CONTROL_PANEL'), 'GROUP_NAME' => htmlCHR($group_info['group_name']), 'GROUP_ID' => $group_id, 'GROUP_DESCRIPTION' => htmlCHR($group_info['group_description']), @@ -78,12 +78,12 @@ if ($is_moderator) { 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_GROUP_CONFIG_ACTION' => "group_edit.php?" . POST_GROUPS_URL . "=$group_id", - 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], config('tp.group_avatars.max_width'), config('tp.group_avatars.max_height'), round(config('tp.group_avatars.max_size') / 1024)), + 'AVATAR_EXPLAIN' => sprintf(trans('messages.AVATAR_EXPLAIN'), config('tp.group_avatars.max_width'), config('tp.group_avatars.max_height'), round(config('tp.group_avatars.max_size') / 1024)), 'AVATAR_IMG' => get_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']), )); $template->set_filenames(array('body' => 'group_edit.tpl')); - $template->assign_vars(array('PAGE_TITLE' => $lang['GROUP_CONFIGURATION'])); + $template->assign_vars(array('PAGE_TITLE' => trans('messages.GROUP_CONFIGURATION'))); require(PAGE_HEADER); diff --git a/index.php b/index.php index 35f022245..65b74bc92 100644 --- a/index.php +++ b/index.php @@ -240,7 +240,7 @@ foreach ($cat_forums as $cid => $c) { 'TOPICS' => commify($f['forum_topics']), 'LAST_SF_ID' => $f['last_sf_id'] ?? null, 'MODERATORS' => isset($moderators[$fid]) ? implode(', ', $moderators[$fid]) : '', - 'FORUM_FOLDER_ALT' => ($new) ? $lang['NEW'] : $lang['OLD'], + 'FORUM_FOLDER_ALT' => $new ? trans('messages.NEW') : trans('messages.OLD'), )); if ($f['last_post_id']) { @@ -258,34 +258,34 @@ foreach ($cat_forums as $cid => $c) { $template->assign_vars(array( 'SHOW_FORUMS' => $forums_count, 'SHOW_MAP' => (isset($_GET['map']) && !IS_GUEST), - 'PAGE_TITLE' => ($viewcat) ? $cat_title_html[$viewcat] : $lang['HOME'], - 'NO_FORUMS_MSG' => ($only_new) ? $lang['NO_NEW_POSTS'] : $lang['NO_FORUMS'], + 'PAGE_TITLE' => ($viewcat) ? $cat_title_html[$viewcat] : trans('messages.HOME'), + 'NO_FORUMS_MSG' => ($only_new) ? trans('messages.NO_NEW_POSTS') : trans('messages.NO_FORUMS'), - 'TOTAL_TOPICS' => sprintf($lang['POSTED_TOPICS_TOTAL'], $stats['topiccount']), - 'TOTAL_POSTS' => sprintf($lang['POSTED_ARTICLES_TOTAL'], $stats['postcount']), - 'TOTAL_USERS' => sprintf($lang['REGISTERED_USERS_TOTAL'], $stats['usercount']), + 'TOTAL_TOPICS' => sprintf(trans('messages.POSTED_TOPICS_TOTAL'), $stats['topiccount']), + 'TOTAL_POSTS' => sprintf(trans('messages.POSTED_ARTICLES_TOTAL'), $stats['postcount']), + 'TOTAL_USERS' => sprintf(trans('messages.REGISTERED_USERS_TOTAL'), $stats['usercount']), 'TOTAL_GENDER' => config('tp.gender') ? sprintf( - $lang['USERS_TOTAL_GENDER'], + trans('messages.USERS_TOTAL_GENDER'), $stats['male'], $stats['female'], $stats['unselect'] ) : '', - 'NEWEST_USER' => sprintf($lang['NEWEST_USER'], profile_url($stats['newestuser'])), + 'NEWEST_USER' => sprintf(trans('messages.NEWEST_USER'), profile_url($stats['newestuser'])), // Tracker stats 'TORRENTS_STAT' => config('tp.tor_stats') ? sprintf( - $lang['TORRENTS_STAT'], + trans('messages.TORRENTS_STAT'), $stats['torrentcount'], humn_size($stats['size']) ) : '', 'PEERS_STAT' => config('tp.tor_stats') ? sprintf( - $lang['PEERS_STAT'], + trans('messages.PEERS_STAT'), $stats['peers'], $stats['seeders'], $stats['leechers'] ) : '', 'SPEED_STAT' => config('tp.tor_stats') ? sprintf( - $lang['SPEED_STAT'], + trans('messages.SPEED_STAT'), humn_size($stats['speed']) . '/s' ) : '', 'SHOW_MOD_INDEX' => config('tp.show_mod_index'), @@ -365,10 +365,10 @@ if (config('tp.birthday_check_day') && config('tp.birthday_enabled')) { } $week_list[] = profile_url($week) . ' (' . birthday_age($week['user_birthday'] - 1) . ')'; } - $week_all = ($week_all) ? ' ...' : ''; - $week_list = sprintf($lang['BIRTHDAY_WEEK'], config('tp.birthday_check_day'), implode(', ', $week_list)) . $week_all; + $week_all = ($week_all) ? ' ...' : ''; + $week_list = sprintf(trans('messages.BIRTHDAY_WEEK'), config('tp.birthday_check_day'), implode(', ', $week_list)) . $week_all; } else { - $week_list = sprintf($lang['NOBIRTHDAY_WEEK'], config('tp.birthday_check_day')); + $week_list = sprintf(trans('messages.NOBIRTHDAY_WEEK'), config('tp.birthday_check_day')); } if (!empty($stats['birthday_today_list'])) { @@ -380,10 +380,10 @@ if (config('tp.birthday_check_day') && config('tp.birthday_enabled')) { } $today_list[] = profile_url($today) . ' (' . birthday_age($today['user_birthday']) . ')'; } - $today_all = ($today_all) ? ' ...' : ''; - $today_list = $lang['BIRTHDAY_TODAY'] . implode(', ', $today_list) . $today_all; + $today_all = ($today_all) ? ' ...' : ''; + $today_list = trans('messages.BIRTHDAY_TODAY') . implode(', ', $today_list) . $today_all; } else { - $today_list = $lang['NOBIRTHDAY_TODAY']; + $today_list = trans('messages.NOBIRTHDAY_TODAY'); } $template->assign_vars(array( @@ -406,7 +406,7 @@ if (IS_AM) { define('SHOW_ONLINE', $show_online_users); if (isset($_GET['map'])) { - $template->assign_vars(array('PAGE_TITLE' => $lang['FORUM_MAP'])); + $template->assign_vars(array('PAGE_TITLE' => trans('messages.FORUM_MAP'))); } print_page('index.tpl'); diff --git a/info.php b/info.php index 5de9f81d9..9fd97857a 100644 --- a/info.php +++ b/info.php @@ -14,30 +14,28 @@ require __DIR__ . '/common.php'; // Start session management $user->session_start(); -global $lang; - $info = array(); $html_dir = LANG_DIR . 'html/'; $req_mode = !empty($_REQUEST['show']) ? (string)$_REQUEST['show'] : 'not_found'; switch ($req_mode) { case 'advert': - $info['title'] = $lang['ADVERT']; + $info['title'] = trans('messages.ADVERT'); $info['src'] = 'advert.html'; break; case 'copyright_holders': - $info['title'] = $lang['COPYRIGHT_HOLDERS']; + $info['title'] = trans('messages.COPYRIGHT_HOLDERS'); $info['src'] = 'copyright_holders.html'; break; case 'not_found': - $info['title'] = $lang['NOT_FOUND']; + $info['title'] = trans('messages.NOT_FOUND'); $info['src'] = 'not_found.html'; break; case 'user_agreement': - $info['title'] = $lang['USER_AGREEMENT']; + $info['title'] = trans('messages.USER_AGREEMENT'); $info['src'] = 'user_agreement.html'; break; @@ -82,7 +80,7 @@ $require = file_exists($html_dir . $info['src']) ? $html_dir . $info['src'] : $h -

            [ ] +

            [ ]

            diff --git a/library/TorrentPier/TorrentPier/Legacy/Ajax.php b/library/TorrentPier/TorrentPier/Legacy/Ajax.php index 400118ba0..25a2d5a53 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Ajax.php +++ b/library/TorrentPier/TorrentPier/Legacy/Ajax.php @@ -61,8 +61,6 @@ class Ajax */ public function exec() { - global $lang; - // Exit if we already have errors if (!empty($this->response['error_code'])) { $this->send(); @@ -86,14 +84,14 @@ class Ajax // USER case 'user': if (IS_GUEST) { - $this->ajax_die($lang['NEED_TO_LOGIN_FIRST']); + $this->ajax_die(trans('messages.NEED_TO_LOGIN_FIRST')); } break; // MOD case 'mod': if (!IS_AM) { - $this->ajax_die($lang['ONLY_FOR_MOD']); + $this->ajax_die(trans('messages.ONLY_FOR_MOD')); } $this->check_admin_session(); break; @@ -101,7 +99,7 @@ class Ajax // ADMIN case 'admin': if (!IS_ADMIN) { - $this->ajax_die($lang['ONLY_FOR_ADMIN']); + $this->ajax_die(trans('messages.ONLY_FOR_ADMIN')); } $this->check_admin_session(); break; @@ -109,7 +107,7 @@ class Ajax // SUPER_ADMIN case 'super_admin': if (!IS_SUPER_ADMIN) { - $this->ajax_die($lang['ONLY_FOR_SUPER_ADMIN']); + $this->ajax_die(trans('messages.ONLY_FOR_SUPER_ADMIN')); } $this->check_admin_session(); break; @@ -243,12 +241,12 @@ class Ajax */ public function verify_mod_rights($forum_id) { - global $userdata, $lang; + global $userdata; $is_auth = auth_user(AUTH_MOD, $forum_id, $userdata); if (!$is_auth['auth_mod']) { - $this->ajax_die($lang['ONLY_FOR_MOD']); + $this->ajax_die(trans('messages.ONLY_FOR_MOD')); } } diff --git a/library/TorrentPier/TorrentPier/Legacy/Attach.php b/library/TorrentPier/TorrentPier/Legacy/Attach.php index f3e02cf5b..32a42e6f4 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Attach.php +++ b/library/TorrentPier/TorrentPier/Legacy/Attach.php @@ -191,7 +191,7 @@ class Attach */ public function handle_attachments($mode) { - global $is_auth, $attach_config, $refresh, $post_id, $submit, $preview, $error, $error_msg, $lang; + global $is_auth, $attach_config, $refresh, $post_id, $submit, $preview, $error, $error_msg; // // ok, what shall we do ;) @@ -274,7 +274,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['TOO_MANY_ATTACHMENTS'], (int)$max_attachments); + $error_msg .= sprintf(trans('messages.TOO_MANY_ATTACHMENTS'), (int)$max_attachments); } } } @@ -394,7 +394,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= $lang['ERROR_EMPTY_ADD_ATTACHBOX']; + $error_msg .= trans('messages.ERROR_EMPTY_ADD_ATTACHBOX'); } $this->upload_attachment(); @@ -426,7 +426,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= $lang['ERROR_MISSING_OLD_ENTRY']; + $error_msg .= trans('messages.ERROR_MISSING_OLD_ENTRY'); } $row = OLD_DB()->sql_fetchrow($result); @@ -503,7 +503,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['TOO_MANY_ATTACHMENTS'], (int)$max_attachments); + $error_msg .= sprintf(trans('messages.TOO_MANY_ATTACHMENTS'), (int)$max_attachments); } } } @@ -641,7 +641,7 @@ class Attach */ public function display_attachment_bodies() { - global $attach_config, $is_auth, $lang, $template, $upload_dir, $forum_id; + global $attach_config, $is_auth, $template, $upload_dir, $forum_id; // Choose what to display $value_add = $value_posted = 0; @@ -726,7 +726,7 @@ class Attach */ public function upload_attachment() { - global $error, $error_msg, $lang, $attach_config, $userdata, $upload_dir, $forum_id; + global $error, $error_msg, $attach_config, $userdata, $upload_dir, $forum_id; $this->post_attach = (bool)$this->filename; @@ -768,7 +768,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['INVALID_FILENAME'], htmlspecialchars($this->filename)); + $error_msg .= sprintf(trans('messages.INVALID_FILENAME'), htmlspecialchars($this->filename)); } // check php upload-size @@ -782,9 +782,9 @@ class Attach $max_size = @$ini_val('upload_max_filesize'); if (empty($max_size)) { - $error_msg .= $lang['ATTACHMENT_PHP_SIZE_NA']; + $error_msg .= trans('messages.ATTACHMENT_PHP_SIZE_NA'); } else { - $error_msg .= sprintf($lang['ATTACHMENT_PHP_SIZE_OVERRUN'], $max_size); + $error_msg .= sprintf(trans('messages.ATTACHMENT_PHP_SIZE_OVERRUN'), $max_size); } } @@ -794,7 +794,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['DISALLOWED_EXTENSION'], htmlspecialchars($this->extension)); + $error_msg .= sprintf(trans('messages.DISALLOWED_EXTENSION'), htmlspecialchars($this->extension)); } // Check Forum Permissions @@ -803,7 +803,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['DISALLOWED_EXTENSION_WITHIN_FORUM'], htmlspecialchars($this->extension)); + $error_msg .= sprintf(trans('messages.DISALLOWED_EXTENSION_WITHIN_FORUM'), htmlspecialchars($this->extension)); } //bt @@ -815,7 +815,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= $lang['ALLOWED_ONLY_1ST_POST_ATTACH']; + $error_msg .= trans('messages.ALLOWED_ONLY_1ST_POST_ATTACH'); } //bt end @@ -916,7 +916,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['ERROR_IMAGESIZE'], (int)$attach_config['img_max_width'], (int)$attach_config['img_max_height']); + $error_msg .= sprintf(trans('messages.ERROR_IMAGESIZE'), (int)$attach_config['img_max_width'], (int)$attach_config['img_max_height']); } } } @@ -929,7 +929,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['ATTACHMENT_TOO_BIG'], $allowed_filesize); + $error_msg .= sprintf(trans('messages.ATTACHMENT_TOO_BIG'), $allowed_filesize); } // Check our complete quota @@ -950,7 +950,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= $lang['ATTACH_QUOTA_REACHED']; + $error_msg .= trans('messages.ATTACH_QUOTA_REACHED'); } } @@ -996,7 +996,7 @@ class Attach if (($total_filesize + $this->filesize) > $attach_config['upload_filesize_limit']) { $upload_filesize_limit = $attach_config['upload_filesize_limit']; - $size_lang = ($upload_filesize_limit >= 1048576) ? $lang['MB'] : (($upload_filesize_limit >= 1024) ? $lang['KB'] : $lang['BYTES']); + $size_lang = ($upload_filesize_limit >= 1048576) ? trans('messages.MB') : (($upload_filesize_limit >= 1024) ? trans('messages.KB') : trans('messages.BYTES')); if ($upload_filesize_limit >= 1048576) { $upload_filesize_limit = round($upload_filesize_limit / 1048576 * 100) / 100; @@ -1008,7 +1008,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['USER_UPLOAD_QUOTA_REACHED'], $upload_filesize_limit, $size_lang); + $error_msg .= sprintf(trans('messages.USER_UPLOAD_QUOTA_REACHED'), $upload_filesize_limit, $size_lang); } } @@ -1023,7 +1023,7 @@ class Attach // Copy the temporary attachment to the right location (copy, move_uploaded_file) public function move_uploaded_attachment($upload_mode, $file) { - global $error, $error_msg, $lang, $upload_dir; + global $error, $error_msg, $upload_dir; if (!is_uploaded_file($file)) { bb_die('Unable to upload file. The given source has not been uploaded'); @@ -1038,7 +1038,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['GENERAL_UPLOAD_ERROR'], './' . $upload_dir . '/' . $this->attach_filename); + $error_msg .= sprintf(trans('messages.GENERAL_UPLOAD_ERROR'), './' . $upload_dir . '/' . $this->attach_filename); return; } } @@ -1054,7 +1054,7 @@ class Attach if (!empty($error_msg)) { $error_msg .= '
            '; } - $error_msg .= sprintf($lang['GENERAL_UPLOAD_ERROR'], './' . $upload_dir . '/' . $this->attach_filename); + $error_msg .= sprintf(trans('messages.GENERAL_UPLOAD_ERROR'), './' . $upload_dir . '/' . $this->attach_filename); return; } } diff --git a/library/TorrentPier/TorrentPier/Legacy/Common/Upload.php b/library/TorrentPier/TorrentPier/Legacy/Common/Upload.php index 5d94b4e05..551dc74d0 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Common/Upload.php +++ b/library/TorrentPier/TorrentPier/Legacy/Common/Upload.php @@ -53,15 +53,14 @@ class Upload */ public function init(array $cfg = [], array $post_params = [], $uploaded_only = true) { - global $lang; - $this->cfg = array_merge($this->cfg, $cfg); $this->file = $post_params; // upload errors from $_FILES if ($this->file['error']) { - $msg = $lang['UPLOAD_ERROR_COMMON']; - $msg .= ($err_desc =& $lang['UPLOAD_ERRORS'][$this->file['error']]) ? " ($err_desc)" : ''; + $msg = trans('messages.UPLOAD_ERROR_COMMON'); + $errorLang = trans('messages.UPLOAD_ERRORS.' . $this->file['error']); + $msg .= ($err_desc =& $errorLang) ? " ($err_desc)" : ''; $this->errors[] = $msg; return false; } @@ -76,7 +75,7 @@ class Upload return false; } if ($this->cfg['max_size'] && $this->file_size > $this->cfg['max_size']) { - $this->errors[] = sprintf($lang['UPLOAD_ERROR_SIZE'], humn_size($this->cfg['max_size'])); + $this->errors[] = sprintf(trans('messages.UPLOAD_ERROR_SIZE'), humn_size($this->cfg['max_size'])); return false; } // is_uploaded_file @@ -96,24 +95,24 @@ class Upload // redefine ext if (!$width || !$height || !$type || !isset($this->img_types[$type])) { - $this->errors[] = $lang['UPLOAD_ERROR_FORMAT']; + $this->errors[] = trans('messages.UPLOAD_ERROR_FORMAT'); return false; } $this->file_ext = $this->img_types[$type]; // width & height if (($this->cfg['max_width'] && $width > $this->cfg['max_width']) || ($this->cfg['max_height'] && $height > $this->cfg['max_height'])) { - $this->errors[] = sprintf($lang['UPLOAD_ERROR_DIMENSIONS'], $this->cfg['max_width'], $this->cfg['max_height']); + $this->errors[] = sprintf(trans('messages.UPLOAD_ERROR_DIMENSIONS'), $this->cfg['max_width'], $this->cfg['max_height']); return false; } } else { - $this->errors[] = $lang['UPLOAD_ERROR_NOT_IMAGE']; + $this->errors[] = trans('messages.UPLOAD_ERROR_NOT_IMAGE'); return false; } } // check ext if ($uploaded_only && (!isset($this->ext_ids[$this->file_ext]) || !in_array($this->file_ext, $this->cfg['allowed_ext'], true))) { - $this->errors[] = sprintf($lang['UPLOAD_ERROR_NOT_ALLOWED'], htmlCHR($this->file_ext)); + $this->errors[] = sprintf(trans('messages.UPLOAD_ERROR_NOT_ALLOWED'), htmlCHR($this->file_ext)); return false; } $this->file_ext_id = $this->ext_ids[$this->file_ext]; diff --git a/library/TorrentPier/TorrentPier/Legacy/Common/User.php b/library/TorrentPier/TorrentPier/Legacy/Common/User.php index 90820a349..2437579f2 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Common/User.php +++ b/library/TorrentPier/TorrentPier/Legacy/Common/User.php @@ -549,21 +549,12 @@ class User */ public function init_userprefs() { - global $theme, $source_lang, $DeltaTime; + global $theme, $DeltaTime; - if (defined('LANG_DIR')) { - return; - } // prevent multiple calling - - define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . '/' . config('tp.default_lang') . '/'); - define('SOURCE_LANG_DIR', LANG_ROOT_DIR . '/source/'); + define('DEFAULT_LANG_DIR', LANG_ROOT_DIR . '/' . config('app.locale') . '/'); + define('LANG_DIR', DEFAULT_LANG_DIR); if ($this->data['user_id'] != GUEST_UID) { - if ($this->data['user_lang'] && $this->data['user_lang'] != config('tp.default_lang')) { - config(['tp.default_lang' => basename($this->data['user_lang'])]); - define('LANG_DIR', LANG_ROOT_DIR . '/' . config('tp.default_lang') . '/'); - } - if (isset($this->data['user_timezone'])) { config(['tp.board_timezone' => $this->data['user_timezone']]); } @@ -572,20 +563,6 @@ class User $this->data['user_lang'] = config('tp.default_lang'); $this->data['user_timezone'] = config('tp.board_timezone'); - if (!defined('LANG_DIR')) { - define('LANG_DIR', DEFAULT_LANG_DIR); - } - - /** Temporary place source language to the global */ - $lang = []; - require(SOURCE_LANG_DIR . 'main.php'); - $source_lang = $lang; - unset($lang); - - /** Place user language to the global */ - global $lang; - require(LANG_DIR . 'main.php'); - setlocale(LC_ALL, config('language.lang.' . $this->data['user_lang'] . '.locale') ?? 'en_US.UTF-8'); $theme = setup_style(); diff --git a/library/TorrentPier/TorrentPier/Legacy/DateDelta.php b/library/TorrentPier/TorrentPier/Legacy/DateDelta.php index 2522c8094..5b29c105e 100644 --- a/library/TorrentPier/TorrentPier/Legacy/DateDelta.php +++ b/library/TorrentPier/TorrentPier/Legacy/DateDelta.php @@ -27,10 +27,8 @@ class DateDelta public function __construct() { - global $lang; - - $this->intervals = $lang['DELTA_TIME']['INTERVALS']; - $this->format = $lang['DELTA_TIME']['FORMAT']; + $this->intervals = trans('messages.DELTA_TIME.INTERVALS'); + $this->format = trans('messages.DELTA_TIME.FORMAT'); } /** @@ -68,7 +66,7 @@ class DateDelta // Make spellable phrase. $parts = []; - $intervals = $GLOBALS['lang']['DELTA_TIME']['INTERVALS']; + $intervals = trans('messages.DELTA_TIME.INTERVALS'); foreach (array_reverse($delta) as $k => $n) { if (!$n) { diff --git a/library/TorrentPier/TorrentPier/Legacy/Emailer.php b/library/TorrentPier/TorrentPier/Legacy/Emailer.php index 0d3725a1a..f3b121702 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Emailer.php +++ b/library/TorrentPier/TorrentPier/Legacy/Emailer.php @@ -158,8 +158,6 @@ class Emailer */ public function send($email_format = self::FORMAT_TEXT) { - global $lang; - if (!config('email.enabled')) { return false; } @@ -172,7 +170,7 @@ class Emailer $this->message = trim($this->message); /** Set some variables */ - $this->subject = !empty($this->subject) ? $this->subject : $lang['EMAILER_SUBJECT']['EMPTY']; + $this->subject = !empty($this->subject) ? $this->subject : trans('messages.EMAILER_SUBJECT.EMPTY'); $this->encoding = config('language.charset'); /** Prepare message */ diff --git a/library/TorrentPier/TorrentPier/Legacy/LogAction.php b/library/TorrentPier/TorrentPier/Legacy/LogAction.php index edb59112f..d0c6bebc6 100644 --- a/library/TorrentPier/TorrentPier/Legacy/LogAction.php +++ b/library/TorrentPier/TorrentPier/Legacy/LogAction.php @@ -31,9 +31,9 @@ class LogAction public function init() { - global $lang; - - foreach ($lang['LOG_ACTION']['LOG_TYPE'] as $log_type => $log_desc) { + /** @var array $logTypes */ + $logTypes = trans('messages.LOG_ACTION.LOG_TYPE'); + foreach ($logTypes as $log_type => $log_desc) { $this->log_type_select[strip_tags($log_desc)] = $this->log_type[$log_type]; } } diff --git a/library/TorrentPier/TorrentPier/Legacy/Poll.php b/library/TorrentPier/TorrentPier/Legacy/Poll.php index f47ba107c..da00c163d 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Poll.php +++ b/library/TorrentPier/TorrentPier/Legacy/Poll.php @@ -37,8 +37,7 @@ class Poll $this->poll_votes = []; if (!$poll_caption = str_compact($poll_caption)) { - global $lang; - return $this->err_msg = $lang['EMPTY_POLL_TITLE']; + return $this->err_msg = trans('messages.EMPTY_POLL_TITLE'); } $this->poll_votes[] = $poll_caption; // заголовок имеет vote_id = 0 @@ -51,8 +50,7 @@ class Poll // проверять на "< 3" -- 2 варианта ответа + заголовок if (count($this->poll_votes) < 3 || count($this->poll_votes) > $this->max_votes + 1) { - global $lang; - return $this->err_msg = sprintf($lang['NEW_POLL_VOTES'], $this->max_votes); + return $this->err_msg = sprintf(trans('messages.NEW_POLL_VOTES'), $this->max_votes); } } diff --git a/library/TorrentPier/TorrentPier/Legacy/Template.php b/library/TorrentPier/TorrentPier/Legacy/Template.php index 86622a862..680ec9397 100644 --- a/library/TorrentPier/TorrentPier/Legacy/Template.php +++ b/library/TorrentPier/TorrentPier/Legacy/Template.php @@ -90,8 +90,6 @@ class Template /** @var array style configuration */ public $style_config = []; - public $lang = []; - /** * Constructor. Installs XS mod on first run or updates it and sets the root dir. * @@ -99,15 +97,12 @@ class Template */ public function __construct($root = '.') { - global $lang; - // setting pointer "vars" $this->vars = &$this->_tpldata['.'][0]; // load configuration $this->tpldir = TEMPLATES_DIR; $this->root = $root; $this->tpl = basename($root); - $this->lang =& $lang; $this->use_cache = config('tp.xs_use_cache'); } @@ -223,11 +218,9 @@ class Template { $this->cur_tpl = $filename; - global $lang, $source_lang, $user; + global $user; - $L =& $lang; $V =& $this->vars; - $SL =& $source_lang; if ($filename) { include $filename; @@ -758,7 +751,7 @@ class Template $code = str_replace($search, $replace, $code); } // This will handle the remaining root-level varrefs - $code = preg_replace('#\{(L_([a-z0-9\-_]+?))\}#i', '', $code); + $code = preg_replace('#\{(L_([a-z0-9\-_]+?))\}#i', '', $code); $code = preg_replace('#\{(\$[a-z_][a-z0-9_$\->\'\"\.\[\]]*?)\}#i', '', $code); $code = preg_replace('#\{(\#([a-z_][a-z0-9_]*?))\}#i', '', $code); $code = preg_replace('#\{([a-z0-9\-_]+?)\}#i', '', $code); @@ -979,10 +972,6 @@ class Template public function xs_startup() { - // adding language variable (eg: "english" or "german") - // can be used to make truly multi-lingual templates - $this->vars['LANG'] = $this->vars['LANG'] ?? config('tp.default_lang'); - // adding current template $tpl = $this->root . '/'; if (substr($tpl, 0, 2) === './') { $tpl = substr($tpl, 2, strlen($tpl)); diff --git a/library/TorrentPier/TorrentPier/Legacy/TorrentFileList.php b/library/TorrentPier/TorrentPier/Legacy/TorrentFileList.php index b6774b59e..efe477dae 100644 --- a/library/TorrentPier/TorrentPier/Legacy/TorrentFileList.php +++ b/library/TorrentPier/TorrentPier/Legacy/TorrentFileList.php @@ -122,13 +122,13 @@ class TorrentFileList */ private function build_file_item($name, $length) { - global $images, $lang; + global $images; $magnet_name = $magnet_ext = ''; if (config('tp.magnet_links_enabled')) { - $magnet_name = ''; - $magnet_ext = ''; + $magnet_name = ''; + $magnet_ext = ''; } return "$name $length $magnet_name $magnet_ext"; diff --git a/library/ajax/avatar.php b/library/ajax/avatar.php index e53aa3a9c..1ba699e71 100644 --- a/library/ajax/avatar.php +++ b/library/ajax/avatar.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang, $user; +global $user; $mode = (string)$this->request['mode']; $user_id = (int)$this->request['user_id']; @@ -21,7 +21,7 @@ if (!$user_id or !$u_data = get_userdata($user_id)) { } if (!IS_ADMIN && $user_id != $user->id) { - $this->ajax_die($lang['NOT_ADMIN']); + $this->ajax_die(trans('messages.NOT_ADMIN')); } switch ($mode) { diff --git a/library/ajax/change_tor_status.php b/library/ajax/change_tor_status.php index 09fa5983b..6b69b408c 100644 --- a/library/ajax/change_tor_status.php +++ b/library/ajax/change_tor_status.php @@ -11,10 +11,10 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang; +global $userdata; if (!isset($this->request['attach_id'])) { - $this->ajax_die($lang['EMPTY_ATTACH_ID']); + $this->ajax_die(trans('messages.EMPTY_ATTACH_ID')); } $attach_id = (int)$this->request['attach_id']; @@ -35,7 +35,7 @@ $tor = OLD_DB()->fetch_row(" "); if (!$tor) { - $this->ajax_die($lang['TORRENT_FAILED']); + $this->ajax_die(trans('messages.TORRENT_FAILED')); } switch ($mode) { @@ -43,24 +43,24 @@ switch ($mode) { $new_status = (int)$this->request['status']; // Валидность статуса - if (!isset($lang['TOR_STATUS_NAME'][$new_status])) { - $this->ajax_die($lang['TOR_STATUS_FAILED']); + if (empty(trans('messages.TOR_STATUS_NAME.' . $new_status))) { + $this->ajax_die(trans('messages.TOR_STATUS_FAILED')); } if (!isset($this->request['status'])) { - $this->ajax_die($lang['TOR_DONT_CHANGE']); + $this->ajax_die(trans('messages.TOR_DONT_CHANGE')); } if (!IS_AM) { - $this->ajax_die($lang['NOT_MODERATOR']); + $this->ajax_die(trans('messages.NOT_MODERATOR')); } // Тот же статус if ($tor['tor_status'] == $new_status) { - $this->ajax_die($lang['TOR_STATUS_DUB']); + $this->ajax_die(trans('messages.TOR_STATUS_DUB')); } // Запрет на изменение/присвоение CH-статуса модератором if ($new_status == TOR_CLOSED_CPHOLD && !IS_ADMIN) { - $this->ajax_die($lang['TOR_DONT_CHANGE']); + $this->ajax_die(trans('messages.TOR_DONT_CHANGE')); } // Права на изменение статуса @@ -76,24 +76,24 @@ switch ($mode) { // Подтверждение изменения статуса, выставленного другим модератором if ($tor['tor_status'] != TOR_NOT_APPROVED && $tor['checked_user_id'] != $userdata['user_id'] && $tor['checked_time'] + 2 * 3600 > TIMENOW) { if (empty($this->request['confirmed'])) { - $msg = $lang['TOR_STATUS_OF'] . " {$lang['TOR_STATUS_NAME'][$tor['tor_status']]}\n\n"; - $msg .= ($username = get_username($tor['checked_user_id'])) ? $lang['TOR_STATUS_CHANGED'] . html_entity_decode($username) . ", " . delta_time($tor['checked_time']) . $lang['TOR_BACK'] . "\n\n" : ""; - $msg .= $lang['PROCEED'] . '?'; + $msg = trans('messages.TOR_STATUS_OF') . ' ' . trans('messages.TOR_STATUS_NAME.' . $tor['tor_status']) . "\n\n"; + $msg .= ($username = get_username($tor['checked_user_id'])) ? trans('messages.TOR_STATUS_CHANGED') . html_entity_decode($username) . ", " . delta_time($tor['checked_time']) . trans('messages.TOR_BACK') . "\n\n" : ""; + $msg .= trans('messages.PROCEED') . '?'; $this->prompt_for_confirm($msg); } } change_tor_status($attach_id, $new_status); - $this->response['status'] = config('tp.tor_icons.' . $new_status) . ' ' . $lang['TOR_STATUS_NAME'][$new_status] . ' · ' . profile_url($userdata) . ' · ' . delta_time(TIMENOW) . $lang['TOR_BACK'] . ''; + $this->response['status'] = config('tp.tor_icons.' . $new_status) . ' ' . trans('messages.TOR_STATUS_NAME.' . $new_status) . ' · ' . profile_url($userdata) . ' · ' . delta_time(TIMENOW) . trans('messages.TOR_BACK') . ''; - if (config('tp.tor_comment') && (($comment && $comment != $lang['COMMENT']) || in_array($new_status, config('tp.tor_reply')))) { + if (config('tp.tor_comment') && (($comment && $comment != trans('messages.COMMENT')) || in_array($new_status, config('tp.tor_reply')))) { if ($tor['poster_id'] > 0) { - $subject = sprintf($lang['TOR_MOD_TITLE'], $tor['topic_title']); - $message = sprintf($lang['TOR_MOD_MSG'], get_username($tor['poster_id']), make_url(TOPIC_URL . $tor['topic_id']), config('tp.tor_icons.' . $new_status) . ' ' . $lang['TOR_STATUS_NAME'][$new_status]); + $subject = sprintf(trans('messages.TOR_MOD_TITLE'), $tor['topic_title']); + $message = sprintf(trans('messages.TOR_MOD_MSG'), get_username($tor['poster_id']), make_url(TOPIC_URL . $tor['topic_id']), config('tp.tor_icons.' . $new_status) . ' ' . trans('messages.TOR_STATUS_NAME.' . $new_status)); - if ($comment && $comment != $lang['COMMENT']) { - $message .= "\n\n[b]" . $lang['COMMENT'] . '[/b]: ' . $comment; + if ($comment && $comment != trans('messages.COMMENT')) { + $message .= "\n\n[b]" . trans('messages.COMMENT') . '[/b]: ' . $comment; } send_pm($tor['poster_id'], $subject, $message, $userdata['user_id']); @@ -104,14 +104,14 @@ switch ($mode) { case 'status_reply': if (!config('tp.tor_comment')) { - $this->ajax_die($lang['MODULE_OFF']); + $this->ajax_die(trans('messages.MODULE_OFF')); } - $subject = sprintf($lang['TOR_AUTH_TITLE'], $tor['topic_title']); - $message = sprintf($lang['TOR_AUTH_MSG'], get_username($tor['checked_user_id']), make_url(TOPIC_URL . $tor['topic_id']), $tor['topic_title']); + $subject = sprintf(trans('messages.TOR_AUTH_TITLE'), $tor['topic_title']); + $message = sprintf(trans('messages.TOR_AUTH_MSG'), get_username($tor['checked_user_id']), make_url(TOPIC_URL . $tor['topic_id']), $tor['topic_title']); - if ($comment && $comment != $lang['COMMENT']) { - $message .= "\n\n[b]" . $lang['COMMENT'] . '[/b]: ' . $comment; + if ($comment && $comment != trans('messages.COMMENT')) { + $message .= "\n\n[b]" . trans('messages.COMMENT') . '[/b]: ' . $comment; } send_pm($tor['checked_user_id'], $subject, $message, $userdata['user_id']); diff --git a/library/ajax/change_torrent.php b/library/ajax/change_torrent.php index c4d768fba..b2ec702a0 100644 --- a/library/ajax/change_torrent.php +++ b/library/ajax/change_torrent.php @@ -11,10 +11,10 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang; +global $userdata; if (!isset($this->request['attach_id'])) { - $this->ajax_die($lang['EMPTY_ATTACH_ID']); + $this->ajax_die(trans('messages.EMPTY_ATTACH_ID')); } if (!isset($this->request['type'])) { $this->ajax_die('type'); @@ -44,17 +44,17 @@ $torrent = OLD_DB()->fetch_row(" "); if (!$torrent) { - $this->ajax_die($lang['INVALID_ATTACH_ID']); + $this->ajax_die(trans('messages.INVALID_ATTACH_ID')); } if ($torrent['poster_id'] == $userdata['user_id'] && !IS_AM) { if ($type == 'del_torrent' || $type == 'reg' || $type == 'unreg') { true; } else { - $this->ajax_die($lang['ONLY_FOR_MOD']); + $this->ajax_die(trans('messages.ONLY_FOR_MOD')); } } elseif (!IS_AM) { - $this->ajax_die($lang['ONLY_FOR_MOD']); + $this->ajax_die(trans('messages.ONLY_FOR_MOD')); } $title = $url = ''; @@ -70,7 +70,7 @@ switch ($type) { $tor_type = 0; } change_tor_type($attach_id, $tor_type); - $title = $lang['CHANGE_TOR_TYPE']; + $title = trans('messages.CHANGE_TOR_TYPE'); $url = make_url(TOPIC_URL . $torrent['topic_id']); break; @@ -86,7 +86,7 @@ switch ($type) { case 'del_torrent': if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['DEL_TORRENT']); + $this->prompt_for_confirm(trans('messages.DEL_TORRENT')); } delete_torrent($attach_id); $url = make_url(TOPIC_URL . $torrent['topic_id']); @@ -94,7 +94,7 @@ switch ($type) { case 'del_torrent_move_topic': if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['DEL_MOVE_TORRENT']); + $this->prompt_for_confirm(trans('messages.DEL_MOVE_TORRENT')); } delete_torrent($attach_id); $url = make_url("modcp.php?t={$torrent['topic_id']}&mode=move&sid={$userdata['session_id']}"); diff --git a/library/ajax/change_user_opt.php b/library/ajax/change_user_opt.php index 20af16d92..692566009 100644 --- a/library/ajax/change_user_opt.php +++ b/library/ajax/change_user_opt.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $bf, $lang; +global $bf; $user_id = (int)$this->request['user_id']; $new_opt = json_decode($this->request['user_opt'], true); @@ -35,4 +35,4 @@ OLD_DB()->query("UPDATE " . BB_USERS . " SET user_opt = {$u_data['user_opt']} WH // Удаляем данные из кеша cache_rm_user_sessions($user_id); -$this->response['resp_html'] = $lang['SAVED']; +$this->response['resp_html'] = trans('messages.SAVED'); diff --git a/library/ajax/change_user_rank.php b/library/ajax/change_user_rank.php index 0709f6399..b72f4f060 100644 --- a/library/ajax/change_user_rank.php +++ b/library/ajax/change_user_rank.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $datastore, $lang; +global $datastore; $ranks = $datastore->get('ranks'); $rank_id = (int)$this->request['rank_id']; @@ -30,5 +30,5 @@ cache_rm_user_sessions($user_id); $user_rank = ($rank_id) ? '' . $ranks[$rank_id]['rank_title'] . '' : ''; -$this->response['html'] = ($rank_id) ? $lang['AWARDED_RANK'] . " $user_rank " : $lang['SHOT_RANK']; -$this->response['rank_name'] = ($rank_id) ? $user_rank : $lang['USER']; +$this->response['html'] = ($rank_id) ? trans('messages.AWARDED_RANK') . " $user_rank " : trans('messages.SHOT_RANK'); +$this->response['rank_name'] = ($rank_id) ? $user_rank : trans('messages.USER'); diff --git a/library/ajax/edit_group_profile.php b/library/ajax/edit_group_profile.php index 0e4951bcc..0a1579f24 100644 --- a/library/ajax/edit_group_profile.php +++ b/library/ajax/edit_group_profile.php @@ -11,10 +11,10 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang; +global $userdata; if (!$group_id = (int)$this->request['group_id'] or !$group_info = get_group_data($group_id)) { - $this->ajax_die($lang['NO_GROUP_ID_SPECIFIED']); + $this->ajax_die(trans('messages.NO_GROUP_ID_SPECIFIED')); } if (!$mode = (string)$this->request['mode']) { $this->ajax_die('No mode specified'); @@ -23,7 +23,7 @@ if (!$mode = (string)$this->request['mode']) { $value = $this->request['value'] = (string)(isset($this->request['value'])) ? $this->request['value'] : 0; if (!IS_ADMIN && $userdata['user_id'] != $group_info['group_moderator']) { - $this->ajax_die($lang['ONLY_FOR_MOD']); + $this->ajax_die(trans('messages.ONLY_FOR_MOD')); } switch ($mode) { diff --git a/library/ajax/edit_user_profile.php b/library/ajax/edit_user_profile.php index 01362d530..4f153325a 100644 --- a/library/ajax/edit_user_profile.php +++ b/library/ajax/edit_user_profile.php @@ -11,10 +11,8 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang; - if (!$user_id = (int)$this->request['user_id'] or !$profiledata = get_userdata($user_id)) { - $this->ajax_die($lang['NO_USER_ID_SPECIFIED']); + $this->ajax_die(trans('messages.NO_USER_ID_SPECIFIED')); } if (!$field = (string)$this->request['field']) { $this->ajax_die('invalid profile field'); @@ -46,34 +44,34 @@ switch ($field) { if ($value == '' || preg_match('#^https?://[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+$#iu', $value)) { $this->response['new_value'] = htmlCHR($value); } else { - $this->ajax_die($lang['WEBSITE_ERROR']); + $this->ajax_die(trans('messages.WEBSITE_ERROR')); } break; case 'user_gender': if (!config('tp.gender')) { - $this->ajax_die($lang['MODULE_OFF']); + $this->ajax_die(trans('messages.MODULE_OFF')); } - if (!isset($lang['GENDER_SELECT'][$value])) { - $this->ajax_die($lang['ERROR']); + if (empty(trans('messages.GENDER_SELECT.' . $value))) { + $this->ajax_die(trans('messages.ERROR')); } else { - $this->response['new_value'] = $lang['GENDER_SELECT'][$value]; + $this->response['new_value'] = trans('messages.GENDER_SELECT.' . $value); } break; case 'user_birthday': if (!config('tp.birthday_enabled')) { - $this->ajax_die($lang['MODULE_OFF']); + $this->ajax_die(trans('messages.MODULE_OFF')); } $birthday_date = date_parse($value); if (!empty($birthday_date['year'])) { if (strtotime($value) >= TIMENOW) { - $this->ajax_die($lang['WRONG_BIRTHDAY_FORMAT']); + $this->ajax_die(trans('messages.WRONG_BIRTHDAY_FORMAT')); } elseif (bb_date(TIMENOW, 'Y', 'false') - $birthday_date['year'] > config('tp.birthday_max_age')) { - $this->ajax_die(sprintf($lang['BIRTHDAY_TO_HIGH'], config('tp.birthday_max_age'))); + $this->ajax_die(sprintf(trans('messages.BIRTHDAY_TO_HIGH'), config('tp.birthday_max_age'))); } elseif (bb_date(TIMENOW, 'Y', 'false') - $birthday_date['year'] < config('tp.birthday_min_age')) { - $this->ajax_die(sprintf($lang['BIRTHDAY_TO_LOW'], config('tp.birthday_min_age'))); + $this->ajax_die(sprintf(trans('messages.BIRTHDAY_TO_LOW'), config('tp.birthday_min_age'))); } } @@ -82,21 +80,21 @@ switch ($field) { case 'user_icq': if ($value && !preg_match('#^\d{6,15}$#', $value)) { - $this->ajax_die($lang['ICQ_ERROR']); + $this->ajax_die(trans('messages.ICQ_ERROR')); } $this->response['new_value'] = $this->request['value']; break; case 'user_skype': if ($value && !preg_match("#^[a-zA-Z0-9_.\-@,]{6,32}$#", $value)) { - $this->ajax_die($lang['SKYPE_ERROR']); + $this->ajax_die(trans('messages.SKYPE_ERROR')); } $this->response['new_value'] = $this->request['value']; break; case 'user_twitter': if ($value && !preg_match("#^[a-zA-Z0-9_]{1,15}$#", $value)) { - $this->ajax_die($lang['TWITTER_ERROR']); + $this->ajax_die(trans('messages.TWITTER_ERROR')); } $this->response['new_value'] = $this->request['value']; break; @@ -112,7 +110,7 @@ switch ($field) { case 'user_lastvisit': $tz = TIMENOW + (3600 * config('tp.board_timezone')); if (($value = strtotime($value, $tz)) < config('tp.board_startdate') || $value > TIMENOW) { - $this->ajax_die($lang['INVALID_DATE'] . $this->request['value']); + $this->ajax_die(trans('messages.INVALID_DATE') . $this->request['value']); } $this->response['new_value'] = bb_date($value, 'Y-m-d H:i', false); break; @@ -122,7 +120,7 @@ switch ($field) { case 'u_up_release': case 'u_up_bonus': if (!IS_ADMIN) { - $this->ajax_die($lang['NOT_ADMIN']); + $this->ajax_die(trans('messages.NOT_ADMIN')); } $table = BB_BT_USERS; diff --git a/library/ajax/gen_passkey.php b/library/ajax/gen_passkey.php index a59423b3b..f3a471a7a 100644 --- a/library/ajax/gen_passkey.php +++ b/library/ajax/gen_passkey.php @@ -11,13 +11,13 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang; +global $userdata; $req_uid = (int)$this->request['user_id']; if ($req_uid == $userdata['user_id'] || IS_ADMIN) { if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['BT_GEN_PASSKEY_NEW']); + $this->prompt_for_confirm(trans('messages.BT_GEN_PASSKEY_NEW')); } if (!$passkey = generate_passkey($req_uid, IS_ADMIN)) { @@ -28,5 +28,5 @@ if ($req_uid == $userdata['user_id'] || IS_ADMIN) { $this->response['passkey'] = $passkey; } else { - $this->ajax_die($lang['NOT_AUTHORISED']); + $this->ajax_die(trans('messages.NOT_AUTHORISED')); } diff --git a/library/ajax/group_membership.php b/library/ajax/group_membership.php index 79f2885cd..4e16ebd23 100644 --- a/library/ajax/group_membership.php +++ b/library/ajax/group_membership.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang, $user; +global $user; if (!$user_id = (int)$this->request['user_id'] or !$profiledata = get_userdata($user_id)) { $this->ajax_die("invalid user_id: $user_id"); @@ -57,7 +57,7 @@ switch ($mode) { if ($html) { $this->response['group_list_html'] = '
            • ' . implode('
            • ', $html) . '
            '; } else { - $this->response['group_list_html'] = $lang['GROUP_LIST_HIDDEN']; + $this->response['group_list_html'] = trans('messages.GROUP_LIST_HIDDEN'); } break; diff --git a/library/ajax/index_data.php b/library/ajax/index_data.php index 6c8a817ed..88549457d 100644 --- a/library/ajax/index_data.php +++ b/library/ajax/index_data.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang, $userdata, $datastore; +global $userdata, $datastore; $mode = (string)$this->request['mode']; $html = ''; @@ -27,9 +27,9 @@ switch ($mode) { foreach ($stats['birthday_week_list'] as $week) { $html[] = profile_url($week) . ' (' . birthday_age($week['user_birthday']) . ')'; } - $html = sprintf($lang['BIRTHDAY_WEEK'], config('tp.birthday_check_day'), implode(', ', $html)); + $html = sprintf(trans('messages.BIRTHDAY_WEEK'), config('tp.birthday_check_day'), implode(', ', $html)); } else { - $html = sprintf($lang['NOBIRTHDAY_WEEK'], config('tp.birthday_check_day')); + $html = sprintf(trans('messages.NOBIRTHDAY_WEEK'), config('tp.birthday_check_day')); } break; @@ -43,9 +43,9 @@ switch ($mode) { foreach ($stats['birthday_today_list'] as $today) { $html[] = profile_url($today) . ' (' . birthday_age($today['user_birthday']) . ')'; } - $html = $lang['BIRTHDAY_TODAY'] . implode(', ', $html); + $html = trans('messages.BIRTHDAY_TODAY') . implode(', ', $html); } else { - $html = $lang['NOBIRTHDAY_TODAY']; + $html = trans('messages.NOBIRTHDAY_TODAY'); } break; @@ -73,7 +73,7 @@ switch ($mode) { } $html = ': '; - $html .= ($moderators) ? implode(', ', $moderators) : $lang['NONE']; + $html .= ($moderators) ? implode(', ', $moderators) : trans('messages.NONE'); unset($moderators, $mod); $datastore->rm('moderators'); break; @@ -101,19 +101,19 @@ switch ($mode) { $speed_up = ($btu['speed_up']) ? humn_size($btu['speed_up']) . '/s' : '0 KB/s'; $speed_down = ($btu['speed_down']) ? humn_size($btu['speed_down']) . '/s' : '0 KB/s'; - $user_ratio = ($btu['u_down_total'] > MIN_DL_FOR_RATIO) ? '' . get_bt_ratio($btu) . '' : $lang['IT_WILL_BE_DOWN'] . ' ' . humn_size(MIN_DL_FOR_RATIO) . ''; + $user_ratio = ($btu['u_down_total'] > MIN_DL_FOR_RATIO) ? '' . get_bt_ratio($btu) . '' : trans('messages.IT_WILL_BE_DOWN') . ' ' . humn_size(MIN_DL_FOR_RATIO) . ''; $html = ' - ' . $lang['DOWNLOADED'] . ' - ' . $lang['UPLOADED'] . ' - ' . $lang['RELEASED'] . ' - ' . $lang['BONUS'] . ''; - $html .= config('tp.seed_bonus_enabled') ? '' . $lang['SEED_BONUS'] . '' : ''; + ' . trans('messages.DOWNLOADED') . ' + ' . trans('messages.UPLOADED') . ' + ' . trans('messages.RELEASED') . ' + ' . trans('messages.BONUS') . ''; + $html .= config('tp.seed_bonus_enabled') ? '' . trans('messages.SEED_BONUS') . '' : ''; $html .= ' - ' . $lang['TOTAL_TRAF'] . ' + ' . trans('messages.TOTAL_TRAF') . ' ' . humn_size($btu['u_down_total']) . ' ' . humn_size($btu['u_up_total']) . ' ' . humn_size($btu['u_up_release']) . ' @@ -121,14 +121,14 @@ switch ($mode) { $html .= config('tp.seed_bonus_enabled') ? '' . $profiledata['user_points'] . '' : ''; $html .= ' - ' . $lang['MAX_SPEED'] . ' - ' . $lang['DL_DL_SPEED'] . ': ' . $speed_down . ' - ' . $lang['DL_UL_SPEED'] . ': ' . $speed_up . ''; + ' . trans('messages.MAX_SPEED') . ' + ' . trans('messages.DL_DL_SPEED') . ': ' . $speed_down . ' + ' . trans('messages.DL_UL_SPEED') . ': ' . $speed_up . ''; $html .= config('tp.seed_bonus_enabled') ? '' : ''; $html .= ''; $this->response['user_ratio'] = ' - ' . $lang['USER_RATIO'] . ': + ' . trans('messages.USER_RATIO') . ': ' . $user_ratio . ' '; break; diff --git a/library/ajax/manage_admin.php b/library/ajax/manage_admin.php index a61f05cf9..cad35d08e 100644 --- a/library/ajax/manage_admin.php +++ b/library/ajax/manage_admin.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang; +global $userdata; $mode = (string)$this->request['mode']; @@ -24,7 +24,7 @@ switch ($mode) { } } - $this->response['cache_html'] = '' . $lang['ALL_CACHE_CLEARED'] . ''; + $this->response['cache_html'] = '' . trans('messages.ALL_CACHE_CLEARED') . ''; break; @@ -34,7 +34,7 @@ switch ($mode) { $datastore->clean(); - $this->response['datastore_html'] = '' . $lang['DATASTORE_CLEARED'] . ''; + $this->response['datastore_html'] = '' . trans('messages.DATASTORE_CLEARED') . ''; break; @@ -53,7 +53,7 @@ switch ($mode) { } closedir($res); - $this->response['template_cache_html'] = '' . $lang['ALL_TEMPLATE_CLEARED'] . ''; + $this->response['template_cache_html'] = '' . trans('messages.ALL_TEMPLATE_CLEARED') . ''; break; @@ -74,7 +74,7 @@ switch ($mode) { file_put_contents(config('tp.sphinx_config_path') . '.log', "\r\n", FILE_APPEND); file_put_contents(config('tp.sphinx_config_path') . '.log', "\r\n", FILE_APPEND); - $this->response['indexer_html'] = '' . $lang['INDEXER'] . ''; + $this->response['indexer_html'] = '' . trans('messages.INDEXER') . ''; break; @@ -84,7 +84,7 @@ switch ($mode) { update_user_level('all'); - $this->response['update_user_level_html'] = '' . $lang['USER_LEVELS_UPDATED'] . ''; + $this->response['update_user_level_html'] = '' . trans('messages.USER_LEVELS_UPDATED') . ''; break; @@ -93,7 +93,7 @@ switch ($mode) { sync('topic', 'all'); sync_all_forums(); - $this->response['sync_topics_html'] = '' . $lang['TOPICS_DATA_SYNCHRONIZED'] . ''; + $this->response['sync_topics_html'] = '' . trans('messages.TOPICS_DATA_SYNCHRONIZED') . ''; break; @@ -101,7 +101,7 @@ switch ($mode) { sync('user_posts', 'all'); - $this->response['sync_user_posts_html'] = '' . $lang['USER_POSTS_COUNT_SYNCHRONIZED'] . ''; + $this->response['sync_user_posts_html'] = '' . trans('messages.USER_POSTS_COUNT_SYNCHRONIZED') . ''; break; @@ -109,7 +109,7 @@ switch ($mode) { TorrentPier\Helpers\CronHelper::enableBoard(); - $this->response['unlock_cron_html'] = '' . $lang['ADMIN_UNLOCKED'] . ''; + $this->response['unlock_cron_html'] = '' . trans('messages.ADMIN_UNLOCKED') . ''; break; } diff --git a/library/ajax/manage_user.php b/library/ajax/manage_user.php index d24c8320a..80d1c0024 100644 --- a/library/ajax/manage_user.php +++ b/library/ajax/manage_user.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang; +global $userdata; $mode = (string)$this->request['mode']; $user_id = $this->request['user_id']; @@ -20,19 +20,19 @@ switch ($mode) { case 'delete_profile': if ($userdata['user_id'] == $user_id) { - $this->ajax_die($lang['USER_DELETE_ME']); + $this->ajax_die(trans('messages.USER_DELETE_ME')); } if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['USER_DELETE_CONFIRM']); + $this->prompt_for_confirm(trans('messages.USER_DELETE_CONFIRM')); } if ($user_id != BOT_UID) { delete_user_sessions($user_id); user_delete($user_id); - $this->response['info'] = $lang['USER_DELETED']; + $this->response['info'] = trans('messages.USER_DELETED'); } else { - $this->ajax_die($lang['USER_DELETE_CSV']); + $this->ajax_die(trans('messages.USER_DELETE_CSV')); } break; @@ -40,10 +40,10 @@ switch ($mode) { case 'delete_topics': if (empty($this->request['confirmed']) && $userdata['user_id'] == $user_id) { - $this->prompt_for_confirm($lang['DELETE_USER_POSTS_ME']); + $this->prompt_for_confirm(trans('messages.DELETE_USER_POSTS_ME')); } if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['DELETE_USER_ALL_POSTS_CONFIRM']); + $this->prompt_for_confirm(trans('messages.DELETE_USER_ALL_POSTS_CONFIRM')); } if (IS_ADMIN) { @@ -51,9 +51,9 @@ switch ($mode) { $deleted_topics = topic_delete($user_topics); $deleted_posts = post_delete('user', $user_id); - $this->response['info'] = $lang['USER_DELETED_POSTS']; + $this->response['info'] = trans('messages.USER_DELETED_POSTS'); } else { - $this->ajax_die($lang['NOT_ADMIN']); + $this->ajax_die(trans('messages.NOT_ADMIN')); } break; @@ -61,18 +61,18 @@ switch ($mode) { case 'delete_message': if (empty($this->request['confirmed']) && $userdata['user_id'] == $user_id) { - $this->prompt_for_confirm($lang['DELETE_USER_POSTS_ME']); + $this->prompt_for_confirm(trans('messages.DELETE_USER_POSTS_ME')); } if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['DELETE_USER_POSTS_CONFIRM']); + $this->prompt_for_confirm(trans('messages.DELETE_USER_POSTS_CONFIRM')); } if (IS_ADMIN) { post_delete('user', $user_id); - $this->response['info'] = $lang['USER_DELETED_POSTS']; + $this->response['info'] = trans('messages.USER_DELETED_POSTS'); } else { - $this->ajax_die($lang['NOT_ADMIN']); + $this->ajax_die(trans('messages.NOT_ADMIN')); } break; @@ -80,28 +80,28 @@ switch ($mode) { case 'user_activate': if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['DEACTIVATE_CONFIRM']); + $this->prompt_for_confirm(trans('messages.DEACTIVATE_CONFIRM')); } OLD_DB()->query("UPDATE " . BB_USERS . " SET user_active = '1' WHERE user_id = " . $user_id); - $this->response['info'] = $lang['USER_ACTIVATE_ON']; + $this->response['info'] = trans('messages.USER_ACTIVATE_ON'); break; case 'user_deactivate': if ($userdata['user_id'] == $user_id) { - $this->ajax_die($lang['USER_DEACTIVATE_ME']); + $this->ajax_die(trans('messages.USER_DEACTIVATE_ME')); } if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['ACTIVATE_CONFIRM']); + $this->prompt_for_confirm(trans('messages.ACTIVATE_CONFIRM')); } OLD_DB()->query("UPDATE " . BB_USERS . " SET user_active = '0' WHERE user_id = " . $user_id); delete_user_sessions($user_id); - $this->response['info'] = $lang['USER_ACTIVATE_OFF']; + $this->response['info'] = trans('messages.USER_ACTIVATE_OFF'); break; } diff --git a/library/ajax/mod_action.php b/library/ajax/mod_action.php index 62df9d55f..b958e0701 100644 --- a/library/ajax/mod_action.php +++ b/library/ajax/mod_action.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $userdata, $lang, $datastore; +global $userdata, $datastore; $mode = (string)$this->request['mode']; @@ -21,8 +21,8 @@ switch ($mode) { $status = (int)$this->request['status']; // Валидность статуса - if (!isset($lang['TOR_STATUS_NAME'][$status])) { - $this->ajax_die($lang['STATUS_DOES_EXIST'] . $new_status); + if (empty(trans('messages.TOR_STATUS_NAME.' . $status))) { + $this->ajax_die(trans('messages.STATUS_DOES_EXIST') . $new_status); } $topic_ids = OLD_DB()->fetch_rowset("SELECT attach_id FROM " . BB_BT_TORRENTS . " WHERE topic_id IN($topics)", 'attach_id'); @@ -40,14 +40,14 @@ switch ($mode) { $new_title = clean_title($topic_title); if (!$topic_id) { - $this->ajax_die($lang['INVALID_TOPIC_ID']); + $this->ajax_die(trans('messages.INVALID_TOPIC_ID')); } if ($new_title == '') { - $this->ajax_die($lang['DONT_MESSAGE_TITLE']); + $this->ajax_die(trans('messages.DONT_MESSAGE_TITLE')); } if (!$t_data = OLD_DB()->fetch_row("SELECT forum_id FROM " . BB_TOPICS . " WHERE topic_id = $topic_id LIMIT 1")) { - $this->ajax_die($lang['INVALID_TOPIC_ID_DB']); + $this->ajax_die(trans('messages.INVALID_TOPIC_ID_DB')); } $this->verify_mod_rights($t_data['forum_id']); @@ -77,7 +77,7 @@ switch ($mode) { $profiledata = get_userdata($user_id); if (!$user_id) { - $this->ajax_die($lang['NO_USER_ID_SPECIFIED']); + $this->ajax_die(trans('messages.NO_USER_ID_SPECIFIED')); } $reg_ip = OLD_DB()->fetch_rowset("SELECT username, user_id, user_rank FROM " . BB_USERS . " @@ -94,23 +94,23 @@ switch ($mode) { $link_reg_ip = $link_last_ip = ''; if (!empty($reg_ip)) { - $link_reg_ip .= $lang['OTHER_IP'] . ' '; + $link_reg_ip .= trans('messages.OTHER_IP') . ' '; foreach ($reg_ip as $row) { $link_reg_ip .= profile_url($row) . ' '; } } if (!empty($last_ip)) { - $link_last_ip .= $lang['OTHER_IP'] . ' '; + $link_last_ip .= trans('messages.OTHER_IP') . ' '; foreach ($last_ip as $row) { $link_last_ip .= profile_url($row) . ' '; } } if ($profiledata['user_level'] == ADMIN && !IS_ADMIN) { - $reg_ip = $last_ip = $lang['HIDDEN']; + $reg_ip = $last_ip = trans('messages.HIDDEN'); } elseif ($profiledata['user_level'] == MOD && IS_MOD) { - $reg_ip = $last_ip = $lang['HIDDEN']; + $reg_ip = $last_ip = trans('messages.HIDDEN'); } else { $user_reg_ip = decode_ip($profiledata['user_reg_ip']); $user_last_ip = decode_ip($profiledata['user_last_ip']); @@ -121,12 +121,12 @@ switch ($mode) { $this->response['ip_list_html'] = '
            - + - + diff --git a/library/ajax/post_mod_comment.php b/library/ajax/post_mod_comment.php index 62eeb926c..2a6aa64e4 100644 --- a/library/ajax/post_mod_comment.php +++ b/library/ajax/post_mod_comment.php @@ -11,13 +11,13 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang, $userdata; +global $userdata; $post_id = (int)$this->request['post_id']; $mc_type = (int)$this->request['mc_type']; $mc_text = (string)$this->request['mc_text']; if (!$mc_text = prepare_message($mc_text)) { - $this->ajax_die($lang['EMPTY_MESSAGE']); + $this->ajax_die(trans('messages.EMPTY_MESSAGE')); } $post = OLD_DB()->fetch_row(" @@ -39,8 +39,8 @@ $sql_args = OLD_DB()->build_array('UPDATE', $data); OLD_DB()->query("UPDATE " . BB_POSTS . " SET $sql_args WHERE post_id = $post_id"); if ($mc_type && $post['poster_id'] != $userdata['user_id']) { - $subject = sprintf($lang['MC_COMMENT_PM_SUBJECT'], $lang['MC_COMMENT'][$mc_type]['type']); - $message = sprintf($lang['MC_COMMENT_PM_MSG'], get_username($post['poster_id']), make_url(POST_URL . "$post_id#$post_id"), $lang['MC_COMMENT'][$mc_type]['type'], $mc_text); + $subject = sprintf(trans('messages.MC_COMMENT_PM_SUBJECT'), trans('messages.MC_COMMENT.' . $mc_type . '.type')); + $message = sprintf(trans('messages.MC_COMMENT_PM_MSG'), get_username($post['poster_id']), make_url(POST_URL . "$post_id#$post_id"), trans('messages.MC_COMMENT.' . $mc_type . '.type'), $mc_text); send_pm($post['poster_id'], $subject, $message); cache_rm_user_sessions($post['poster_id']); @@ -66,6 +66,6 @@ switch ($mc_type) { $this->response['mc_type'] = $mc_type; $this->response['post_id'] = $post_id; -$this->response['mc_title'] = sprintf($lang['MC_COMMENT'][$mc_type]['title'], profile_url($userdata)); +$this->response['mc_title'] = sprintf(trans('messages.MC_COMMENT.' . $mc_type . '.title'), profile_url($userdata)); $this->response['mc_text'] = bbcode2html($mc_text); $this->response['mc_class'] = $mc_class; diff --git a/library/ajax/posts.php b/library/ajax/posts.php index 4e49627d2..50d4a02a9 100644 --- a/library/ajax/posts.php +++ b/library/ajax/posts.php @@ -11,7 +11,7 @@ if (!defined('IN_AJAX')) { die(basename(__FILE__)); } -global $lang, $userdata; +global $userdata; if (!isset($this->request['type'])) { $this->ajax_die('empty type'); @@ -31,7 +31,7 @@ if (isset($this->request['post_id'])) { $is_auth = auth_user(AUTH_ALL, $post['forum_id'], $userdata, $post); if ($post['topic_status'] == TOPIC_LOCKED && !$is_auth['auth_mod']) { - $this->ajax_die($lang['TOPIC_LOCKED']); + $this->ajax_die(trans('messages.TOPIC_LOCKED')); } } elseif (isset($this->request['topic_id'])) { $topic_id = (int)$this->request['topic_id']; @@ -58,7 +58,7 @@ switch ($this->request['type']) { case 'delete': if ($post['post_id'] != $post['topic_first_post_id'] && $is_auth['auth_delete'] && ($is_auth['auth_mod'] || ($userdata['user_id'] == $post['poster_id'] && $post['topic_last_post_id'] == $post['post_id'] && $post['post_time'] + 3600 * 3 > TIMENOW))) { if (empty($this->request['confirmed'])) { - $this->prompt_for_confirm($lang['CONFIRM_DELETE']); + $this->prompt_for_confirm(trans('messages.CONFIRM_DELETE')); } post_delete($post_id); @@ -68,15 +68,15 @@ switch ($this->request['type']) { $this->response['hide'] = true; $this->response['post_id'] = $post_id; } else { - $this->ajax_die(sprintf($lang['SORRY_AUTH_DELETE'], strip_tags($is_auth['auth_delete_type']))); + $this->ajax_die(sprintf(trans('messages.SORRY_AUTH_DELETE'), strip_tags($is_auth['auth_delete_type']))); } break; case 'reply': if (bf($userdata['user_opt'], 'user_opt', 'dis_post')) { - $this->ajax_die(strip_tags($lang['RULES_REPLY_CANNOT'])); + $this->ajax_die(strip_tags(trans('messages.RULES_REPLY_CANNOT'))); } elseif (!$is_auth['auth_reply']) { - $this->ajax_die(sprintf($lang['SORRY_AUTH_REPLY'], strip_tags($is_auth['auth_reply_type']))); + $this->ajax_die(sprintf(trans('messages.SORRY_AUTH_REPLY'), strip_tags($is_auth['auth_reply_type']))); } $quote_username = ($post['post_username'] != '') ? $post['post_username'] : get_username($post['poster_id']); @@ -105,7 +105,7 @@ switch ($this->request['type']) { case 'view_message': $message = (string)$this->request['message']; if (!trim($message)) { - $this->ajax_die($lang['EMPTY_MESSAGE']); + $this->ajax_die(trans('messages.EMPTY_MESSAGE')); } $message = htmlCHR($message, false, ENT_NOQUOTES); @@ -116,10 +116,10 @@ switch ($this->request['type']) { case 'edit': case 'editor': if (bf($userdata['user_opt'], 'user_opt', 'dis_post_edit')) { - $this->ajax_die($lang['POST_EDIT_CANNOT']); + $this->ajax_die(trans('messages.POST_EDIT_CANNOT')); } if ($post['poster_id'] != $userdata['user_id'] && !$is_auth['auth_mod']) { - $this->ajax_die($lang['EDIT_OWN_POSTS']); + $this->ajax_die(trans('messages.EDIT_OWN_POSTS')); } if ((mb_strlen($post['post_text'], 'UTF-8') > 1000) || $post['post_attachment'] || ($post['topic_first_post_id'] == $post_id)) { $this->response['redirect'] = make_url(POSTING_URL . '?mode=editpost&p=' . $post_id); @@ -132,7 +132,7 @@ switch ($this->request['type']) { if (config('tp.max_smilies')) { $count_smilies = substr_count(bbcode2html($text), 'request['type']) { )); } } else { - $this->ajax_die($lang['EMPTY_MESSAGE']); + $this->ajax_die(trans('messages.EMPTY_MESSAGE')); } // Update atom feed @@ -158,9 +158,9 @@ switch ($this->request['type']) { } else { $is_auth = auth_user(AUTH_ALL, $post['forum_id'], $userdata, $post); if ($post['topic_status'] == TOPIC_LOCKED && !$is_auth['auth_mod']) { - $this->ajax_die($lang['TOPIC_LOCKED']); + $this->ajax_die(trans('messages.TOPIC_LOCKED')); } elseif (!$is_auth['auth_edit']) { - $this->ajax_die(sprintf($lang['SORRY_AUTH_EDIT'], strip_tags($is_auth['auth_edit_type']))); + $this->ajax_die(sprintf(trans('messages.SORRY_AUTH_EDIT'), strip_tags($is_auth['auth_edit_type']))); } $hidden_form = ''; @@ -171,23 +171,23 @@ switch ($this->request['type']) { ' . $hidden_form . '
            - - - -    - - -   - - -   -   + + + +    + + +   + + +   +  
            - - - + + +

            ' . $lang['REG_IP'] . '' . trans('messages.REG_IP') . ' ' . $reg_ip . '
            ' . $link_reg_ip . '
            ' . $lang['LAST_IP'] . '' . trans('messages.LAST_IP') . ' ' . $last_ip . '
            ' . $link_last_ip . '