");
+ $phpinfo_html = preg_replace("# ]*>([^<]+)<\/th>#", "$1 ", $phpinfo_html);
+ $phpinfo_html = preg_replace("# ]*>([^<]+)<\/td>#", "$1 ", $phpinfo_html);
+ $phpinfo_html = preg_split("#(]*>[^<]+<\/h2>)#", $phpinfo_html, -1, PREG_SPLIT_DELIM_CAPTURE);
+ $modules = array();
+
+ for($i=1; $i < count($phpinfo_html); $i++)
+ {
+ if(preg_match("#]*>([^<]+)<\/h2>#", $phpinfo_html[$i], $match))
+ {
+ $name = trim($match[1]);
+ $tmp2 = explode("\n", $phpinfo_html[$i+1]);
+ foreach($tmp2 as $one)
+ {
+ $pat = '([^<]+)<\/info>';
+ $pat3 = "/$pat\s*$pat\s*$pat/";
+ $pat2 = "/$pat\s*$pat/";
+
+ // 3 columns
+ if(preg_match($pat3, $one, $match))
+ {
+ $modules[$name][trim($match[1])] = array(trim($match[2]), trim($match[3]));
+ }
+ // 2 columns
+ else if(preg_match($pat2, $one, $match))
+ {
+ $modules[$name][trim($match[1])] = trim($match[2]);
+ }
+ }
+ }
+ }
+ return $modules;
+}
+
diff --git a/Upload/inc/functions_task.php b/Upload/inc/functions_task.php
new file mode 100644
index 0000000..c6800d7
--- /dev/null
+++ b/Upload/inc/functions_task.php
@@ -0,0 +1,370 @@
+ 0)
+ {
+ $query = $db->simple_select("tasks", "*", "tid='{$tid}'");
+ $task = $db->fetch_array($query);
+ }
+
+ // Run the next task due to be run
+ else
+ {
+ $query = $db->simple_select("tasks", "*", "enabled=1 AND nextrun<='".TIME_NOW."'", array("order_by" => "nextrun", "order_dir" => "asc", "limit" => 1));
+ $task = $db->fetch_array($query);
+ }
+
+ // No task? Return
+ if(!$task['tid'])
+ {
+ $cache->update_tasks();
+ return false;
+ }
+
+ // Is this task still running and locked less than 5 minutes ago? Well don't run it now - clearly it isn't broken!
+ if($task['locked'] != 0 && $task['locked'] > TIME_NOW-300)
+ {
+ $cache->update_tasks();
+ return false;
+ }
+ // Lock it! It' mine, all mine!
+ else
+ {
+ $db->update_query("tasks", array("locked" => TIME_NOW), "tid='{$task['tid']}'");
+ }
+
+ // The task file does not exist
+ if(!file_exists(MYBB_ROOT."inc/tasks/{$task['file']}.php"))
+ {
+ if($task['logging'] == 1)
+ {
+ add_task_log($task, $lang->missing_task);
+ }
+ $cache->update_tasks();
+ return false;
+ }
+ // Run the task
+ else
+ {
+ // Update the nextrun time now, so if the task causes a fatal error, it doesn't get stuck first in the queue
+ $nextrun = fetch_next_run($task);
+ $db->update_query("tasks", array("nextrun" => $nextrun), "tid='{$task['tid']}'");
+
+ include_once MYBB_ROOT."inc/tasks/{$task['file']}.php";
+ $function = "task_{$task['file']}";
+ if(function_exists($function))
+ {
+ $function($task);
+ }
+ }
+
+ $updated_task = array(
+ "lastrun" => TIME_NOW,
+ "locked" => 0
+ );
+ $db->update_query("tasks", $updated_task, "tid='{$task['tid']}'");
+
+ $cache->update_tasks();
+
+ return true;
+}
+
+/**
+ * Adds information to the scheduled task log.
+ *
+ * @param int The task array to create the log entry for
+ * @param string The message to log
+ */
+function add_task_log($task, $message)
+{
+ global $db;
+
+ if(!$task['logging'])
+ {
+ return;
+ }
+
+ $log_entry = array(
+ "tid" => (int)$task['tid'],
+ "dateline" => TIME_NOW,
+ "data" => $db->escape_string($message)
+ );
+ $db->insert_query("tasklog", $log_entry);
+}
+
+/**
+ * Generate the next run time for a particular task.
+ *
+ * @param array The task array as fetched from the database.
+ * @return int The next run time as a UNIX timestamp
+ */
+function fetch_next_run($task)
+{
+ $time = TIME_NOW;
+ $next_minute = $current_minute = date("i", $time);
+ $next_hour = $current_hour = date("H", $time);
+ $next_day = $current_day = date("d", $time);
+ $next_weekday = $current_weekday = date("w", $time);
+ $next_month = $current_month = date("m", $time);
+ $next_year = $current_year = date("Y", $time);
+ $reset_day = $reset_hour = $reset_month = $reset_year = 0;
+
+ if($task['minute'] == "*")
+ {
+ ++$next_minute;
+ if($next_minute > 59)
+ {
+ $reset_hour = 1;
+ $next_minute = 0;
+ }
+ }
+ else
+ {
+ if(build_next_run_bit($task['minute'], $current_minute) != false)
+ {
+ $next_minute = build_next_run_bit($task['minute'], $current_minute);
+ }
+ else
+ {
+ $next_minute = fetch_first_run_time($task['minute']);
+ }
+ if($next_minute <= $current_minute)
+ {
+ $reset_hour = 1;
+ }
+ }
+
+ if($reset_hour || !run_time_exists($task['hour'], $current_hour))
+ {
+ if($task['hour'] == "*")
+ {
+ ++$next_hour;
+ if($next_hour > 23)
+ {
+ $reset_day = 1;
+ $next_hour = 0;
+ }
+ }
+ else
+ {
+ if(build_next_run_bit($task['hour'], $current_hour) != false)
+ {
+ $next_hour = build_next_run_bit($task['hour'], $current_hour);
+ }
+ else
+ {
+ $next_hour = fetch_first_run_time($task['hour']);
+ $reset_day = 1;
+ }
+ if($next_hour < $current_hour)
+ {
+ $reset_day = 1;
+ }
+ }
+ $next_minute = fetch_first_run_time($task['minute']);
+ }
+
+ if($reset_day || ($task['weekday'] == "*" && !run_time_exists($task['day'], $current_day) || $task['day'] == "*" && !run_time_exists($task['weekday'], $current_weekday)))
+ {
+ if($task['weekday'] == "*")
+ {
+ if($task['day'] == "*")
+ {
+ ++$next_day;
+ if($next_day > date("t", $time))
+ {
+ $reset_month = 1;
+ $next_day = 1;
+ }
+ }
+ else
+ {
+ if(build_next_run_bit($task['day'], $current_day) != false)
+ {
+ $next_day = build_next_run_bit($task['day'], $current_day);
+ }
+ else
+ {
+ $next_day = fetch_first_run_time($task['day']);
+ $reset_month = 1;
+ }
+ if($next_day < $current_day)
+ {
+ $reset_month = 1;
+ }
+ }
+ }
+ else
+ {
+ if(build_next_run_bit($task['weekday'], $current_weekday) != false)
+ {
+ $next_weekday = build_next_run_bit($task['weekday'], $current_weekday);
+ }
+ else
+ {
+ $next_weekday = fetch_first_run_time($task['weekday']);
+ }
+ $next_day = $current_day + ($next_weekday-$current_weekday);
+ if($next_day <= $current_day)
+ {
+ $next_day += 7;
+ }
+
+ if($next_day > date("t", $time))
+ {
+ $reset_month = 1;
+ }
+ }
+ $next_minute = fetch_first_run_time($task['minute']);
+ $next_hour = fetch_first_run_time($task['hour']);
+ if($next_day == $current_day && $next_hour < $current_hour)
+ {
+ $reset_month = 1;
+ }
+ }
+
+ if($reset_month || !run_time_exists($task['month'], $current_month))
+ {
+ if($task['month'] == "*")
+ {
+ $next_month++;
+ if($next_month > 12)
+ {
+ $reset_year = 1;
+ $next_month = 1;
+ }
+ }
+ else
+ {
+ if(build_next_run_bit($task['month'], $current_month) != false)
+ {
+ $next_month = build_next_run_bit($task['month'], $current_month);
+ }
+ else
+ {
+ $next_month = fetch_first_run_time($task['month']);
+ $reset_year = 1;
+ }
+ if($next_month < $current_month)
+ {
+ $reset_year = 1;
+ }
+ }
+ $next_minute = fetch_first_run_time($task['minute']);
+ $next_hour = fetch_first_run_time($task['hour']);
+ if($task['weekday'] == "*")
+ {
+ $next_day = fetch_first_run_time($task['day']);
+ if($next_day == 0) $next_day = 1;
+ }
+ else
+ {
+ $next_weekday = fetch_first_run_time($task['weekday']);
+ $new_weekday = date("w", mktime($next_hour, $next_minute, 0, $next_month, 1, $next_year));
+ $next_day = 1 + ($next_weekday-$new_weekday);
+ if($next_weekday < $new_weekday)
+ {
+ $next_day += 7;
+ }
+ }
+ if($next_month == $current_month && $next_day == $current_day && $next_hour < $current_hour)
+ {
+ $reset_year = 1;
+ }
+ }
+
+ if($reset_year)
+ {
+ $next_year++;
+ $next_minute = fetch_first_run_time($task['minute']);
+ $next_hour = fetch_first_run_time($task['hour']);
+ $next_month = fetch_first_run_time($task['month']);
+ if($next_month == 0) $next_month = 1;
+ if($task['weekday'] == "*")
+ {
+ $next_day = fetch_first_run_time($task['day']);
+ if($next_day == 0) $next_day = 1;
+ }
+ else
+ {
+ $next_weekday = fetch_first_run_time($task['weekday']);
+ $new_weekday = date("w", mktime($next_hour, $next_minute, 0, $next_month, 1, $next_year));
+ $next_day = 1 + ($next_weekday-$new_weekday);
+ if($next_weekday < $new_weekday)
+ {
+ $next_day += 7;
+ }
+ }
+ }
+ return mktime($next_hour, $next_minute, 0, $next_month, $next_day, $next_year);
+}
+
+/**
+ * Builds the next run time bit for a particular item (day, hour, month etc). Used by fetch_next_run().
+ *
+ * @param string A string containing the run timse for this particular item
+ * @param int The current value (be it current day etc)
+ * @return int The new or found value
+ */
+function build_next_run_bit($data, $bit)
+{
+ if($data == "*") return $bit;
+ $data = explode(",", $data);
+ foreach($data as $thing)
+ {
+ if($thing > $bit)
+ {
+ return $thing;
+ }
+ }
+ return false;
+}
+
+/**
+ * Fetches the fist run bit for a particular item (day, hour, month etc). Used by fetch_next_run().
+ *
+ * @param string A string containing the run times for this particular item
+ * @return int The first run time
+ */
+function fetch_first_run_time($data)
+{
+ if($data == "*") return "0";
+ $data = explode(",", $data);
+ return $data[0];
+}
+
+/**
+ * Checks if a specific run time exists for a particular item (day, hour, month etc). Used by fetch_next_run().
+ *
+ * @param string A string containing the run times for this particular item
+ * @param int The bit we're checking for
+ * @return boolean True if it exists, false if it does not
+ */
+function run_time_exists($data, $bit)
+{
+ if($data == "*") return true;
+ $data = explode(",", $data);
+ if(in_array($bit, $data))
+ {
+ return true;
+ }
+ return false;
+}
diff --git a/Upload/inc/functions_time.php b/Upload/inc/functions_time.php
new file mode 100644
index 0000000..862f980
--- /dev/null
+++ b/Upload/inc/functions_time.php
@@ -0,0 +1,878 @@
+ 4 digit year conversion. The maximum is billions of years in the
+future, but this is a theoretical limit as the computation of that year
+would take too long with the current implementation of adodb_mktime().
+
+This library replaces native functions as follows:
+
+
+ getdate() with adodb_getdate()
+ date() with adodb_date()
+ gmdate() with adodb_gmdate()
+ mktime() with adodb_mktime()
+ gmmktime() with adodb_gmmktime()
+ strftime() with adodb_strftime()
+ strftime() with adodb_gmstrftime()
+
+
+The parameters are identical, except that adodb_date() accepts a subset
+of date()'s field formats. Mktime() will convert from local time to GMT,
+and date() will convert from GMT to local time, but daylight savings is
+not handled currently.
+
+This library is independant of the rest of ADOdb, and can be used
+as standalone code.
+
+PERFORMANCE
+
+For high speed, this library uses the native date functions where
+possible, and only switches to PHP code when the dates fall outside
+the 32-bit signed integer range.
+
+GREGORIAN CORRECTION
+
+Pope Gregory shortened October of A.D. 1582 by ten days. Thursday,
+October 4, 1582 (Julian) was followed immediately by Friday, October 15,
+1582 (Gregorian).
+
+Since 0.06, we handle this correctly, so:
+
+adodb_mktime(0,0,0,10,15,1582) - adodb_mktime(0,0,0,10,4,1582)
+ == 24 * 3600 (1 day)
+
+=============================================================================
+
+COPYRIGHT
+
+(c) 2003-2005 John Lim and released under BSD-style license except for code by
+jackbbs, which includes adodb_mktime, adodb_get_gmt_diff, adodb_is_leap_year
+and originally found at http://www.php.net/manual/en/function.mktime.php
+
+=============================================================================
+
+BUG REPORTS
+
+These should be posted to the ADOdb forums at
+
+ http://phplens.com/lens/lensforum/topics.php?id=4
+
+=============================================================================
+*/
+
+
+/* Initialization */
+
+/*
+ Version Number
+*/
+define('ADODB_DATE_VERSION', 0.33);
+
+$ADODB_DATETIME_CLASS = (PHP_VERSION >= 5.2);
+
+/*
+ This code was originally for windows. But apparently this problem happens
+ also with Linux, RH 7.3 and later!
+
+ glibc-2.2.5-34 and greater has been changed to return -1 for dates <
+ 1970. This used to work. The problem exists with RedHat 7.3 and 8.0
+ echo (mktime(0, 0, 0, 1, 1, 1960)); // prints -1
+
+ References:
+ http://bugs.php.net/bug.php?id=20048&edit=2
+ http://lists.debian.org/debian-glibc/2002/debian-glibc-200205/msg00010.html
+*/
+
+if (!defined('ADODB_ALLOW_NEGATIVE_TS')) define('ADODB_NO_NEGATIVE_TS',1);
+
+/**
+ Returns day of week, 0 = Sunday,... 6=Saturday.
+ Algorithm from PEAR::Date_Calc
+*/
+function adodb_dow($year, $month, $day)
+{
+/*
+Pope Gregory removed 10 days - October 5 to October 14 - from the year 1582 and
+proclaimed that from that time onwards 3 days would be dropped from the calendar
+every 400 years.
+
+Thursday, October 4, 1582 (Julian) was followed immediately by Friday, October 15, 1582 (Gregorian).
+*/
+ if ($year <= 1582) {
+ if ($year < 1582 ||
+ ($year == 1582 && ($month < 10 || ($month == 10 && $day < 15)))) $greg_correction = 3;
+ else
+ $greg_correction = 0;
+ } else
+ $greg_correction = 0;
+
+ if($month > 2)
+ $month -= 2;
+ else {
+ $month += 10;
+ $year--;
+ }
+
+ $day = floor((13 * $month - 1) / 5) +
+ $day + ($year % 100) +
+ floor(($year % 100) / 4) +
+ floor(($year / 100) / 4) - 2 *
+ floor($year / 100) + 77 + $greg_correction;
+
+ return $day - 7 * floor($day / 7);
+}
+
+/**
+ Checks for leap year, returns true if it is. No 2-digit year check. Also
+ handles julian calendar correctly.
+*/
+function _adodb_is_leap_year($year)
+{
+ if ($year % 4 != 0) return false;
+
+ if ($year % 400 == 0) {
+ return true;
+ // if gregorian calendar (>1582), century not-divisible by 400 is not leap
+ } else if ($year > 1582 && $year % 100 == 0 ) {
+ return false;
+ }
+
+ return true;
+}
+
+/**
+ checks for leap year, returns true if it is. Has 2-digit year check
+*/
+function adodb_is_leap_year($year)
+{
+ return _adodb_is_leap_year(adodb_year_digit_check($year));
+}
+
+/**
+ Fix 2-digit years. Works for any century.
+ Assumes that if 2-digit is more than 30 years in future, then previous century.
+*/
+function adodb_year_digit_check($y)
+{
+ if ($y < 100) {
+
+ $yr = (integer) date("Y");
+ $century = (integer) ($yr /100);
+
+ if ($yr%100 > 50) {
+ $c1 = $century + 1;
+ $c0 = $century;
+ } else {
+ $c1 = $century;
+ $c0 = $century - 1;
+ }
+ $c1 *= 100;
+ // if 2-digit year is less than 30 years in future, set it to this century
+ // otherwise if more than 30 years in future, then we set 2-digit year to the prev century.
+ if (($y + $c1) < $yr+30) $y = $y + $c1;
+ else $y = $y + $c0*100;
+ }
+ return $y;
+}
+
+function adodb_get_gmt_diff_ts($ts)
+{
+ if (0 <= $ts && $ts <= 0x7FFFFFFF) { // check if number in 32-bit signed range) {
+ $arr = getdate($ts);
+ $y = $arr['year'];
+ $m = $arr['mon'];
+ $d = $arr['mday'];
+ return adodb_get_gmt_diff($y,$m,$d);
+ } else {
+ return adodb_get_gmt_diff(false,false,false);
+ }
+
+}
+
+/**
+ get local time zone offset from GMT. Does not handle historical timezones before 1970.
+*/
+function adodb_get_gmt_diff($y,$m,$d)
+{
+static $TZ,$tzo;
+global $ADODB_DATETIME_CLASS;
+
+ if (!defined('ADODB_TEST_DATES')) $y = false;
+ else if ($y < 1970 || $y >= 2038) $y = false;
+
+ if ($ADODB_DATETIME_CLASS && $y !== false) {
+ $dt = new DateTime();
+ $dt->setISODate($y,$m,$d);
+ if (empty($tzo)) {
+ $tzo = new DateTimeZone(date_default_timezone_get());
+ # $tzt = timezone_transitions_get( $tzo );
+ }
+ return -$tzo->getOffset($dt);
+ } else {
+ if (isset($TZ)) return $TZ;
+ $y = date('Y');
+ $TZ = mktime(0,0,0,12,2,$y) - gmmktime(0,0,0,12,2,$y);
+ }
+
+ return $TZ;
+}
+
+/**
+ Returns an array with date info.
+*/
+function adodb_getdate($d=false,$fast=false)
+{
+ if ($d === false) return getdate();
+ if (!defined('ADODB_TEST_DATES')) {
+ if ((abs($d) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range
+ if (!defined('ADODB_NO_NEGATIVE_TS') || $d >= 0) // if windows, must be +ve integer
+ return @getdate($d);
+ }
+ }
+ return _adodb_getdate($d);
+}
+
+$_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31);
+$_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31);
+
+/**
+ Low-level function that returns the getdate() array. We have a special
+ $fast flag, which if set to true, will return fewer array values,
+ and is much faster as it does not calculate dow, etc.
+*/
+function _adodb_getdate($origd=false,$fast=false,$is_gmt=false)
+{
+static $YRS;
+global $_month_table_normal,$_month_table_leaf;
+
+ $d = $origd - ($is_gmt ? 0 : adodb_get_gmt_diff_ts($origd));
+ $_day_power = 86400;
+ $_hour_power = 3600;
+ $_min_power = 60;
+
+ if ($d < -12219321600) $d -= 86400*10; // if 15 Oct 1582 or earlier, gregorian correction
+
+ $_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31);
+ $_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31);
+
+ $d366 = $_day_power * 366;
+ $d365 = $_day_power * 365;
+
+ if ($d < 0) {
+
+ if (empty($YRS)) $YRS = array(
+ 1970 => 0,
+ 1960 => -315619200,
+ 1950 => -631152000,
+ 1940 => -946771200,
+ 1930 => -1262304000,
+ 1920 => -1577923200,
+ 1910 => -1893456000,
+ 1900 => -2208988800,
+ 1890 => -2524521600,
+ 1880 => -2840140800,
+ 1870 => -3155673600,
+ 1860 => -3471292800,
+ 1850 => -3786825600,
+ 1840 => -4102444800,
+ 1830 => -4417977600,
+ 1820 => -4733596800,
+ 1810 => -5049129600,
+ 1800 => -5364662400,
+ 1790 => -5680195200,
+ 1780 => -5995814400,
+ 1770 => -6311347200,
+ 1760 => -6626966400,
+ 1750 => -6942499200,
+ 1740 => -7258118400,
+ 1730 => -7573651200,
+ 1720 => -7889270400,
+ 1710 => -8204803200,
+ 1700 => -8520336000,
+ 1690 => -8835868800,
+ 1680 => -9151488000,
+ 1670 => -9467020800,
+ 1660 => -9782640000,
+ 1650 => -10098172800,
+ 1640 => -10413792000,
+ 1630 => -10729324800,
+ 1620 => -11044944000,
+ 1610 => -11360476800,
+ 1600 => -11676096000);
+
+ if ($is_gmt) $origd = $d;
+ // The valid range of a 32bit signed timestamp is typically from
+ // Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT
+ //
+
+ # old algorithm iterates through all years. new algorithm does it in
+ # 10 year blocks
+
+ /*
+ # old algo
+ for ($a = 1970 ; --$a >= 0;) {
+ $lastd = $d;
+
+ if ($leaf = _adodb_is_leap_year($a)) $d += $d366;
+ else $d += $d365;
+
+ if ($d >= 0) {
+ $year = $a;
+ break;
+ }
+ }
+ */
+
+ $lastsecs = 0;
+ $lastyear = 1970;
+ foreach($YRS as $year => $secs) {
+ if ($d >= $secs) {
+ $a = $lastyear;
+ break;
+ }
+ $lastsecs = $secs;
+ $lastyear = $year;
+ }
+
+ $d -= $lastsecs;
+ if (!isset($a)) $a = $lastyear;
+
+ //echo ' yr=',$a,' ', $d,'.';
+
+ for (; --$a >= 0;) {
+ $lastd = $d;
+
+ if ($leaf = _adodb_is_leap_year($a)) $d += $d366;
+ else $d += $d365;
+
+ if ($d >= 0) {
+ $year = $a;
+ break;
+ }
+ }
+ /**/
+
+ $secsInYear = 86400 * ($leaf ? 366 : 365) + $lastd;
+
+ $d = $lastd;
+ $mtab = ($leaf) ? $_month_table_leaf : $_month_table_normal;
+ for ($a = 13 ; --$a > 0;) {
+ $lastd = $d;
+ $d += $mtab[$a] * $_day_power;
+ if ($d >= 0) {
+ $month = $a;
+ $ndays = $mtab[$a];
+ break;
+ }
+ }
+
+ $d = $lastd;
+ $day = $ndays + ceil(($d+1) / ($_day_power));
+
+ $d += ($ndays - $day+1)* $_day_power;
+ $hour = floor($d/$_hour_power);
+
+ } else {
+ for ($a = 1970 ;; $a++) {
+ $lastd = $d;
+
+ if ($leaf = _adodb_is_leap_year($a)) $d -= $d366;
+ else $d -= $d365;
+ if ($d < 0) {
+ $year = $a;
+ break;
+ }
+ }
+ $secsInYear = $lastd;
+ $d = $lastd;
+ $mtab = ($leaf) ? $_month_table_leaf : $_month_table_normal;
+ for ($a = 1 ; $a <= 12; $a++) {
+ $lastd = $d;
+ $d -= $mtab[$a] * $_day_power;
+ if ($d < 0) {
+ $month = $a;
+ $ndays = $mtab[$a];
+ break;
+ }
+ }
+ $d = $lastd;
+ $day = ceil(($d+1) / $_day_power);
+ $d = $d - ($day-1) * $_day_power;
+ $hour = floor($d /$_hour_power);
+ }
+
+ $d -= $hour * $_hour_power;
+ $min = floor($d/$_min_power);
+ $secs = $d - $min * $_min_power;
+ if ($fast) {
+ return array(
+ 'seconds' => $secs,
+ 'minutes' => $min,
+ 'hours' => $hour,
+ 'mday' => $day,
+ 'mon' => $month,
+ 'year' => $year,
+ 'yday' => floor($secsInYear/$_day_power),
+ 'leap' => $leaf,
+ 'ndays' => $ndays
+ );
+ }
+
+ $dow = adodb_dow($year,$month,$day);
+
+ return array(
+ 'seconds' => $secs,
+ 'minutes' => $min,
+ 'hours' => $hour,
+ 'mday' => $day,
+ 'wday' => $dow,
+ 'mon' => $month,
+ 'year' => $year,
+ 'yday' => floor($secsInYear/$_day_power),
+ 'weekday' => gmdate('l',$_day_power*(3+$dow)),
+ 'month' => gmdate('F',mktime(0,0,0,$month,2,1971)),
+ 0 => $origd
+ );
+}
+
+function adodb_tz_offset($gmt,$isphp5)
+{
+ $zhrs = abs($gmt)/3600;
+ $hrs = floor($zhrs);
+ if ($isphp5)
+ return sprintf('%s%02d%02d',($gmt<=0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60);
+ else
+ return sprintf('%s%02d%02d',($gmt<0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60);
+ break;
+}
+
+function adodb_gmdate($fmt,$d=false)
+{
+ return adodb_date($fmt,$d,true);
+}
+
+// accepts unix timestamp and iso date format in $d
+function adodb_date2($fmt, $d=false, $is_gmt=false)
+{
+ if ($d !== false) {
+ if (!preg_match(
+ "|^([0-9]{4})[-/\.]?([0-9]{1,2})[-/\.]?([0-9]{1,2})[ -]?(([0-9]{1,2}):?([0-9]{1,2}):?([0-9\.]{1,4}))?|",
+ ($d), $rr)) return adodb_date($fmt,false,$is_gmt);
+
+ if ($rr[1] <= 100 && $rr[2]<= 1) return adodb_date($fmt,false,$is_gmt);
+
+ // h-m-s-MM-DD-YY
+ if (!isset($rr[5])) $d = adodb_mktime(0,0,0,$rr[2],$rr[3],$rr[1],false,$is_gmt);
+ else $d = @adodb_mktime($rr[5],$rr[6],$rr[7],$rr[2],$rr[3],$rr[1],false,$is_gmt);
+ }
+
+ return adodb_date($fmt,$d,$is_gmt);
+}
+
+/**
+ Return formatted date based on timestamp $d
+*/
+function adodb_date($fmt,$d=false,$is_gmt=false)
+{
+static $daylight;
+global $ADODB_DATETIME_CLASS;
+
+ if ($d === false) return ($is_gmt)? @gmdate($fmt): @date($fmt);
+ if (!defined('ADODB_TEST_DATES')) {
+ if ((abs($d) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range
+ if (!defined('ADODB_NO_NEGATIVE_TS') || $d >= 0) // if windows, must be +ve integer
+ return ($is_gmt)? @gmdate($fmt,$d): @date($fmt,$d);
+
+ }
+ }
+ $_day_power = 86400;
+
+ $arr = _adodb_getdate($d,true,$is_gmt);
+
+ if (!isset($daylight)) $daylight = function_exists('adodb_daylight_sv');
+ if ($daylight) adodb_daylight_sv($arr, $is_gmt);
+
+ $year = $arr['year'];
+ $month = $arr['mon'];
+ $day = $arr['mday'];
+ $hour = $arr['hours'];
+ $min = $arr['minutes'];
+ $secs = $arr['seconds'];
+
+ $max = strlen($fmt);
+ $dates = '';
+
+ $isphp5 = PHP_VERSION >= 5;
+
+ /*
+ at this point, we have the following integer vars to manipulate:
+ $year, $month, $day, $hour, $min, $secs
+ */
+ for ($i=0; $i < $max; $i++) {
+ switch($fmt[$i]) {
+ case 'T':
+ if ($ADODB_DATETIME_CLASS) {
+ $dt = new DateTime();
+ $dt->SetDate($year,$month,$day);
+ $dates .= $dt->Format('T');
+ } else
+ $dates .= date('T');
+ break;
+ // YEAR
+ case 'L': $dates .= $arr['leap'] ? '1' : '0'; break;
+ case 'r': // Thu, 21 Dec 2000 16:01:07 +0200
+
+ // 4.3.11 uses '04 Jun 2004'
+ // 4.3.8 uses ' 4 Jun 2004'
+ $dates .= gmdate('D',$_day_power*(3+adodb_dow($year,$month,$day))).', '
+ . ($day<10?'0'.$day:$day) . ' '.date('M',mktime(0,0,0,$month,2,1971)).' '.$year.' ';
+
+ if ($hour < 10) $dates .= '0'.$hour; else $dates .= $hour;
+
+ if ($min < 10) $dates .= ':0'.$min; else $dates .= ':'.$min;
+
+ if ($secs < 10) $dates .= ':0'.$secs; else $dates .= ':'.$secs;
+
+ $gmt = adodb_get_gmt_diff($year,$month,$day);
+
+ $dates .= ' '.adodb_tz_offset($gmt,$isphp5);
+ break;
+
+ case 'Y': $dates .= $year; break;
+ case 'y': $dates .= substr($year,strlen($year)-2,2); break;
+ // MONTH
+ case 'm': if ($month<10) $dates .= '0'.$month; else $dates .= $month; break;
+ case 'Q': $dates .= ($month+3)>>2; break;
+ case 'n': $dates .= $month; break;
+ case 'M': $dates .= date('M',mktime(0,0,0,$month,2,1971)); break;
+ case 'F': $dates .= date('F',mktime(0,0,0,$month,2,1971)); break;
+ // DAY
+ case 't': $dates .= $arr['ndays']; break;
+ case 'z': $dates .= $arr['yday']; break;
+ case 'w': $dates .= adodb_dow($year,$month,$day); break;
+ case 'l': $dates .= gmdate('l',$_day_power*(3+adodb_dow($year,$month,$day))); break;
+ case 'D': $dates .= gmdate('D',$_day_power*(3+adodb_dow($year,$month,$day))); break;
+ case 'j': $dates .= $day; break;
+ case 'd': if ($day<10) $dates .= '0'.$day; else $dates .= $day; break;
+ case 'S':
+ $d10 = $day % 10;
+ if ($d10 == 1) $dates .= 'st';
+ else if ($d10 == 2 && $day != 12) $dates .= 'nd';
+ else if ($d10 == 3) $dates .= 'rd';
+ else $dates .= 'th';
+ break;
+
+ // HOUR
+ case 'Z':
+ $dates .= ($is_gmt) ? 0 : -adodb_get_gmt_diff($year,$month,$day); break;
+ case 'O':
+ $gmt = ($is_gmt) ? 0 : adodb_get_gmt_diff($year,$month,$day);
+
+ $dates .= adodb_tz_offset($gmt,$isphp5);
+ break;
+
+ case 'H':
+ if ($hour < 10) $dates .= '0'.$hour;
+ else $dates .= $hour;
+ break;
+ case 'h':
+ if ($hour > 12) $hh = $hour - 12;
+ else {
+ if ($hour == 0) $hh = '12';
+ else $hh = $hour;
+ }
+
+ if ($hh < 10) $dates .= '0'.$hh;
+ else $dates .= $hh;
+ break;
+
+ case 'G':
+ $dates .= $hour;
+ break;
+
+ case 'g':
+ if ($hour > 12) $hh = $hour - 12;
+ else {
+ if ($hour == 0) $hh = '12';
+ else $hh = $hour;
+ }
+ $dates .= $hh;
+ break;
+ // MINUTES
+ case 'i': if ($min < 10) $dates .= '0'.$min; else $dates .= $min; break;
+ // SECONDS
+ case 'U': $dates .= $d; break;
+ case 's': if ($secs < 10) $dates .= '0'.$secs; else $dates .= $secs; break;
+ // AM/PM
+ // Note 00:00 to 11:59 is AM, while 12:00 to 23:59 is PM
+ case 'a':
+ if ($hour>=12) $dates .= 'pm';
+ else $dates .= 'am';
+ break;
+ case 'A':
+ if ($hour>=12) $dates .= 'PM';
+ else $dates .= 'AM';
+ break;
+ default:
+ $dates .= $fmt[$i]; break;
+ // ESCAPE
+ case "\\":
+ $i++;
+ if ($i < $max) $dates .= $fmt[$i];
+ break;
+ }
+ }
+ return $dates;
+}
+
+/**
+ Returns a timestamp given a GMT/UTC time.
+ Note that $is_dst is not implemented and is ignored.
+*/
+function adodb_gmmktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=false)
+{
+ return adodb_mktime($hr,$min,$sec,$mon,$day,$year,$is_dst,true);
+}
+
+/**
+ Return a timestamp given a local time. Originally by jackbbs.
+ Note that $is_dst is not implemented and is ignored.
+
+ Not a very fast algorithm - O(n) operation. Could be optimized to O(1).
+
+ NOTE: returns time() when the year is > 9999
+*/
+function adodb_mktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=false,$is_gmt=false)
+{
+ if (!defined('ADODB_TEST_DATES')) {
+
+ if ($mon === false) {
+ return $is_gmt? @gmmktime($hr,$min,$sec): @mktime($hr,$min,$sec);
+ }
+
+ // for windows, we don't check 1970 because with timezone differences,
+ // 1 Jan 1970 could generate negative timestamp, which is illegal
+ $usephpfns = (1971 < $year && $year < 2038
+ || !defined('ADODB_NO_NEGATIVE_TS') && (1901 < $year && $year < 2038)
+ );
+
+
+ if ($usephpfns && ($year + $mon/12+$day/365.25+$hr/(24*365.25) >= 2038)) $usephpfns = false;
+
+ if ($usephpfns) {
+ return $is_gmt ?
+ @gmmktime($hr,$min,$sec,$mon,$day,$year):
+ @mktime($hr,$min,$sec,$mon,$day,$year);
+ }
+ }
+
+ $gmt_different = ($is_gmt) ? 0 : adodb_get_gmt_diff($year,$mon,$day);
+
+ /*
+ # disabled because some people place large values in $sec.
+ # however we need it for $mon because we use an array...
+ $hr = (int)$hr;
+ $min = (int)$min;
+ $sec = (int)$sec;
+ */
+ $mon = (int)$mon;
+ $day = (int)$day;
+ $year = (int)$year;
+
+
+ $year = adodb_year_digit_check($year);
+
+ if ($mon > 12) {
+ $y = floor(($mon-1)/ 12);
+ $year += $y;
+ $mon -= $y*12;
+ } else if ($mon < 1) {
+ $y = ceil((1-$mon) / 12);
+ $year -= $y;
+ $mon += $y*12;
+ }
+
+ $_day_power = 86400;
+ $_hour_power = 3600;
+ $_min_power = 60;
+
+ $_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31);
+ $_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31);
+
+ $_total_date = 0;
+ if($year > 9999) {
+ return time();
+ } else if ($year >= 1970) {
+ for ($a = 1970 ; $a <= $year; $a++) {
+ $leaf = _adodb_is_leap_year($a);
+ if ($leaf == true) {
+ $loop_table = $_month_table_leaf;
+ $_add_date = 366;
+ } else {
+ $loop_table = $_month_table_normal;
+ $_add_date = 365;
+ }
+ if ($a < $year) {
+ $_total_date += $_add_date;
+ } else {
+ for($b=1;$b<$mon;$b++) {
+ $_total_date += $loop_table[$b];
+ }
+ }
+ }
+ $_total_date +=$day-1;
+ $ret = $_total_date * $_day_power + $hr * $_hour_power + $min * $_min_power + $sec + $gmt_different;
+
+ } else {
+ for ($a = 1969 ; $a >= $year; $a--) {
+ $leaf = _adodb_is_leap_year($a);
+ if ($leaf == true) {
+ $loop_table = $_month_table_leaf;
+ $_add_date = 366;
+ } else {
+ $loop_table = $_month_table_normal;
+ $_add_date = 365;
+ }
+ if ($a > $year) { $_total_date += $_add_date;
+ } else {
+ for($b=12;$b>$mon;$b--) {
+ $_total_date += $loop_table[$b];
+ }
+ }
+ }
+ $_total_date += $loop_table[$mon] - $day;
+
+ $_day_time = $hr * $_hour_power + $min * $_min_power + $sec;
+ $_day_time = $_day_power - $_day_time;
+ $ret = -( $_total_date * $_day_power + $_day_time - $gmt_different);
+ if ($ret < -12220185600) $ret += 10*86400; // if earlier than 5 Oct 1582 - gregorian correction
+ else if ($ret < -12219321600) $ret = -12219321600; // if in limbo, reset to 15 Oct 1582.
+ }
+ //print " dmy=$day/$mon/$year $hr:$min:$sec => " .$ret;
+ return $ret;
+}
+
+function adodb_gmstrftime($fmt, $ts=false)
+{
+ return adodb_strftime($fmt,$ts,true);
+}
+
+// hack - convert to adodb_date
+function adodb_strftime($fmt, $ts=false,$is_gmt=false)
+{
+global $ADODB_DATE_LOCALE;
+
+ if (!defined('ADODB_TEST_DATES')) {
+ if ((abs($ts) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range
+ if (!defined('ADODB_NO_NEGATIVE_TS') || $ts >= 0) // if windows, must be +ve integer
+ return ($is_gmt)? @gmstrftime($fmt,$ts): @strftime($fmt,$ts);
+
+ }
+ }
+
+ if (empty($ADODB_DATE_LOCALE)) {
+ /*
+ $tstr = strtoupper(gmstrftime('%c',31366800)); // 30 Dec 1970, 1 am
+ $sep = substr($tstr,2,1);
+ $hasAM = strrpos($tstr,'M') !== false;
+ */
+ # see http://phplens.com/lens/lensforum/msgs.php?id=14865 for reasoning, and changelog for version 0.24
+ $dstr = gmstrftime('%x',31366800); // 30 Dec 1970, 1 am
+ $sep = substr($dstr,2,1);
+ $tstr = strtoupper(gmstrftime('%X',31366800)); // 30 Dec 1970, 1 am
+ $hasAM = strrpos($tstr,'M') !== false;
+
+ $ADODB_DATE_LOCALE = array();
+ $ADODB_DATE_LOCALE[] = strncmp($tstr,'30',2) == 0 ? 'd'.$sep.'m'.$sep.'y' : 'm'.$sep.'d'.$sep.'y';
+ $ADODB_DATE_LOCALE[] = ($hasAM) ? 'h:i:s a' : 'H:i:s';
+
+ }
+ $inpct = false;
+ $fmtdate = '';
+ for ($i=0,$max = strlen($fmt); $i < $max; $i++) {
+ $ch = $fmt[$i];
+ if ($ch == '%') {
+ if ($inpct) {
+ $fmtdate .= '%';
+ $inpct = false;
+ } else
+ $inpct = true;
+ } else if ($inpct) {
+
+ $inpct = false;
+ switch($ch) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case 'E':
+ case 'O':
+ /* ignore format modifiers */
+ $inpct = true;
+ break;
+
+ case 'a': $fmtdate .= 'D'; break;
+ case 'A': $fmtdate .= 'l'; break;
+ case 'h':
+ case 'b': $fmtdate .= 'M'; break;
+ case 'B': $fmtdate .= 'F'; break;
+ case 'c': $fmtdate .= $ADODB_DATE_LOCALE[0].$ADODB_DATE_LOCALE[1]; break;
+ case 'C': $fmtdate .= '\C?'; break; // century
+ case 'd': $fmtdate .= 'd'; break;
+ case 'D': $fmtdate .= 'm/d/y'; break;
+ case 'e': $fmtdate .= 'j'; break;
+ case 'g': $fmtdate .= '\g?'; break; //?
+ case 'G': $fmtdate .= '\G?'; break; //?
+ case 'H': $fmtdate .= 'H'; break;
+ case 'I': $fmtdate .= 'h'; break;
+ case 'j': $fmtdate .= '?z'; $parsej = true; break; // wrong as j=1-based, z=0-basd
+ case 'm': $fmtdate .= 'm'; break;
+ case 'M': $fmtdate .= 'i'; break;
+ case 'n': $fmtdate .= "\n"; break;
+ case 'p': $fmtdate .= 'a'; break;
+ case 'r': $fmtdate .= 'h:i:s a'; break;
+ case 'R': $fmtdate .= 'H:i:s'; break;
+ case 'S': $fmtdate .= 's'; break;
+ case 't': $fmtdate .= "\t"; break;
+ case 'T': $fmtdate .= 'H:i:s'; break;
+ case 'u': $fmtdate .= '?u'; $parseu = true; break; // wrong strftime=1-based, date=0-based
+ case 'U': $fmtdate .= '?U'; $parseU = true; break;// wrong strftime=1-based, date=0-based
+ case 'x': $fmtdate .= $ADODB_DATE_LOCALE[0]; break;
+ case 'X': $fmtdate .= $ADODB_DATE_LOCALE[1]; break;
+ case 'w': $fmtdate .= '?w'; $parseu = true; break; // wrong strftime=1-based, date=0-based
+ case 'W': $fmtdate .= '?W'; $parseU = true; break;// wrong strftime=1-based, date=0-based
+ case 'y': $fmtdate .= 'y'; break;
+ case 'Y': $fmtdate .= 'Y'; break;
+ case 'Z': $fmtdate .= 'T'; break;
+ }
+ } else if (('A' <= ($ch) && ($ch) <= 'Z' ) || ('a' <= ($ch) && ($ch) <= 'z' ))
+ $fmtdate .= "\\".$ch;
+ else
+ $fmtdate .= $ch;
+ }
+ //echo "fmt=",$fmtdate," ";
+ if ($ts === false) $ts = time();
+ $ret = adodb_date($fmtdate, $ts, $is_gmt);
+ return $ret;
+}
+
diff --git a/Upload/inc/functions_upload.php b/Upload/inc/functions_upload.php
new file mode 100644
index 0000000..ad98216
--- /dev/null
+++ b/Upload/inc/functions_upload.php
@@ -0,0 +1,771 @@
+escape_string($posthash);
+ if($posthash != "")
+ {
+ $query = $db->simple_select("attachments", "aid, attachname, thumbnail, visible", "aid='{$aid}' AND posthash='{$posthash}'");
+ $attachment = $db->fetch_array($query);
+ }
+ else
+ {
+ $query = $db->simple_select("attachments", "aid, attachname, thumbnail, visible", "aid='{$aid}' AND pid='{$pid}'");
+ $attachment = $db->fetch_array($query);
+ }
+
+ $plugins->run_hooks("remove_attachment_do_delete", $attachment);
+
+ $db->delete_query("attachments", "aid='{$attachment['aid']}'");
+
+ if(defined('IN_ADMINCP'))
+ {
+ $uploadpath = '../'.$mybb->settings['uploadspath'];
+ }
+ else
+ {
+ $uploadpath = $mybb->settings['uploadspath'];
+ }
+
+ // Check if this attachment is referenced in any other posts. If it isn't, then we are safe to delete the actual file.
+ $query = $db->simple_select("attachments", "COUNT(aid) as numreferences", "attachname='".$db->escape_string($attachment['attachname'])."'");
+ if($db->fetch_field($query, "numreferences") == 0)
+ {
+ delete_uploaded_file($uploadpath."/".$attachment['attachname']);
+ if($attachment['thumbnail'])
+ {
+ delete_uploaded_file($uploadpath."/".$attachment['thumbnail']);
+ }
+
+ $date_directory = explode('/', $attachment['attachname']);
+ if(@is_dir($uploadpath."/".$date_directory[0]))
+ {
+ delete_upload_directory($uploadpath."/".$date_directory[0]);
+ }
+ }
+
+ if($attachment['visible'] == 1 && $pid)
+ {
+ $post = get_post($pid);
+ update_thread_counters($post['tid'], array("attachmentcount" => "-1"));
+ }
+}
+
+/**
+ * Remove all of the attachments from a specific post
+ *
+ * @param int $pid The post ID
+ * @param string $posthash The posthash if available
+ */
+function remove_attachments($pid, $posthash="")
+{
+ global $db, $mybb, $plugins;
+
+ if($pid)
+ {
+ $post = get_post($pid);
+ }
+ $posthash = $db->escape_string($posthash);
+ if($posthash != "" && !$pid)
+ {
+ $query = $db->simple_select("attachments", "*", "posthash='$posthash'");
+ }
+ else
+ {
+ $query = $db->simple_select("attachments", "*", "pid='$pid'");
+ }
+
+ if(defined('IN_ADMINCP'))
+ {
+ $uploadpath = '../'.$mybb->settings['uploadspath'];
+ }
+ else
+ {
+ $uploadpath = $mybb->settings['uploadspath'];
+ }
+
+ $num_attachments = 0;
+ while($attachment = $db->fetch_array($query))
+ {
+ if($attachment['visible'] == 1)
+ {
+ $num_attachments++;
+ }
+
+ $plugins->run_hooks("remove_attachments_do_delete", $attachment);
+
+ $db->delete_query("attachments", "aid='".$attachment['aid']."'");
+
+ // Check if this attachment is referenced in any other posts. If it isn't, then we are safe to delete the actual file.
+ $query2 = $db->simple_select("attachments", "COUNT(aid) as numreferences", "attachname='".$db->escape_string($attachment['attachname'])."'");
+ if($db->fetch_field($query2, "numreferences") == 0)
+ {
+ delete_uploaded_file($uploadpath."/".$attachment['attachname']);
+ if($attachment['thumbnail'])
+ {
+ delete_uploaded_file($uploadpath."/".$attachment['thumbnail']);
+ }
+
+ $date_directory = explode('/', $attachment['attachname']);
+ if(@is_dir($uploadpath."/".$date_directory[0]))
+ {
+ delete_upload_directory($uploadpath."/".$date_directory[0]);
+ }
+ }
+ }
+
+ if($post['tid'])
+ {
+ update_thread_counters($post['tid'], array("attachmentcount" => "-{$num_attachments}"));
+ }
+}
+
+/**
+ * Remove any matching avatars for a specific user ID
+ *
+ * @param int $uid The user ID
+ * @param string $exclude A file name to be excluded from the removal
+ */
+function remove_avatars($uid, $exclude="")
+{
+ global $mybb, $plugins;
+
+ if(defined('IN_ADMINCP'))
+ {
+ $avatarpath = '../'.$mybb->settings['avataruploadpath'];
+ }
+ else
+ {
+ $avatarpath = $mybb->settings['avataruploadpath'];
+ }
+
+ $dir = opendir($avatarpath);
+ if($dir)
+ {
+ while($file = @readdir($dir))
+ {
+ $plugins->run_hooks("remove_avatars_do_delete", $file);
+
+ if(preg_match("#avatar_".$uid."\.#", $file) && is_file($avatarpath."/".$file) && $file != $exclude)
+ {
+ delete_uploaded_file($avatarpath."/".$file);
+ }
+ }
+
+ @closedir($dir);
+ }
+}
+
+/**
+ * Upload a new avatar in to the file system
+ *
+ * @param array $avatar Incoming FILE array, if we have one - otherwise takes $_FILES['avatarupload']
+ * @param int $uid User ID this avatar is being uploaded for, if not the current user
+ * @return array Array of errors if any, otherwise filename of successful.
+ */
+function upload_avatar($avatar=array(), $uid=0)
+{
+ global $db, $mybb, $lang, $plugins, $cache;
+
+ $ret = array();
+
+ if(!$uid)
+ {
+ $uid = $mybb->user['uid'];
+ }
+
+ if(!$avatar['name'] || !$avatar['tmp_name'])
+ {
+ $avatar = $_FILES['avatarupload'];
+ }
+
+ if(!is_uploaded_file($avatar['tmp_name']))
+ {
+ $ret['error'] = $lang->error_uploadfailed;
+ return $ret;
+ }
+
+ // Check we have a valid extension
+ // This is attached to the attachment types allowed to be uploaded (set in the ACP)
+ $valid_extensions = array();
+ $extensions = $cache->read("attachtypes");
+
+ foreach($extensions as $ext => $type)
+ {
+ if(substr($type['mimetype'], 0, 5) == 'image')
+ {
+ $valid_extensions[$ext] = 1;
+ }
+ }
+
+ $ext = get_extension(my_strtolower($avatar['name']));
+
+ if(!isset($valid_extensions[$ext]))
+ {
+ $ret['error'] = $lang->error_avatartype;
+ return $ret;
+ }
+
+ if(defined('IN_ADMINCP'))
+ {
+ $avatarpath = '../'.$mybb->settings['avataruploadpath'];
+ $lang->load("messages", true);
+ }
+ else
+ {
+ $avatarpath = $mybb->settings['avataruploadpath'];
+ }
+
+ $filename = "avatar_".$uid.".".$ext;
+ $file = upload_file($avatar, $avatarpath, $filename);
+ if($file['error'])
+ {
+ delete_uploaded_file($avatarpath."/".$filename);
+ $ret['error'] = $lang->error_uploadfailed;
+ return $ret;
+ }
+
+ // Lets just double check that it exists
+ if(!file_exists($avatarpath."/".$filename))
+ {
+ $ret['error'] = $lang->error_uploadfailed;
+ delete_uploaded_file($avatarpath."/".$filename);
+ return $ret;
+ }
+
+ // Check if this is a valid image or not
+ $img_dimensions = @getimagesize($avatarpath."/".$filename);
+ if(!is_array($img_dimensions))
+ {
+ delete_uploaded_file($avatarpath."/".$filename);
+ $ret['error'] = $lang->error_uploadfailed;
+ return $ret;
+ }
+
+ // Check avatar dimensions
+ if($mybb->settings['maxavatardims'] != '')
+ {
+ list($maxwidth, $maxheight) = @explode("x", $mybb->settings['maxavatardims']);
+ if(($maxwidth && $img_dimensions[0] > $maxwidth) || ($maxheight && $img_dimensions[1] > $maxheight))
+ {
+ // Automatic resizing enabled?
+ if($mybb->settings['avatarresizing'] == "auto" || ($mybb->settings['avatarresizing'] == "user" && $mybb->input['auto_resize'] == 1))
+ {
+ require_once MYBB_ROOT."inc/functions_image.php";
+ $thumbnail = generate_thumbnail($avatarpath."/".$filename, $avatarpath, $filename, $maxheight, $maxwidth);
+ if(!$thumbnail['filename'])
+ {
+ $ret['error'] = $lang->sprintf($lang->error_avatartoobig, $maxwidth, $maxheight);
+ $ret['error'] .= " ".$lang->error_avatarresizefailed;
+ delete_uploaded_file($avatarpath."/".$filename);
+ return $ret;
+ }
+ else
+ {
+ // Reset filesize
+ $avatar['size'] = filesize($avatarpath."/".$filename);
+ // Reset dimensions
+ $img_dimensions = @getimagesize($avatarpath."/".$filename);
+ }
+ }
+ else
+ {
+ $ret['error'] = $lang->sprintf($lang->error_avatartoobig, $maxwidth, $maxheight);
+ if($mybb->settings['avatarresizing'] == "user")
+ {
+ $ret['error'] .= " ".$lang->error_avataruserresize;
+ }
+ delete_uploaded_file($avatarpath."/".$filename);
+ return $ret;
+ }
+ }
+ }
+
+ // Next check the file size
+ if($avatar['size'] > ($mybb->settings['avatarsize']*1024) && $mybb->settings['avatarsize'] > 0)
+ {
+ delete_uploaded_file($avatarpath."/".$filename);
+ $ret['error'] = $lang->error_uploadsize;
+ return $ret;
+ }
+
+ // Check a list of known MIME types to establish what kind of avatar we're uploading
+ switch(my_strtolower($avatar['type']))
+ {
+ case "image/gif":
+ $img_type = 1;
+ break;
+ case "image/jpeg":
+ case "image/x-jpg":
+ case "image/x-jpeg":
+ case "image/pjpeg":
+ case "image/jpg":
+ $img_type = 2;
+ break;
+ case "image/png":
+ case "image/x-png":
+ $img_type = 3;
+ break;
+ default:
+ $img_type = 0;
+ }
+
+ // Check if the uploaded file type matches the correct image type (returned by getimagesize)
+ if($img_dimensions[2] != $img_type || $img_type == 0)
+ {
+ $ret['error'] = $lang->error_uploadfailed;
+ delete_uploaded_file($avatarpath."/".$filename);
+ return $ret;
+ }
+ // Everything is okay so lets delete old avatars for this user
+ remove_avatars($uid, $filename);
+
+ $ret = array(
+ "avatar" => $mybb->settings['avataruploadpath']."/".$filename,
+ "width" => (int)$img_dimensions[0],
+ "height" => (int)$img_dimensions[1]
+ );
+ $ret = $plugins->run_hooks("upload_avatar_end", $ret);
+ return $ret;
+}
+
+/**
+ * Upload an attachment in to the file system
+ *
+ * @param array $attachment Attachment data (as fed by PHPs $_FILE)
+ * @param boolean $update_attachment Whether or not we are updating a current attachment or inserting a new one
+ * @return array Array of attachment data if successful, otherwise array of error data
+ */
+function upload_attachment($attachment, $update_attachment=false)
+{
+ global $mybb, $db, $theme, $templates, $posthash, $pid, $tid, $forum, $mybb, $lang, $plugins, $cache;
+
+ $posthash = $db->escape_string($mybb->get_input('posthash'));
+ $pid = (int)$pid;
+
+ if(isset($attachment['error']) && $attachment['error'] != 0)
+ {
+ $ret['error'] = $lang->error_uploadfailed.$lang->error_uploadfailed_detail;
+ switch($attachment['error'])
+ {
+ case 1: // UPLOAD_ERR_INI_SIZE
+ $ret['error'] .= $lang->error_uploadfailed_php1;
+ break;
+ case 2: // UPLOAD_ERR_FORM_SIZE
+ $ret['error'] .= $lang->error_uploadfailed_php2;
+ break;
+ case 3: // UPLOAD_ERR_PARTIAL
+ $ret['error'] .= $lang->error_uploadfailed_php3;
+ break;
+ case 4: // UPLOAD_ERR_NO_FILE
+ $ret['error'] .= $lang->error_uploadfailed_php4;
+ break;
+ case 6: // UPLOAD_ERR_NO_TMP_DIR
+ $ret['error'] .= $lang->error_uploadfailed_php6;
+ break;
+ case 7: // UPLOAD_ERR_CANT_WRITE
+ $ret['error'] .= $lang->error_uploadfailed_php7;
+ break;
+ default:
+ $ret['error'] .= $lang->sprintf($lang->error_uploadfailed_phpx, $attachment['error']);
+ break;
+ }
+ return $ret;
+ }
+
+ if(!is_uploaded_file($attachment['tmp_name']) || empty($attachment['tmp_name']))
+ {
+ $ret['error'] = $lang->error_uploadfailed.$lang->error_uploadfailed_php4;
+ return $ret;
+ }
+
+ $attachtypes = $cache->read('attachtypes');
+ $attachment = $plugins->run_hooks("upload_attachment_start", $attachment);
+
+ $ext = get_extension($attachment['name']);
+ // Check if we have a valid extension
+ if(!isset($attachtypes[$ext]))
+ {
+ $ret['error'] = $lang->error_attachtype;
+ return $ret;
+ }
+ else
+ {
+ $attachtype = $attachtypes[$ext];
+ }
+
+ // Check the size
+ if($attachment['size'] > $attachtype['maxsize']*1024 && $attachtype['maxsize'] != "")
+ {
+ $ret['error'] = $lang->sprintf($lang->error_attachsize, $attachtype['maxsize']);
+ return $ret;
+ }
+
+ // Double check attachment space usage
+ if($mybb->usergroup['attachquota'] > 0)
+ {
+ $query = $db->simple_select("attachments", "SUM(filesize) AS ausage", "uid='".$mybb->user['uid']."'");
+ $usage = $db->fetch_array($query);
+ $usage = $usage['ausage']+$attachment['size'];
+ if($usage > ($mybb->usergroup['attachquota']*1024))
+ {
+ $friendlyquota = get_friendly_size($mybb->usergroup['attachquota']*1024);
+ $ret['error'] = $lang->sprintf($lang->error_reachedattachquota, $friendlyquota);
+ return $ret;
+ }
+ }
+
+ // Gather forum permissions
+ $forumpermissions = forum_permissions($forum['fid']);
+
+ // Check if an attachment with this name is already in the post
+ if($pid != 0)
+ {
+ $uploaded_query = "pid='{$pid}'";
+ }
+ else
+ {
+ $uploaded_query = "posthash='{$posthash}'";
+ }
+ $query = $db->simple_select("attachments", "*", "filename='".$db->escape_string($attachment['name'])."' AND ".$uploaded_query);
+ $prevattach = $db->fetch_array($query);
+ if($prevattach['aid'] && $update_attachment == false)
+ {
+ if(!$mybb->usergroup['caneditattachments'] && !$forumpermissions['caneditattachments'])
+ {
+ $ret['error'] = $lang->error_alreadyuploaded_perm;
+ return $ret;
+ }
+
+ $ret['error'] = $lang->error_alreadyuploaded;
+ return $ret;
+ }
+
+ // Check to see how many attachments exist for this post already
+ if($mybb->settings['maxattachments'] > 0 && $update_attachment == false)
+ {
+ $query = $db->simple_select("attachments", "COUNT(aid) AS numattachs", $uploaded_query);
+ $attachcount = $db->fetch_field($query, "numattachs");
+ if($attachcount >= $mybb->settings['maxattachments'])
+ {
+ $ret['error'] = $lang->sprintf($lang->error_maxattachpost, $mybb->settings['maxattachments']);
+ return $ret;
+ }
+ }
+
+ $month_dir = '';
+ if($mybb->safemode == false)
+ {
+ // Check if the attachment directory (YYYYMM) exists, if not, create it
+ $month_dir = gmdate("Ym");
+ if(!@is_dir($mybb->settings['uploadspath']."/".$month_dir))
+ {
+ @mkdir($mybb->settings['uploadspath']."/".$month_dir);
+ // Still doesn't exist - oh well, throw it in the main directory
+ if(!@is_dir($mybb->settings['uploadspath']."/".$month_dir))
+ {
+ $month_dir = '';
+ }
+ }
+ }
+
+ // All seems to be good, lets move the attachment!
+ $filename = "post_".$mybb->user['uid']."_".TIME_NOW."_".md5(random_str()).".attach";
+
+ $file = upload_file($attachment, $mybb->settings['uploadspath']."/".$month_dir, $filename);
+
+ // Failed to create the attachment in the monthly directory, just throw it in the main directory
+ if(!empty($file['error']) && $month_dir)
+ {
+ $file = upload_file($attachment, $mybb->settings['uploadspath'].'/', $filename);
+ }
+ elseif($month_dir)
+ {
+ $filename = $month_dir."/".$filename;
+ }
+
+ if(!empty($file['error']))
+ {
+ $ret['error'] = $lang->error_uploadfailed.$lang->error_uploadfailed_detail;
+ switch($file['error'])
+ {
+ case 1:
+ $ret['error'] .= $lang->error_uploadfailed_nothingtomove;
+ break;
+ case 2:
+ $ret['error'] .= $lang->error_uploadfailed_movefailed;
+ break;
+ }
+ return $ret;
+ }
+
+ // Lets just double check that it exists
+ if(!file_exists($mybb->settings['uploadspath']."/".$filename))
+ {
+ $ret['error'] = $lang->error_uploadfailed.$lang->error_uploadfailed_detail.$lang->error_uploadfailed_lost;
+ return $ret;
+ }
+
+ // Generate the array for the insert_query
+ $attacharray = array(
+ "pid" => $pid,
+ "posthash" => $posthash,
+ "uid" => $mybb->user['uid'],
+ "filename" => $db->escape_string($file['original_filename']),
+ "filetype" => $db->escape_string($file['type']),
+ "filesize" => (int)$file['size'],
+ "attachname" => $filename,
+ "downloads" => 0,
+ "dateuploaded" => TIME_NOW
+ );
+
+ // If we're uploading an image, check the MIME type compared to the image type and attempt to generate a thumbnail
+ if($ext == "gif" || $ext == "png" || $ext == "jpg" || $ext == "jpeg" || $ext == "jpe")
+ {
+ // Check a list of known MIME types to establish what kind of image we're uploading
+ switch(my_strtolower($file['type']))
+ {
+ case "image/gif":
+ $img_type = 1;
+ break;
+ case "image/jpeg":
+ case "image/x-jpg":
+ case "image/x-jpeg":
+ case "image/pjpeg":
+ case "image/jpg":
+ $img_type = 2;
+ break;
+ case "image/png":
+ case "image/x-png":
+ $img_type = 3;
+ break;
+ default:
+ $img_type = 0;
+ }
+
+ $supported_mimes = array();
+ foreach($attachtypes as $attachtype)
+ {
+ if(!empty($attachtype['mimetype']))
+ {
+ $supported_mimes[] = $attachtype['mimetype'];
+ }
+ }
+
+ // Check if the uploaded file type matches the correct image type (returned by getimagesize)
+ $img_dimensions = @getimagesize($mybb->settings['uploadspath']."/".$filename);
+
+ $mime = "";
+ $file_path = $mybb->settings['uploadspath']."/".$filename;
+ if(function_exists("finfo_open"))
+ {
+ $file_info = finfo_open(FILEINFO_MIME);
+ list($mime, ) = explode(';', finfo_file($file_info, MYBB_ROOT.$file_path), 1);
+ finfo_close($file_info);
+ }
+ else if(function_exists("mime_content_type"))
+ {
+ $mime = mime_content_type(MYBB_ROOT.$file_path);
+ }
+
+ if(!is_array($img_dimensions) || ($img_dimensions[2] != $img_type && !in_array($mime, $supported_mimes)))
+ {
+ delete_uploaded_file($mybb->settings['uploadspath']."/".$filename);
+ $ret['error'] = $lang->error_uploadfailed;
+ return $ret;
+ }
+ require_once MYBB_ROOT."inc/functions_image.php";
+ $thumbname = str_replace(".attach", "_thumb.$ext", $filename);
+
+ $attacharray = $plugins->run_hooks("upload_attachment_thumb_start", $attacharray);
+
+ $thumbnail = generate_thumbnail($mybb->settings['uploadspath']."/".$filename, $mybb->settings['uploadspath'], $thumbname, $mybb->settings['attachthumbh'], $mybb->settings['attachthumbw']);
+
+ if($thumbnail['filename'])
+ {
+ $attacharray['thumbnail'] = $thumbnail['filename'];
+ }
+ elseif($thumbnail['code'] == 4)
+ {
+ $attacharray['thumbnail'] = "SMALL";
+ }
+ }
+ if($forumpermissions['modattachments'] == 1 && !is_moderator($forum['fid'], "canapproveunapproveattachs"))
+ {
+ $attacharray['visible'] = 0;
+ }
+ else
+ {
+ $attacharray['visible'] = 1;
+ }
+
+ $attacharray = $plugins->run_hooks("upload_attachment_do_insert", $attacharray);
+
+ if($prevattach['aid'] && $update_attachment == true)
+ {
+ unset($attacharray['downloads']); // Keep our download count if we're updating an attachment
+ $db->update_query("attachments", $attacharray, "aid='".$db->escape_string($prevattach['aid'])."'");
+
+ // Remove old attachment file
+ // Check if this attachment is referenced in any other posts. If it isn't, then we are safe to delete the actual file.
+ $query = $db->simple_select("attachments", "COUNT(aid) as numreferences", "attachname='".$db->escape_string($prevattach['attachname'])."'");
+ if($db->fetch_field($query, "numreferences") == 0)
+ {
+ delete_uploaded_file($mybb->settings['uploadspath']."/".$prevattach['attachname']);
+ if($prevattach['thumbnail'])
+ {
+ delete_uploaded_file($mybb->settings['uploadspath']."/".$prevattach['thumbnail']);
+ }
+
+ $date_directory = explode('/', $prevattach['attachname']);
+ if(@is_dir($mybb->settings['uploadspath']."/".$date_directory[0]))
+ {
+ delete_upload_directory($mybb->settings['uploadspath']."/".$date_directory[0]);
+ }
+ }
+
+ $aid = $prevattach['aid'];
+ }
+ else
+ {
+ $aid = $db->insert_query("attachments", $attacharray);
+ if($pid)
+ {
+ update_thread_counters($tid, array("attachmentcount" => "+1"));
+ }
+ }
+ $ret['aid'] = $aid;
+ return $ret;
+}
+
+/**
+ * Delete an uploaded file both from the relative path and the CDN path if a CDN is in use.
+ *
+ * @param string $path The relative path to the uploaded file.
+ *
+ * @return bool Whether the file was deleted successfully.
+ */
+function delete_uploaded_file($path = '')
+{
+ global $mybb;
+
+ $deleted = false;
+
+ $deleted = @unlink($path);
+
+ $cdn_base_path = rtrim($mybb->settings['cdnpath'], '/');
+ $path = ltrim($path, '/');
+ $cdn_path = realpath($cdn_base_path . '/' . $path);
+
+
+ if($mybb->settings['usecdn'] && !empty($cdn_base_path))
+ {
+ $deleted = $deleted && @unlink($cdn_path);
+ }
+
+ return $deleted;
+}
+
+/**
+ * Delete an upload directory on both the local filesystem and the CDN filesystem.
+ *
+ * @param string $path The directory to delete.
+ *
+ * @return bool Whether the directory was deleted.
+ */
+function delete_upload_directory($path = '')
+{
+ global $mybb;
+
+ $deleted = false;
+
+ $deleted = @rmdir($path);
+
+ $cdn_base_path = rtrim($mybb->settings['cdnpath'], '/');
+ $path = ltrim($path, '/');
+ $cdn_path = rtrim(realpath($cdn_base_path . '/' . $path), '/');
+
+ if($mybb->settings['usecdn'] && !empty($cdn_base_path))
+ {
+ $deleted = $deleted && @rmdir($cdn_path);
+ }
+
+ return $deleted;
+}
+
+/**
+ * Actually move a file to the uploads directory
+ *
+ * @param array $file The PHP $_FILE array for the file
+ * @param string $path The path to save the file in
+ * @param string $filename The filename for the file (if blank, current is used)
+ * @return array The uploaded file
+ */
+function upload_file($file, $path, $filename="")
+{
+ global $plugins, $mybb;
+
+ $upload = array();
+
+ if(empty($file['name']) || $file['name'] == "none" || $file['size'] < 1)
+ {
+ $upload['error'] = 1;
+ return $upload;
+ }
+
+ if(!$filename)
+ {
+ $filename = $file['name'];
+ }
+
+ $upload['original_filename'] = preg_replace("#/$#", "", $file['name']); // Make the filename safe
+ $filename = preg_replace("#/$#", "", $filename); // Make the filename safe
+ $moved = @move_uploaded_file($file['tmp_name'], $path."/".$filename);
+
+ $moved_cdn = false;
+ $cdn_base_path = rtrim($mybb->settings['cdnpath'], '/');
+ $cdn_path = rtrim(realpath($cdn_base_path . '/' . $path), '/');
+
+ if($mybb->settings['usecdn'] && !empty($cdn_base_path))
+ {
+ $moved_cdn = @copy($path . '/' . $filename, $cdn_path . '/' . $filename);
+ @my_chmod($cdn_path . '/' . $filename, '0644');
+ }
+
+ if(!$moved)
+ {
+ $upload['error'] = 2;
+ return $upload;
+ }
+ @my_chmod($path."/".$filename, '0644');
+ $upload['filename'] = $filename;
+ $upload['path'] = $path;
+ $upload['type'] = $file['type'];
+ $upload['size'] = $file['size'];
+ $upload = $plugins->run_hooks("upload_file_end", $upload);
+
+ if($moved_cdn)
+ {
+ $upload['cdn_path'] = $cdn_path;
+ }
+
+ return $upload;
+}
diff --git a/Upload/inc/functions_user.php b/Upload/inc/functions_user.php
new file mode 100644
index 0000000..7907692
--- /dev/null
+++ b/Upload/inc/functions_user.php
@@ -0,0 +1,732 @@
+simple_select("users", "COUNT(*) as user", "uid='".(int)$uid."'", array('limit' => 1));
+ if($db->fetch_field($query, 'user') == 1)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+/**
+ * Checks if $username already exists in the database.
+ *
+ * @param string The username for check for.
+ * @return boolean True when exists, false when not.
+ */
+function username_exists($username)
+{
+ global $db;
+
+ $options = array(
+ 'username_method' => 2
+ );
+
+ return (bool)get_user_by_username($username, $options);
+}
+
+/**
+ * Checks a password with a supplied username.
+ *
+ * @param string The username of the user.
+ * @param string The plain-text password.
+ * @return boolean|array False when no match, array with user info when match.
+ */
+function validate_password_from_username($username, $password)
+{
+ global $db, $mybb;
+
+ $options = array(
+ 'fields' => array('username', 'password', 'salt', 'loginkey', 'coppauser', 'usergroup'),
+ 'username_method' => $mybb->settings['username_method'],
+ );
+
+ $user = get_user_by_username($username, $options);
+
+ if(!$user['uid'])
+ {
+ return false;
+ }
+
+ return validate_password_from_uid($user['uid'], $password, $user);
+}
+
+/**
+ * Checks a password with a supplied uid.
+ *
+ * @param int The user id.
+ * @param string The plain-text password.
+ * @param string An optional user data array.
+ * @return boolean|array False when not valid, user data array when valid.
+ */
+function validate_password_from_uid($uid, $password, $user = array())
+{
+ global $db, $mybb;
+ if(isset($mybb->user['uid']) && $mybb->user['uid'] == $uid)
+ {
+ $user = $mybb->user;
+ }
+ if(!$user['password'])
+ {
+ $query = $db->simple_select("users", "uid,username,password,salt,loginkey,usergroup", "uid='".(int)$uid."'");
+ $user = $db->fetch_array($query);
+ }
+ if(!$user['salt'])
+ {
+ // Generate a salt for this user and assume the password stored in db is a plain md5 password
+ $user['salt'] = generate_salt();
+ $user['password'] = salt_password($user['password'], $user['salt']);
+ $sql_array = array(
+ "salt" => $user['salt'],
+ "password" => $user['password']
+ );
+ $db->update_query("users", $sql_array, "uid='".$user['uid']."'");
+ }
+
+ if(!$user['loginkey'])
+ {
+ $user['loginkey'] = generate_loginkey();
+ $sql_array = array(
+ "loginkey" => $user['loginkey']
+ );
+ $db->update_query("users", $sql_array, "uid = ".$user['uid']);
+ }
+ if(salt_password(md5($password), $user['salt']) == $user['password'])
+ {
+ return $user;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+/**
+ * Updates a user's password.
+ *
+ * @param int The user's id.
+ * @param string The md5()'ed password.
+ * @param string (Optional) The salt of the user.
+ * @return array The new password.
+ */
+function update_password($uid, $password, $salt="")
+{
+ global $db, $plugins;
+
+ $newpassword = array();
+
+ // If no salt was specified, check in database first, if still doesn't exist, create one
+ if(!$salt)
+ {
+ $query = $db->simple_select("users", "salt", "uid='$uid'");
+ $user = $db->fetch_array($query);
+ if($user['salt'])
+ {
+ $salt = $user['salt'];
+ }
+ else
+ {
+ $salt = generate_salt();
+ }
+ $newpassword['salt'] = $salt;
+ }
+
+ // Create new password based on salt
+ $saltedpw = salt_password($password, $salt);
+
+ // Generate new login key
+ $loginkey = generate_loginkey();
+
+ // Update password and login key in database
+ $newpassword['password'] = $saltedpw;
+ $newpassword['loginkey'] = $loginkey;
+ $db->update_query("users", $newpassword, "uid='$uid'");
+
+ $plugins->run_hooks("password_changed");
+
+ return $newpassword;
+}
+
+/**
+ * Salts a password based on a supplied salt.
+ *
+ * @param string The md5()'ed password.
+ * @param string The salt.
+ * @return string The password hash.
+ */
+function salt_password($password, $salt)
+{
+ return md5(md5($salt).$password);
+}
+
+/**
+ * Generates a random salt
+ *
+ * @return string The salt.
+ */
+function generate_salt()
+{
+ return random_str(8);
+}
+
+/**
+ * Generates a 50 character random login key.
+ *
+ * @return string The login key.
+ */
+function generate_loginkey()
+{
+ return random_str(50);
+}
+
+/**
+ * Updates a user's salt in the database (does not update a password).
+ *
+ * @param int The uid of the user to update.
+ * @return string The new salt.
+ */
+function update_salt($uid)
+{
+ global $db;
+
+ $salt = generate_salt();
+ $sql_array = array(
+ "salt" => $salt
+ );
+ $db->update_query("users", $sql_array, "uid='{$uid}'");
+
+ return $salt;
+}
+
+/**
+ * Generates a new login key for a user.
+ *
+ * @param int The uid of the user to update.
+ * @return string The new login key.
+ */
+function update_loginkey($uid)
+{
+ global $db;
+
+ $loginkey = generate_loginkey();
+ $sql_array = array(
+ "loginkey" => $loginkey
+ );
+ $db->update_query("users", $sql_array, "uid='{$uid}'");
+
+ return $loginkey;
+
+}
+
+/**
+ * Adds a thread to a user's thread subscription list.
+ * If no uid is supplied, the currently logged in user's id will be used.
+ *
+ * @param int The tid of the thread to add to the list.
+ * @param int (Optional) The type of notification to receive for replies (0=none, 1=email, 2=pm)
+ * @param int (Optional) The uid of the user who's list to update.
+ * @return boolean True when success, false when otherwise.
+ */
+function add_subscribed_thread($tid, $notification=1, $uid="")
+{
+ global $mybb, $db;
+
+ if(!$uid)
+ {
+ $uid = $mybb->user['uid'];
+ }
+
+ if(!$uid)
+ {
+ return;
+ }
+
+ $query = $db->simple_select("threadsubscriptions", "*", "tid='".(int)$tid."' AND uid='".(int)$uid."'");
+ $subscription = $db->fetch_array($query);
+ if(!$subscription['tid'])
+ {
+ $insert_array = array(
+ 'uid' => (int)$uid,
+ 'tid' => (int)$tid,
+ 'notification' => (int)$notification,
+ 'dateline' => TIME_NOW,
+ 'subscriptionkey' => md5(TIME_NOW.$uid.$tid)
+
+ );
+ $db->insert_query("threadsubscriptions", $insert_array);
+ }
+ else
+ {
+ // Subscription exists - simply update notification
+ $update_array = array(
+ "notification" => (int)$notification
+ );
+ $db->update_query("threadsubscriptions", $update_array, "uid='{$uid}' AND tid='{$tid}'");
+ }
+ return true;
+}
+
+/**
+ * Remove a thread from a user's thread subscription list.
+ * If no uid is supplied, the currently logged in user's id will be used.
+ *
+ * @param int The tid of the thread to remove from the list.
+ * @param int (Optional) The uid of the user who's list to update.
+ * @return boolean True when success, false when otherwise.
+ */
+function remove_subscribed_thread($tid, $uid="")
+{
+ global $mybb, $db;
+
+ if(!$uid)
+ {
+ $uid = $mybb->user['uid'];
+ }
+
+ if(!$uid)
+ {
+ return;
+ }
+ $db->delete_query("threadsubscriptions", "tid='".$tid."' AND uid='{$uid}'");
+
+ return true;
+}
+
+/**
+ * Adds a forum to a user's forum subscription list.
+ * If no uid is supplied, the currently logged in user's id will be used.
+ *
+ * @param int The fid of the forum to add to the list.
+ * @param int (Optional) The uid of the user who's list to update.
+ * @return boolean True when success, false when otherwise.
+ */
+function add_subscribed_forum($fid, $uid="")
+{
+ global $mybb, $db;
+
+ if(!$uid)
+ {
+ $uid = $mybb->user['uid'];
+ }
+
+ if(!$uid)
+ {
+ return;
+ }
+
+ $fid = (int)$fid;
+ $uid = (int)$uid;
+
+ $query = $db->simple_select("forumsubscriptions", "*", "fid='".$fid."' AND uid='{$uid}'", array('limit' => 1));
+ $fsubscription = $db->fetch_array($query);
+ if(!$fsubscription['fid'])
+ {
+ $insert_array = array(
+ 'fid' => $fid,
+ 'uid' => $uid
+ );
+ $db->insert_query("forumsubscriptions", $insert_array);
+ }
+
+ return true;
+}
+
+/**
+ * Removes a forum from a user's forum subscription list.
+ * If no uid is supplied, the currently logged in user's id will be used.
+ *
+ * @param int The fid of the forum to remove from the list.
+ * @param int (Optional) The uid of the user who's list to update.
+ * @return boolean True when success, false when otherwise.
+ */
+function remove_subscribed_forum($fid, $uid="")
+{
+ global $mybb, $db;
+
+ if(!$uid)
+ {
+ $uid = $mybb->user['uid'];
+ }
+
+ if(!$uid)
+ {
+ return;
+ }
+ $db->delete_query("forumsubscriptions", "fid='".$fid."' AND uid='{$uid}'");
+
+ return true;
+}
+
+/**
+ * Constructs the usercp navigation menu.
+ *
+ */
+function usercp_menu()
+{
+ global $mybb, $templates, $theme, $plugins, $lang, $usercpnav, $usercpmenu;
+
+ $lang->load("usercpnav");
+
+ // Add the default items as plugins with separated priorities of 10
+ if($mybb->settings['enablepms'] != 0)
+ {
+ $plugins->add_hook("usercp_menu", "usercp_menu_messenger", 10);
+ }
+
+ $plugins->add_hook("usercp_menu", "usercp_menu_profile", 20);
+ $plugins->add_hook("usercp_menu", "usercp_menu_misc", 30);
+
+ // Run the plugin hooks
+ $plugins->run_hooks("usercp_menu");
+ global $usercpmenu;
+
+ eval("\$usercpnav = \"".$templates->get("usercp_nav")."\";");
+
+ $plugins->run_hooks("usercp_menu_built");
+}
+
+/**
+ * Constructs the usercp messenger menu.
+ *
+ */
+function usercp_menu_messenger()
+{
+ global $db, $mybb, $templates, $theme, $usercpmenu, $lang, $collapsed, $collapsedimg;
+
+ $usercp_nav_messenger = $templates->get("usercp_nav_messenger");
+ // Hide tracking link if no permission
+ $tracking = '';
+ if($mybb->usergroup['cantrackpms'])
+ {
+ $tracking = $templates->get("usercp_nav_messenger_tracking");
+ }
+ eval("\$ucp_nav_tracking = \"". $tracking ."\";");
+
+ // Hide compose link if no permission
+ $ucp_nav_compose = '';
+ if($mybb->usergroup['cansendpms'] == 1)
+ {
+ eval("\$ucp_nav_compose = \"".$templates->get("usercp_nav_messenger_compose")."\";");
+ }
+
+ $folderlinks = $folder_id = $folder_name = '';
+ $foldersexploded = explode("$%%$", $mybb->user['pmfolders']);
+ foreach($foldersexploded as $key => $folders)
+ {
+ $folderinfo = explode("**", $folders, 2);
+ $folderinfo[1] = get_pm_folder_name($folderinfo[0], $folderinfo[1]);
+ if($folderinfo[0] == 4)
+ {
+ $class = "usercp_nav_trash_pmfolder";
+ }
+ else if($folderlinks)
+ {
+ $class = "usercp_nav_sub_pmfolder";
+ }
+ else
+ {
+ $class = "usercp_nav_pmfolder";
+ }
+
+ $folder_id = $folderinfo[0];
+ $folder_name = $folderinfo[1];
+
+ eval("\$folderlinks .= \"".$templates->get("usercp_nav_messenger_folder")."\";");
+ }
+
+ if(!isset($collapsedimg['usercppms']))
+ {
+ $collapsedimg['usercppms'] = '';
+ }
+
+ if(!isset($collapsed['usercppms_e']))
+ {
+ $collapsed['usercppms_e'] = '';
+ }
+
+ eval("\$usercpmenu .= \"".$usercp_nav_messenger."\";");
+}
+
+/**
+ * Constructs the usercp profile menu.
+ *
+ */
+function usercp_menu_profile()
+{
+ global $db, $mybb, $templates, $theme, $usercpmenu, $lang, $collapsed, $collapsedimg;
+
+ $changenameop = '';
+ if($mybb->usergroup['canchangename'] != 0)
+ {
+ eval("\$changenameop = \"".$templates->get("usercp_nav_changename")."\";");
+ }
+
+ $changesigop = '';
+ if($mybb->usergroup['canusesig'] == 1 && ($mybb->usergroup['canusesigxposts'] == 0 || $mybb->usergroup['canusesigxposts'] > 0 && $mybb->user['postnum'] > $mybb->usergroup['canusesigxposts']))
+ {
+ if($mybb->user['suspendsignature'] == 0 || $mybb->user['suspendsignature'] == 1 && $mybb->user['suspendsigtime'] > 0 && $mybb->user['suspendsigtime'] < TIME_NOW)
+ {
+ eval("\$changesigop = \"".$templates->get("usercp_nav_editsignature")."\";");
+ }
+ }
+
+ if(!isset($collapsedimg['usercpprofile']))
+ {
+ $collapsedimg['usercpprofile'] = '';
+ }
+
+ if(!isset($collapsed['usercpprofile_e']))
+ {
+ $collapsed['usercpprofile_e'] = '';
+ }
+
+ eval("\$usercpmenu .= \"".$templates->get("usercp_nav_profile")."\";");
+}
+
+/**
+ * Constructs the usercp misc menu.
+ *
+ */
+function usercp_menu_misc()
+{
+ global $db, $mybb, $templates, $theme, $usercpmenu, $lang, $collapsed, $collapsedimg;
+
+ $draftstart = $draftend = '';
+ $draftcount = $lang->ucp_nav_drafts;
+
+ $query = $db->simple_select("posts", "COUNT(pid) AS draftcount", "visible = '-2' AND uid = '{$mybb->user['uid']}'");
+ $count = $db->fetch_field($query, 'draftcount');
+
+ if($count > 0)
+ {
+ $draftcount = $lang->sprintf($lang->ucp_nav_drafts_active, my_number_format($count));
+ }
+
+ if($mybb->settings['enableattachments'] != 0)
+ {
+ eval("\$attachmentop = \"".$templates->get("usercp_nav_attachments")."\";");
+ }
+
+ if(!isset($collapsedimg['usercpmisc']))
+ {
+ $collapsedimg['usercpmisc'] = '';
+ }
+
+ if(!isset($collapsed['usercpmisc_e']))
+ {
+ $collapsed['usercpmisc_e'] = '';
+ }
+
+ $profile_link = get_profile_link($mybb->user['uid']);
+ eval("\$usercpmenu .= \"".$templates->get("usercp_nav_misc")."\";");
+}
+
+/**
+ * Gets the usertitle for a specific uid.
+ *
+ * @param int The uid of the user to get the usertitle of.
+ * @return string The usertitle of the user.
+ */
+function get_usertitle($uid="")
+{
+ global $db, $mybb;
+
+ if($mybb->user['uid'] == $uid)
+ {
+ $user = $mybb->user;
+ }
+ else
+ {
+ $query = $db->simple_select("users", "usertitle,postnum", "uid='$uid'", array('limit' => 1));
+ $user = $db->fetch_array($query);
+ }
+
+ if($user['usertitle'])
+ {
+ return $user['usertitle'];
+ }
+ else
+ {
+ $usertitles = $mybb->cache->read('usertitles');
+ foreach($usertitles as $title)
+ {
+ if($title['posts'] <= $user['postnum'])
+ {
+ $usertitle = $title;
+ }
+ }
+
+ return $usertitle['title'];
+ }
+}
+
+/**
+ * Updates a users private message count in the users table with the number of pms they have.
+ *
+ * @param int The user id to update the count for. If none, assumes currently logged in user.
+ * @param int Bitwise value for what to update. 1 = total, 2 = new, 4 = unread. Combinations accepted.
+ * @param int The unix timestamp the user with uid last visited. If not specified, will be queried.
+ */
+function update_pm_count($uid=0, $count_to_update=7)
+{
+ global $db, $mybb;
+
+ // If no user id, assume that we mean the current logged in user.
+ if((int)$uid == 0)
+ {
+ $uid = $mybb->user['uid'];
+ }
+
+ $uid = (int)$uid;
+ $pmcount = array();
+ if($uid == 0)
+ {
+ return $pmcount;
+ }
+
+ // Update total number of messages.
+ if($count_to_update & 1)
+ {
+ $query = $db->simple_select("privatemessages", "COUNT(pmid) AS pms_total", "uid='".$uid."'");
+ $total = $db->fetch_array($query);
+ $pmcount['totalpms'] = $total['pms_total'];
+ }
+
+ // Update number of unread messages.
+ if($count_to_update & 2 && $db->field_exists("unreadpms", "users") == true)
+ {
+ $query = $db->simple_select("privatemessages", "COUNT(pmid) AS pms_unread", "uid='".$uid."' AND status='0' AND folder='1'");
+ $unread = $db->fetch_array($query);
+ $pmcount['unreadpms'] = $unread['pms_unread'];
+ }
+
+ if(!empty($pmcount))
+ {
+ $db->update_query("users", $pmcount, "uid='".$uid."'");
+ }
+ return $pmcount;
+}
+
+/**
+ * Return the language specific name for a PM folder.
+ *
+ * @param int The ID of the folder.
+ * @param string The folder name - can be blank, will use language default.
+ * @return string The name of the folder.
+ */
+function get_pm_folder_name($fid, $name="")
+{
+ global $lang;
+
+ if($name != '')
+ {
+ return $name;
+ }
+
+ switch($fid)
+ {
+ case 1:
+ return $lang->folder_inbox;
+ break;
+ case 2:
+ return $lang->folder_sent_items;
+ break;
+ case 3:
+ return $lang->folder_drafts;
+ break;
+ case 4:
+ return $lang->folder_trash;
+ break;
+ default:
+ return $lang->folder_untitled;
+ }
+}
+
+/**
+ * Generates a security question for registration.
+ *
+ * @return string The question session id.
+ */
+function generate_question()
+{
+ global $db;
+
+ if($db->type == 'pgsql' || $db->type == 'sqlite')
+ {
+ $order_by = 'RANDOM()';
+ }
+ else
+ {
+ $order_by = 'RAND()';
+ }
+
+ $query = $db->simple_select('questions', 'qid, shown', 'active=1', array('limit' => 1, 'order_by' => $order_by));
+ $question = $db->fetch_array($query);
+
+ if(!$db->num_rows($query))
+ {
+ // No active questions exist
+ return false;
+ }
+ else
+ {
+ $sessionid = random_str(32);
+
+ $sql_array = array(
+ "sid" => $sessionid,
+ "qid" => $question['qid'],
+ "dateline" => TIME_NOW
+ );
+ $db->insert_query("questionsessions", $sql_array);
+
+ $update_question = array(
+ "shown" => $question['shown'] + 1
+ );
+ $db->update_query("questions", $update_question, "qid = '{$question['qid']}'");
+
+ return $sessionid;
+ }
+}
+
+/**
+ * Check whether we can show the Purge Spammer Feature
+ *
+ * @param int The users post count
+ * @param int The usergroup of our user
+ * @param int The uid of our user
+ * @return boolean Whether or not to show the feature
+ */
+function purgespammer_show($post_count, $usergroup, $uid)
+{
+ global $mybb, $cache;
+
+ // only show this if the current user has permission to use it and the user has less than the post limit for using this tool
+ $bangroup = $mybb->settings['purgespammerbangroup'];
+ $usergroups = $cache->read('usergroups');
+
+ return ($mybb->user['uid'] != $uid && is_member($mybb->settings['purgespammergroups']) && !is_super_admin($uid)
+ && !$usergroups[$usergroup]['cancp'] && !$usergroups[$usergroup]['canmodcp'] && !$usergroups[$usergroup]['issupermod']
+ && (str_replace($mybb->settings['thousandssep'], '', $post_count) <= $mybb->settings['purgespammerpostlimit'] || $mybb->settings['purgespammerpostlimit'] == 0)
+ && !is_member($bangroup, $uid) && !$usergroups[$usergroup]['isbannedgroup']);
+}
diff --git a/Upload/inc/functions_warnings.php b/Upload/inc/functions_warnings.php
new file mode 100644
index 0000000..286f594
--- /dev/null
+++ b/Upload/inc/functions_warnings.php
@@ -0,0 +1,120 @@
+ -1, // Ban
+ 2 => -1, // Revoke posting
+ 3 => -1 // Moderate posting
+ );
+ $check_levels = array(
+ 1 => false, // Ban
+ 2 => false, // Revoke posting
+ 3 => false // Moderate posting
+ );
+ while($warn_level = $db->fetch_array($query))
+ {
+ // revoke actions taken at this warning level
+ $action = my_unserialize($warn_level['action']);
+ if($action['type'] < 1 || $action['type'] > 3) // prevent any freak-ish cases
+ {
+ continue;
+ }
+
+ $check_levels[$action['type']] = true;
+
+ $max_exp_time = &$max_expiration_times[$action['type']];
+ if($action['length'] && $max_exp_time != 0)
+ {
+ $expiration = $action['length'];
+ if($expiration > $max_exp_time)
+ {
+ $max_exp_time = $expiration;
+ }
+ }
+ else
+ {
+ $max_exp_time = 0;
+ }
+ }
+}
+
+/**
+ * Returns a friendly expiration time of a suspension/warning
+ *
+ * @param int The time period of the suspension/warning
+ * @return array An array of the time/period remaining
+ */
+function fetch_friendly_expiration($time)
+{
+ if($time == 0 || $time == -1)
+ {
+ return array("period" => "never");
+ }
+ else if($time % 2592000 == 0)
+ {
+ return array("time" => $time/2592000, "period" => "months");
+ }
+ else if($time % 604800 == 0)
+ {
+ return array("time" => $time/604800, "period" => "weeks");
+ }
+ else if($time % 86400 == 0)
+ {
+ return array("time" => $time/86400, "period" => "days");
+ }
+ else
+ {
+ return array("time" => ceil($time/3600), "period" => "hours");
+ }
+}
+
+/**
+ * Figures out the length of a suspension/warning
+ *
+ * @param int The amount of time to calculate the length of suspension/warning
+ * @param string The period of time to calculate the length of suspension/warning
+ * @return int Length of the suspension/warning (in seconds)
+ */
+function fetch_time_length($time, $period)
+{
+ $time = (int)$time;
+
+ if($period == "hours")
+ {
+ $time = $time*3600;
+ }
+ else if($period == "days")
+ {
+ $time = $time*86400;
+ }
+ else if($period == "weeks")
+ {
+ $time = $time*604800;
+ }
+ else if($period == "months")
+ {
+ $time = $time*2592000;
+ }
+ else if($period == "never" && $time == 0)
+ {
+ // User is permanentely banned
+ $time = "-1";
+ }
+ else
+ {
+ $time = 0;
+ }
+ return $time;
+}
diff --git a/Upload/inc/index.html b/Upload/inc/index.html
new file mode 100644
index 0000000..efd2f36
--- /dev/null
+++ b/Upload/inc/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/init.php b/Upload/inc/init.php
new file mode 100644
index 0000000..8034277
--- /dev/null
+++ b/Upload/inc/init.php
@@ -0,0 +1,299 @@
+ Please make sure IN_MYBB is defined.");
+}
+
+/* Defines the root directory for MyBB.
+
+ Uncomment the below line and set the path manually
+ if you experience problems.
+
+ Always add a trailing slash to the end of the path.
+
+ * Path to your copy of MyBB
+ */
+//define('MYBB_ROOT', "./");
+
+// Attempt autodetection
+if(!defined('MYBB_ROOT'))
+{
+ define('MYBB_ROOT', dirname(dirname(__FILE__))."/");
+}
+
+define("TIME_NOW", time());
+
+if(function_exists('date_default_timezone_set') && !ini_get('date.timezone'))
+{
+ date_default_timezone_set('GMT');
+}
+
+require_once MYBB_ROOT."inc/class_error.php";
+$error_handler = new errorHandler();
+
+if(!function_exists('json_encode') || !function_exists('json_decode'))
+{
+ require_once MYBB_ROOT.'inc/3rdparty/json/json.php';
+}
+
+require_once MYBB_ROOT."inc/functions.php";
+
+require_once MYBB_ROOT."inc/class_timers.php";
+$maintimer = new timer();
+
+require_once MYBB_ROOT."inc/class_core.php";
+$mybb = new MyBB;
+
+$not_installed = false;
+if(!file_exists(MYBB_ROOT."inc/config.php"))
+{
+ $not_installed = true;
+}
+else
+{
+ // Include the required core files
+ require_once MYBB_ROOT."inc/config.php";
+ $mybb->config = &$config;
+
+ if(!isset($config['database']))
+ {
+ $not_installed = true;
+ }
+}
+
+if($not_installed !== false)
+{
+ if(file_exists(MYBB_ROOT."install/index.php"))
+ {
+ if(defined("IN_ARCHIVE") || defined("IN_ADMINCP"))
+ {
+ header("Location: ../install/index.php");
+ exit;
+ }
+ header("Location: ./install/index.php");
+ exit;
+ }
+
+ $mybb->trigger_generic_error("board_not_installed");
+}
+
+if(!is_array($config['database']))
+{
+ $mybb->trigger_generic_error("board_not_upgraded");
+}
+
+if(empty($config['admin_dir']))
+{
+ $config['admin_dir'] = "admin";
+}
+
+// Trigger an error if the installation directory exists
+if(is_dir(MYBB_ROOT."install") && !file_exists(MYBB_ROOT."install/lock"))
+{
+ $mybb->trigger_generic_error("install_directory");
+}
+
+require_once MYBB_ROOT."inc/db_".$config['database']['type'].".php";
+
+switch($config['database']['type'])
+{
+ case "sqlite":
+ $db = new DB_SQLite;
+ break;
+ case "pgsql":
+ $db = new DB_PgSQL;
+ break;
+ case "mysqli":
+ $db = new DB_MySQLi;
+ break;
+ default:
+ $db = new DB_MySQL;
+}
+
+// Check if our DB engine is loaded
+if(!extension_loaded($db->engine))
+{
+ // Throw our super awesome db loading error
+ $mybb->trigger_generic_error("sql_load_error");
+}
+
+require_once MYBB_ROOT."inc/class_templates.php";
+$templates = new templates;
+
+require_once MYBB_ROOT."inc/class_datacache.php";
+$cache = new datacache;
+
+require_once MYBB_ROOT."inc/class_plugins.php";
+$plugins = new pluginSystem;
+
+// Include our base data handler class
+require_once MYBB_ROOT."inc/datahandler.php";
+
+// Connect to Database
+define("TABLE_PREFIX", $config['database']['table_prefix']);
+$db->connect($config['database']);
+$db->set_table_prefix(TABLE_PREFIX);
+$db->type = $config['database']['type'];
+
+// Language initialisation
+require_once MYBB_ROOT."inc/class_language.php";
+$lang = new MyLanguage;
+$lang->set_path(MYBB_ROOT."inc/languages");
+
+// Load cache
+$cache->cache();
+
+// Load Settings
+if(file_exists(MYBB_ROOT."inc/settings.php"))
+{
+ require_once MYBB_ROOT."inc/settings.php";
+}
+
+if(!file_exists(MYBB_ROOT."inc/settings.php") || empty($settings))
+{
+ if(function_exists('rebuild_settings'))
+ {
+ rebuild_settings();
+ }
+ else
+ {
+ $options = array(
+ "order_by" => "title",
+ "order_dir" => "ASC"
+ );
+
+ $query = $db->simple_select("settings", "value, name", "", $options);
+
+ $settings = array();
+ while($setting = $db->fetch_array($query))
+ {
+ $setting['value'] = str_replace("\"", "\\\"", $setting['value']);
+ $settings[$setting['name']] = $setting['value'];
+ }
+ $db->free_result($query);
+ }
+}
+
+$settings['wolcutoff'] = $settings['wolcutoffmins']*60;
+$settings['bbname_orig'] = $settings['bbname'];
+$settings['bbname'] = strip_tags($settings['bbname']);
+$settings['orig_bblanguage'] = $settings['bblanguage'];
+
+// Fix for people who for some specify a trailing slash on the board URL
+if(substr($settings['bburl'], -1) == "/")
+{
+ $settings['bburl'] = my_substr($settings['bburl'], 0, -1);
+}
+
+// Setup our internal settings and load our encryption key
+$settings['internal'] = $cache->read("internal_settings");
+if(!$settings['internal']['encryption_key'])
+{
+ $cache->update("internal_settings", array('encryption_key' => random_str(32)));
+ $settings['internal'] = $cache->read("internal_settings");
+}
+
+$mybb->settings = &$settings;
+$mybb->parse_cookies();
+$mybb->cache = &$cache;
+$mybb->asset_url = $mybb->get_asset_url();
+
+if($mybb->use_shutdown == true)
+{
+ register_shutdown_function('run_shutdown');
+}
+
+// Did we just upgrade to a new version and haven't run the upgrade scripts yet?
+$version = $cache->read("version");
+if(!defined("IN_INSTALL") && !defined("IN_UPGRADE") && $version['version_code'] < $mybb->version_code)
+{
+ $version_history = $cache->read("version_history");
+ if(empty($version_history) || file_exists(MYBB_ROOT."install/resources/upgrade".(int)(end($version_history)+1).".php"))
+ {
+ $mybb->trigger_generic_error("board_not_upgraded");
+ }
+}
+
+// Load plugins
+if(!defined("NO_PLUGINS") && !($mybb->settings['no_plugins'] == 1))
+{
+ $plugins->load();
+}
+
+// Set up any shutdown functions we need to run globally
+add_shutdown('send_mail_queue');
+
+/* URL Definitions */
+if($mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && isset($_SERVER['SEO_SUPPORT']) && $_SERVER['SEO_SUPPORT'] == 1))
+{
+ $mybb->seo_support = true;
+
+ define('FORUM_URL', "dzial-{fid}.html");
+ define('FORUM_URL_PAGED', "dzial-{fid}-strona-{page}.html");
+ define('THREAD_URL', "watek-{tid}.html");
+ define('THREAD_URL_PAGED', "watek-{tid}-strona-{page}.html");
+ define('THREAD_URL_ACTION', 'watek-{tid}-{action}.html');
+ define('THREAD_URL_POST', 'watek-{tid}-post-{pid}.html');
+ define('POST_URL', "post-{pid}.html");
+ define('PROFILE_URL', "uzytkownik-{uid}.html");
+ define('ANNOUNCEMENT_URL', "ogloszenie-{aid}.html");
+ define('CALENDAR_URL', "kalendarz-{calendar}.html");
+ define('CALENDAR_URL_MONTH', 'kalendarz-{calendar}-rok-{year}-miesiac-{month}.html');
+ define('CALENDAR_URL_DAY', 'kalendarz-{calendar}-rok-{year}-miesiac-{month}-dzien-{day}.html');
+ define('CALENDAR_URL_WEEK', 'kalendarz-{calendar}-tydzien-{week}.html');
+ define('EVENT_URL', "wydarzenie-{eid}.html");
+}
+else
+{
+ define('FORUM_URL', "forumdisplay.php?fid={fid}");
+ define('FORUM_URL_PAGED', "forumdisplay.php?fid={fid}&page={page}");
+ define('THREAD_URL', "showthread.php?tid={tid}");
+ define('THREAD_URL_PAGED', "showthread.php?tid={tid}&page={page}");
+ define('THREAD_URL_ACTION', 'showthread.php?tid={tid}&action={action}');
+ define('THREAD_URL_POST', 'showthread.php?tid={tid}&pid={pid}');
+ define('POST_URL', "showthread.php?pid={pid}");
+ define('PROFILE_URL', "member.php?action=profile&uid={uid}");
+ define('ANNOUNCEMENT_URL', "announcements.php?aid={aid}");
+ define('CALENDAR_URL', "calendar.php?calendar={calendar}");
+ define('CALENDAR_URL_MONTH', "calendar.php?calendar={calendar}&year={year}&month={month}");
+ define('CALENDAR_URL_DAY', 'calendar.php?action=dayview&calendar={calendar}&year={year}&month={month}&day={day}');
+ define('CALENDAR_URL_WEEK', 'calendar.php?action=weekview&calendar={calendar}&week={week}');
+ define('EVENT_URL', "calendar.php?action=event&eid={eid}");
+}
+define('INDEX_URL', "index.php");
+
+// An array of valid date formats (Used for user selections etc)
+$date_formats = array(
+ 1 => "m-d-Y",
+ 2 => "m-d-y",
+ 3 => "m.d.Y",
+ 4 => "m.d.y",
+ 5 => "d-m-Y",
+ 6 => "d-m-y",
+ 7 => "d.m.Y",
+ 8 => "d.m.y",
+ 9 => "F jS, Y",
+ 10 => "l, F jS, Y",
+ 11 => "jS F, Y",
+ 12 => "l, jS F, Y",
+ // ISO 8601
+ 13 => "Y-m-d"
+);
+
+// An array of valid time formats (Used for user selections etc)
+$time_formats = array(
+ 1 => "h:i a",
+ 2 => "h:i A",
+ 3 => "H:i"
+);
+
diff --git a/Upload/inc/languages/index.html b/Upload/inc/languages/index.html
new file mode 100644
index 0000000..efd2f36
--- /dev/null
+++ b/Upload/inc/languages/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/languages/polish.php b/Upload/inc/languages/polish.php
new file mode 100644
index 0000000..954c49a
--- /dev/null
+++ b/Upload/inc/languages/polish.php
@@ -0,0 +1,31 @@
+ on all pages
+$langinfo['htmllang'] = "pl";
+
+// Sets the character set, blank uses the default.
+$langinfo['charset'] = "UTF-8";
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/admin/config_attachment_types.lang.php b/Upload/inc/languages/polish/admin/config_attachment_types.lang.php
new file mode 100644
index 0000000..11d7249
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_attachment_types.lang.php
@@ -0,0 +1,44 @@
+Pokaż listę dostępnych typów)";
+$l['maximum_file_size'] = "Maksymalny rozmiar pliku (w kilobajtach)";
+$l['maximum_file_size_desc'] = "Maksymalny rozmiar pliku jaki można załadować dla tego rozszerzenia, rozmiar podaj w kilobajtach (1 MB = 1024 KB)";
+$l['limit_intro'] = "Upewnij się, że rozmiar pliku jest mniejszy niż ustalony w konfiguracji PHP:";
+$l['limit_post_max_size'] = "Maksymalny rozmiar posta: {1}";
+$l['limit_upload_max_filesize'] = "Maksymalny rozmiar załącznika: {1}";
+$l['attachment_icon'] = "Ikona załącznika";
+$l['attachment_icon_desc'] = "Jeżeli chcesz, by przy załącznikach tego typu pokazywała się ikonka, podaj tutaj jej ścieżkę. \"{theme}\" zostanie zastąpione przez adres katalogu z obrazkami aktualnie używanego stylu.";
+$l['save_attachment_type'] = "Zapisz typ załączników";
+
+$l['error_invalid_attachment_type'] = "Wybrano niepoprawny typ załącznika.";
+$l['error_missing_mime_type'] = "Nie podano typu MIME dla tego rodzaju plików";
+$l['error_missing_extension'] = "Nie podano rozszerzenia dla tego rodzaju plików";
+
+$l['success_attachment_type_created'] = "Typ załączników został utworzony.";
+$l['success_attachment_type_updated'] = "Typ załączników został zaktualizowany.";
+$l['success_attachment_type_deleted'] = "Typ załączników został usunięty.";
+
+$l['confirm_attachment_type_deletion'] = "Czy na pewno chcesz usunąć ten typ załączników?";
diff --git a/Upload/inc/languages/polish/admin/config_badwords.lang.php b/Upload/inc/languages/polish/admin/config_badwords.lang.php
new file mode 100644
index 0000000..a413b20
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_badwords.lang.php
@@ -0,0 +1,35 @@
+{subject} reprezentuje oryginalny temat, a {username} reprezentuje login moderatora.";
+
+$l['success_mod_tool_created'] = "Narzędzie moderacji zostało utworzone.";
+$l['success_mod_tool_updated'] = "Narzędzie moderacji zostało zaktualizowane.";
+
+$l['inline_post_moderation'] = "Liniowa moderacja postów";
+$l['delete_posts'] = "Usunąć posty?";
+$l['merge_posts'] = "Połączyć posty?";
+$l['merge_posts_desc'] = "Używane tylko z moderacji liniowej.";
+$l['approve_unapprove_posts'] = "Akceptować | Odrzucić post(y)?";
+$l['softdelete_restore_posts'] = "Usunąć nietrwale/przywrócić posty?";
+
+$l['split_posts'] = "Oddziel posty";
+$l['split_posts2'] = "Oddzielić posty?";
+$l['do_not_split'] = "Nie oddzielaj postów";
+$l['split_to_same_forum'] = "Oddziel i pozostaw w tym dziale";
+$l['close_split_thread'] = "Zamknąć oddzielony wątek?";
+$l['stick_split_thread'] = "Przypiąć oddzielony wątek?";
+$l['unapprove_split_thread'] = "Odrzucić oddzielony wątek?";
+$l['split_thread_prefix'] = "Prefiks oddzielonego wÄ…tku";
+$l['split_thread_subject'] = "Temat oddzielonego wÄ…tku";
+$l['split_thread_subject_desc'] = "{subject} reprezentuje oryginalny temat. Wymagane tylko podczas oddzielania postów.";
+$l['add_new_split_reply'] = "Napisz odpowiedź do łączonego wątku";
+$l['add_new_split_reply_desc'] = "Pozostaw puste, jeżeli nie chcesz udzielać odpowiedzi.";
+$l['split_reply_subject'] = "Temat odpowiedzi";
+$l['split_reply_subject_desc'] = "Używane tylko gdy pozostawiasz odpowiedź";
+$l['save_post_tool'] = "Zapisz narzędzie postów";
+
+$l['send_private_message'] = 'Wyślij prywatną wiadomość';
+$l['private_message_message'] = 'Wiadomość';
+$l['private_message_message_desc'] = 'Wiadomość do autora wątku. Pozostaw puste, żeby wyłączyć tę funkcję.';
+$l['private_message_subject'] = 'Temat';
+$l['private_message_subject_desc'] = 'Wpisz temat prywatnej wiadomości.';
+
+$l['error_missing_title'] = "Wpisz nazwę dla tego narzędzia.";
+$l['error_missing_description'] = "Krótko opisz to narzędzie.";
+$l['error_no_forums_selected'] = "Wybierz działy, w których będzie dostępne to narzędzie.";
+$l['error_no_groups_selected'] = "Wybierz grupy, dla których będzie dostępne to narzędzie.";
+$l['error_forum_is_category'] = "Nie można wybrać kategorii jako działu docelowego.";
diff --git a/Upload/inc/languages/polish/admin/config_module_meta.lang.php b/Upload/inc/languages/polish/admin/config_module_meta.lang.php
new file mode 100644
index 0000000..ba0e151
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_module_meta.lang.php
@@ -0,0 +1,45 @@
+inc/plugins na Twoim forum. Aby nie pokazywać plugina na liście, ale nie utracić żadnych zapisanych przez niego informacji, kliknij na przycisk Dezaktywuj.";
+$l['plugin_updates'] = "Aktualizacje pluginów";
+$l['plugin_updates_desc'] = "Sprawdź czy istnieją aktualizacje pluginów zainstalowanych na Twoim forum.";
+$l['browse_plugins'] = "PrzeglÄ…daj pluginy";
+$l['browse_plugins_desc'] = "Przeglądaj oficjalną stronę MyBB w poszukiwaniu modyfikacji i pluginów kompatybilnych z tą wersją MyBB.";
+$l['browse_all_plugins'] = "PrzeglÄ…daj wszystkie pluginy";
+
+$l['plugin'] = "Plugin";
+$l['active_plugin'] = "Aktywne pluginy";
+$l['inactive_plugin'] = "Nieaktywne pluginy";
+$l['your_version'] = "Posiadana wersja";
+$l['latest_version'] = "Najnowsza wersja";
+$l['download'] = "Pobierz";
+$l['deactivate'] = "Dezaktywuj";
+$l['activate'] = "Aktywuj";
+$l['install_and_activate'] = "Zainstaluj i aktywuj";
+$l['uninstall'] = "Odinstaluj";
+$l['created_by'] = "Autor";
+$l['no_plugins'] = "W tym momencie nie ma żadnych pluginów na Twoim forum.";
+$l['no_active_plugins'] = "W tym momencie nie ma żadnych aktywnych pluginów na Twoim forum.";
+$l['no_inactive_plugins'] = "W tym momencie nie ma żadnych nieaktywnych pluginów na Twoim forum.";
+
+$l['plugin_incompatible'] = "Ten plugin jest niekompatybilny z MyBB {1}";
+
+$l['recommended_plugins_for_mybb'] = "Zalecane pluginy dla MyBB {1}";
+$l['browse_results_for_mybb'] = "PrzeglÄ…daj wyniki dla MyBB {1}";
+$l['search_for_plugins'] = "Szukaj pluginów";
+$l['search'] = "Szukaj";
+
+$l['error_vcheck_no_supported_plugins'] = "Żadne z zainstalowanych pluginów nie obsługują sprawdzania wersji.";
+$l['error_vcheck_communications_problem'] = "Wystąpił problem z komunikacją z serwerem dodatków. Spróbuj ponownie za kilka minut.";
+$l['error_vcheck_vulnerable'] = "[Plugin podatny na ataki]:";
+$l['error_vcheck_vulnerable_notes'] = "Ten plugin został oznaczony przez Ekipę MyBB jako podatny na ataki. Zalecamy jego kompletne usunięcie. Więcej informacji:";
+$l['error_no_input'] = "Kod błędu 1: nie wybrano wejścia.";
+$l['error_no_pids'] = "Kod błędu 2: nie wybrano ID.";
+$l['error_communication_problem'] = "Wystąpił problem z komunikacją z serwerem dodatków. Spróbuj ponownie za kilka minut.";
+$l['error_invalid_plugin'] = "Wybrany plugin nie istnieje";
+$l['error_no_results_found'] = "Wyszukiwanie z podanymi słowami kluczowymi nie zwróciło żadnych wyników.";
+
+$l['success_plugins_up_to_date'] = "Wszystkie zainstalowane pluginy sÄ… w swoich najnowszych wersjach.";
+$l['success_plugin_activated'] = "Plugin został aktywowany.";
+$l['success_plugin_deactivated'] = "Plugin został zdezaktywowany.";
+$l['success_plugin_installed'] = "Plugin został zainstalowany i aktywowany.";
+$l['success_plugin_uninstalled'] = "Plugin został odinstalowany.";
diff --git a/Upload/inc/languages/polish/admin/config_post_icons.lang.php b/Upload/inc/languages/polish/admin/config_post_icons.lang.php
new file mode 100644
index 0000000..20047df
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_post_icons.lang.php
@@ -0,0 +1,47 @@
+{theme}. W jego miejsce podstawiony zostanie katalog z obrazkami danego stylu.";
+$l['save_post_icon'] = "Zapisz ikonkę postów";
+$l['reset'] = "Resetuj";
+
+$l['path_to_images'] = "Ścieżka do obrazków";
+$l['path_to_images_desc'] = "To jest ścieżka do folderu, gdzie są obrazki.";
+$l['show_post_icons'] = "Pokaż ikonki postów";
+$l['image'] = "Obrazek";
+$l['add'] = "Dodać?";
+$l['save_post_icons'] = "Zapisz ikonki postów";
+
+$l['no_post_icons'] = "W tym momencie nie ma ikonek postów na Twoim forum.";
+
+$l['error_missing_name'] = "Nie wpisano nazwy dla tej ikonki postów";
+$l['error_missing_path'] = "Nie wpisano ścieżki do tej ikony postów";
+$l['error_missing_path_multiple'] = "Nie wpisano ścieżki";
+$l['error_invalid_path'] = "Nie wpisano poprawnej ścieżki";
+$l['error_no_images'] = "Nie ma ikon postów w podanym katalogu, lub wszystkie ikony w tym folderze zostały już dodane.";
+$l['error_none_included'] = "Nie wybrano żadnych ikonek postów do załączenia.";
+$l['error_invalid_post_icon'] = "Wybrana ikonka postów nie istnieje.";
+
+$l['success_post_icon_added'] = "Ikona postów została dodana.";
+$l['success_post_icons_added'] = "Wybrane ikony postów zostały dodane.";
+$l['success_post_icon_updated'] = "Ikona postów została zaktualizowana.";
+$l['success_post_icon_deleted'] = "Wybrana ikona postów została usunięta.";
+
+$l['confirm_post_icon_deletion'] = "Czy na pewno chcesz usunąć tę ikonę postów?";
diff --git a/Upload/inc/languages/polish/admin/config_profile_fields.lang.php b/Upload/inc/languages/polish/admin/config_profile_fields.lang.php
new file mode 100644
index 0000000..3558607
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_profile_fields.lang.php
@@ -0,0 +1,77 @@
+
+Przykład: ([a-z0-9_\- ,.+]+)";
+$l['selectable_options'] = "Wybieralne opcje?";
+$l['selectable_options_desc'] = "Wpisz każdą opcję w oddzielnej linii. Tyczy się to tylko do pól wyboru, pól zaznaczania i przycisków radio.";
+$l['required'] = "Wymagane?";
+$l['required_desc'] = "Czy jest wymagane, aby to pole zostało uzupełnione podczas rejestracji lub edycji profilu? Zauważ, że to nie ma zastosowania, jeżeli pole jest ukryte lub jego edycja została zablokowana.";
+$l['show_on_registration'] = "Pokazywać podczas rejestracji?";
+$l['show_on_registration_desc'] = "Czy pole powinno być widoczne w formularzu rejestracyjnym? To ustawienie nie ma zastosowania, jeśli edycja pola została zablokowana. Ponadto, pola oznaczone jako wymagane zawsze będą wyświetlane w formularzu rejestracyjnym.";
+$l['display_on_profile'] = "Pokazywać w profilu użytkownika?";
+$l['display_on_profile_desc'] = "Czy zawartość tego pola powinna być wyświetlana w profilu użytkownika? To ustawienie nie ma zastosowania do administratorów i moderatorów.";
+
+$l['display_on_postbit'] = "Wyświetlać w opisie posta?";
+$l['display_on_postbit_desc'] = "Czy to pole powinno być wyświetlane w opisie posta? To ustawienie nie zadziała, jeśli to pole jest ukryte lub jest polem tekstowym.";
+$l['viewableby'] = 'Widoczne dla';
+$l['viewableby_desc'] = 'Wybierz grupy użytkowników, które mogą wyświetlać zawartość tego pola..';
+$l['editableby'] = 'Edytowalne przez';
+$l['editableby_desc'] = 'Wybierz grupy użytkowników, które mogą edytować to pole.';
+$l['min_posts_enabled'] = "Dostępne tylko dla użytkowników z określoną liczbą postów?";
+$l['min_posts_enabled_desc'] = "Czy to pole może być edytowane przez użytkownika, który posiada określoną minimalną liczbę postów? Jeżeli tak, wpisz ją w pole poniżej.";
+$l['parser_options'] = "Ustawienia parsowania";
+$l['parse_allowhtml'] = "Zezwalaj na kod HTML.";
+$l['parse_allowmycode'] = "Zezwalaj na kod MyCode.";
+$l['parse_allowsmilies'] = "Zezwalaj na emotikony.";
+$l['parse_allowimgcode'] = "Zezwól na tag [img].";
+$l['parse_allowvideocode'] = "Zezwól na tag [video].";
+$l['save_profile_field'] = "Zapisz pole profilu";
+$l['name'] = "Nazwa";
+$l['registration'] = "Widoczne podczas rejestracji?";
+$l['editable'] = "Edytowalne?";
+$l['profile'] = "Widoczne w profilu?";
+$l['postbit'] = "W opisie posta?";
+$l['edit_field'] = "Edytuj pole";
+$l['delete_field'] = "Usuń pole";
+$l['no_profile_fields'] = "W tym momencie nie ma dodatkowych pól w profilu na Twoim forum.";
+
+$l['error_missing_name'] = "Nie wpisano tytułu dla tego dodatkowego pola w profilu";
+$l['error_missing_description'] = "Nie wpisano opisu dla tego dodatkowego pola w profilu";
+$l['error_invalid_fid'] = "Wybrane pole w profilu nie istnieje.";
+
+$l['success_profile_field_added'] = "Dodatkowe pole w profilu zostało utworzone.";
+$l['success_profile_field_saved'] = "Dodatkowe pole w profilu zostało zapisane.";
+$l['success_profile_field_deleted'] = "Dodatkowe pole w profilu zostało usunięte.";
+
+$l['confirm_profile_field_deletion'] = "Czy na pewno chcesz usunąć to dodatkowe pole w profilu?";
diff --git a/Upload/inc/languages/polish/admin/config_questions.lang.php b/Upload/inc/languages/polish/admin/config_questions.lang.php
new file mode 100644
index 0000000..f660ef5
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_questions.lang.php
@@ -0,0 +1,41 @@
+Aby uzyskać więcej informacji na temat nadawania uprawnień CHMOD, sprawdź href=\"http://docs.mybb.com/HowTo_Chmod.html\" target=\"_blank\">Dokumentację MyBB.";
+$l['error_hidden_captcha_conflict'] = "Wartość ukrytego pola CAPTCHA nie może być równa \"{1}\", ponieważ koliduje z innym polem rejestracji.";
+
+$l['success_setting_added'] = "Wpis ustawień został utworzony.";
+$l['success_setting_updated'] = "Wpis ustawień został zaktualizowany.";
+$l['success_setting_deleted'] = "Wpis ustawień został usunięty.";
+$l['success_settings_updated'] = "Wpisy ustawień zostały zaktualizowane.";
+$l['success_display_orders_updated'] = "Kolejność wyświetlania została zaktualizowana.";
+$l['success_setting_group_added'] = "Grupa ustawień została utworzona.";
+$l['success_setting_group_updated'] = "Grupa ustawień została zaktualizowana.";
+$l['success_setting_group_deleted'] = "Grupa ustawień została usunięta.";
+$l['success_duplicate_settings_deleted'] = "Wszystkie zduplikowane grupy ustawień zostały usunięte.";
+
+$l['searching'] = 'Wyszukiwanie...';
+$l['search_error'] = 'Wystąpił błąd podczas zwracania wyników wyszukiwania:';
+$l['search_done'] = 'Zrobione!';
+
+/** Tłumaczenie nazw grup i ustawień **/
+
+$l['setting_group_onlineoffline'] = "Forum zamknięte / otwarte";
+$l['setting_group_onlineoffline_desc'] = "Ustawienia dotyczące zamykania i otwierania forum (z możliwością podania powodu).";
+$l['setting_group_details'] = "Ustawienia strony";
+$l['setting_group_details_desc'] = "Ustawienia strony, m.in. nazwa i adres forum, a także nazwa i adres głównej strony serwisu.";
+$l['setting_group_general'] = "Ustawienia ogólne";
+$l['setting_group_general_desc'] = "Ustawienia ogólne dotyczące podstawowych funkcjonalności forum.";
+$l['setting_group_server'] = "Ustawienia serwera i optymalizacji";
+$l['setting_group_server_desc'] = "Ustawienia związane z użytkowaniem serwera przez skrypt (ich dostosowanie pozwala na zmniejszenie obciążenie serwera i osiągnięcie lepszej wydajności skryptu).";
+$l['setting_group_datetime'] = "Formaty daty i czasu";
+$l['setting_group_datetime_desc'] = "Ustawienia formatu wyświetlania daty i czasu na forum.";
+$l['setting_group_forumhome'] = "Opcje strony głównej";
+$l['setting_group_forumhome_desc'] = "Ustawienia związane ze stroną główną forum (index.php).";
+$l['setting_group_forumdisplay'] = "Opcje wyświetlania działów";
+$l['setting_group_forumdisplay_desc'] = "Ustawienia dotyczące wyświetlania działów forum (forumdisplay.php).";
+$l['setting_group_showthread'] = "Opcje wyświetlania wątków";
+$l['setting_group_showthread_desc'] = "Ustawienia dotyczące wyświetlania wątków (showthread.php).";
+$l['setting_group_member'] = "Opcje rejestracji i profilu";
+$l['setting_group_member_desc'] = "Ustawienia dotyczące rejestracji użytkowników i zarządzania ich profilami.";
+$l['setting_group_posting'] = "Pisanie postów";
+$l['setting_group_posting_desc'] = "Ustawienia związane z procesem pisania postów na forum.";
+$l['setting_group_memberlist'] = "Lista użytkowników";
+$l['setting_group_memberlist_desc'] = "Ustawienia dotyczące strony z listą użytkowników forum (memberlist.php), (m.in. liczba użytkowników pokazywanych na pojedynczej stronie i ilość szczegółowych informacji).";
+$l['setting_group_reputation'] = "Reputacja";
+$l['setting_group_reputation_desc'] = "System reputacji pozwala użytkownikom na wzajemne ocenianie się i komentowanie swoich profili. W tej sekcji masz możliwość wyłączenia i zmiany ustawień strony reputacji (reputation.php).";
+$l['setting_group_showteam'] = "Ustawienia strony \"Ekipa forum\"";
+$l['setting_group_showteam_desc'] = "Ustawienia dotyczÄ…ce strony \"Ekipa forum\" (showteam.php).";
+$l['setting_group_privatemessaging'] = "Prywatne wiadomości";
+$l['setting_group_privatemessaging_desc'] = "Ustawienia dotyczące prywatnych wiadomości (private.php), m.in. możliwość używania HTML, MyCode, emotikonów, czy też kodu [img].";
+$l['setting_group_calendar'] = "Kalendarz";
+$l['setting_group_calendar_desc'] = "Ustawienia dotyczące kalendarza (kalendarz na forum zawiera przypomnienia o wydarzeniach, zarówno prywatnych, jak i publicznych, a także o urodzinach użytkowników).";
+$l['setting_group_whosonline'] = "Kto jest online";
+$l['setting_group_whosonline_desc'] = "Ustawienia związane z wyświetlaniem strony \"Kto jest online\".";
+$l['setting_group_userpruning'] = "Automatyczne usuwanie użytkowników";
+$l['setting_group_userpruning_desc'] = "Automatyczne usuwanie użytkowników pozwala na usunięcie z forum użytkowników, którzy spełniają podane kryteria. Tutaj możesz je dostosować.";
+$l['setting_group_portal'] = "Ustawienia portalu";
+$l['setting_group_portal_desc'] = "Strona portalu zawiera skondensowane informacje o Twoim forum, m.in. ostatnie posty, listę \"Kto jest online\", statystyki, ogłoszenia i inne. W tej sekcji możesz zmienić jej ustawienia (portal.php).";
+$l['setting_group_search'] = "System wyszukiwania";
+$l['setting_group_search_desc'] = "Ustawienia dotyczące wbudowanego w MyBB systemu wyszukiwania wątków i postów.";
+$l['setting_group_clickablecode'] = "Podręczna lista emotikonów i edytor MyCode";
+$l['setting_group_clickablecode_desc'] = "Ustawienia dotyczące podręcznej listy emotikonów i edytora MyCode podczas redagowania posta.";
+$l['setting_group_cpprefs'] = "Preferencje panelu administratora (globalnie)";
+$l['setting_group_cpprefs_desc'] = "Globalne ustawienia dotyczÄ…ce panelu administratora.";
+$l['setting_group_contactsettings'] = "Formularz kontaktowy";
+$l['setting_group_contactsettings_desc'] = "Ustawienia dotyczÄ…ce formularzu kontaktowego (contact.php).";
+$l['setting_group_purgespammer'] = "Usuwanie spamerów";
+$l['setting_group_purgespammer_desc'] = "W tej sekcji masz możliwość zarządzania wbudowanym systemem usuwania spamerów.";
+$l['setting_group_stopforumspam'] = "Stop Forum Spam";
+$l['setting_group_stopforumspam_desc'] = "W tej sekcji masz możliwość zarządzania ustawieniami odpowiedzialnymi za integrację forum ze stroną StopForumSpam.com.";
+$l['setting_group_contactdetails'] = "Dane kontaktowe";
+$l['setting_group_contactdetails_desc'] = "Ustawienia pól z danymi kontaktowymi w profilu użytkownika.";
+$l['setting_group_statspage'] = "Strona statystyk";
+$l['setting_group_statspage_desc'] = "Ustawienia strony ze statystykami forum.";
+
+$l['setting_boardclosed'] = "Forum zamknięte";
+$l['setting_boardclosed_desc'] = "Możesz tutaj zamknąć swoje forum, np. celem przeprowadzenia jakichś prac (aktualizacji itp.). Użytkownicy nie będą mogli przeglądać forum, zobaczą jedynie informację o powodzie zamknięcia, który podasz poniżej.Administratorzy będą nadal mogli przeglądać forum. ";
+$l['setting_boardclosed_reason'] = "Powód zamknięcia forum";
+$l['setting_boardclosed_reason_desc'] = "Jeżeli zamykasz forum, możesz podać tutaj informację, którą zobaczą użytkownicy.";
+$l['setting_bbname'] = "Nazwa forum";
+$l['setting_bbname_desc'] = "Nazwa forum dyskusyjnego. Nie powinna być dłuższa niż 75 znaków.";
+$l['setting_bburl'] = "URL forum";
+$l['setting_bburl_desc'] = "Adres URL forum. DoÅ‚Ä…cz \"http://\". NIE DOÅÄ„CZAJ ukoÅ›nika na koÅ„cu.";
+$l['setting_homename'] = "Nazwa głównej strony serwisu";
+$l['setting_homename_desc'] = "Nazwa głównej strony serwisu. Będzie wyświetlana jako link w stopce forum.";
+$l['setting_homeurl'] = "URL strony głównej serwisu";
+$l['setting_homeurl_desc'] = "Pełen adres URL strony głównej serwisu. Pod ten adres będzie prowadził link w stopce.";
+$l['setting_adminemail'] = "Adres e-mail administratora";
+$l['setting_adminemail_desc'] = "Adres e-mail administratora. Będzie używany do sygnowania e-maili wysyłanych za pośrednictwem forum.";
+$l['setting_contactlink'] = "Link \"Kontakt\"";
+$l['setting_contactlink_desc'] = "Adres, pod który będzie prowadził link \"Kontakt\" w stopce forum. Może to być adres e-mail (w formacie mailto:adres@domena.com) albo adres URL.";
+$l['setting_bblanguage'] = "Domyślny język";
+$l['setting_bblanguage_desc'] = "Język, w jakim domyślnie ma być wyświetlany interfejs MyBB dla gości oraz użytkowników, którzy nie dokonali wyboru języka w swoim panelu użytkownika.";
+$l['setting_cookiedomain'] = "Domena cookies";
+$l['setting_cookiedomain_desc'] = "Domena, na jaką zostaną ustawione cookies. To pole może pozostać puste. Jeżeli chcesz, by włączone zostały tutaj wszystkie subdomeny - wpisz kropkę na początku adresu.";
+$l['setting_cookiepath'] = "Ścieżka cookies";
+$l['setting_cookiepath_desc'] = "Ścieżka, na jaką zostaną ustawione cookies. Zalecane jest wpisanie tutaj pełnej ścieżki do forum, włącznie z ukośnikiem na końcu.";
+$l['setting_showvernum'] = "Pokaż numer wersji";
+$l['setting_showvernum_desc'] = "Możesz włączyć lub wyłączyć pokazywanie numeru wersji aktualnie zainstalowanej kopii MyBB.";
+$l['setting_captchaimage'] = "Obrazki CAPTCHA przy rejestracji i postowaniu";
+$l['setting_captchaimage_desc'] = "Jeżeli wybierzesz \"tak\" oraz zainstalowana jest biblioteka GD, podczas rejestracji i podczas pisania posta wyświetlany będzie obrazek. Obowiązkiem użytkowników będzie przepisanie ciągu znaków z niego do pola tekstowego. Pomoże to w ograniczeniu liczby zautomatyzowanych rejestracji i wiadomości wysyłanych przez boty.";
+$l['setting_reportmethod'] = "Sposób raportowania postów";
+$l['setting_reportmethod_desc'] = "Wybierz z listy obok sposób, w jaki mają być przechowywane informacje o raportowanych postach. Najprawdopodobniej najlepszym wyborem będzie przechowywanie informacji w bazie danych.";
+$l['setting_statslimit'] = "Liczba wątków w statystykach";
+$l['setting_statslimit_desc'] = "Liczba wątków, jakie mają pojawiać się na stronie statystyk w zestawieniach wątków o największej liczbie odpowiedzi i wyświetleń.";
+$l['setting_decpoint'] = "Separator dziesiętny";
+$l['setting_decpoint_desc'] = "Separator dziesiętny używany w Twoim regionie. W języku polskim jest to przecinek: \",\".";
+$l['setting_thousandssep'] = "Separator tysięcy";
+$l['setting_thousandssep_desc'] = "Znak, którego chcesz używać do oddzielania trzycyfrowych grup w zapisie liczb. W Polsce najczęściej używa się spacji \" \" lub kropki \".\".";
+$l['setting_gzipoutput'] = "Używać kompresji GZip?";
+$l['setting_gzipoutput_desc'] = "Czy chcesz, by strony były wysyłane do przeglądarki w formacie skompresowanym GZip? Dzięki temu strony będą ładować się szybciej, z wykorzystaniem mniejszej ilości transferu.";
+$l['setting_gziplevel'] = "Stopień kompresji GZip";
+$l['setting_gziplevel_desc'] = "Wybierz stopień kompresji GZip w skali od 0 do 9 (0=brak kompresji, 9=maksymalna kompresja). Ta opcja będzie miała znaczenie tylko w przypadku, gdy kompresja GZip jest włączona oraz na serwerze zainstalowane jest PHP w wersji co najmniej 4.2. Jeżeli używasz starszej wersji PHP, użyty zostanie domyślny stopień kompresji.";
+$l['setting_standardheaders'] = "Wysyłać standardowe nagłówki?";
+$l['setting_standardheaders_desc'] = "Na niektórych serwerach włączenie tej opcji może powodować problemy - na innych z kolei jest konieczne.";
+$l['setting_nocacheheaders'] = "Wysyłać nagłówki \"no-cache\"?";
+$l['setting_nocacheheaders_desc'] = "Włączenie tej opcji zapobiegnie tworzeniu kopii forum w pamięci podręcznej przeglądarek.";
+$l['setting_redirects'] = "Przyjazne użytkownikowi strony przekierowań";
+$l['setting_redirects_desc'] = "Włączenie tej opcji spowoduje wyświetlanie przyjaznych użytkownikowi stron o treści \"Teraz nastąpi przeniesienie...\" przed bezpośrednim przekierowaniem.";
+$l['setting_load'] = "Limit obciążenia serwera *NIX";
+$l['setting_load_desc'] = "Limit obciążenia serwera (server load), powyżej którego MyBB zacznie odrzucać połączenia. Wpisz 0, by nie nakładać ograniczenia. Zalecana wartość to 5.0.";
+$l['setting_tplhtmlcomments'] = "Wypisywać komentarze na początku / końcu szablonów?";
+$l['setting_tplhtmlcomments_desc'] = "WÅ‚Ä…czenie tej opcji spowoduje wypisywanie komentarzy HTML przed szablonami i po nich.";
+$l['setting_useshutdownfunc'] = "Użyj funkcji shutdown w PHP";
+$l['setting_useshutdownfunc_desc'] = "W większości przypadków powinno się zostawić tutaj domyślną wartość. Jeżeli napotkasz problemy z aktualizowaniem tagów meta, wybierz \"nie\".";
+$l['setting_extraadmininfo'] = "Zaawansowane statystyki i dane debugowania";
+$l['setting_extraadmininfo_desc'] = "Zdecyduj, czy administratorzy mają widzieć informację o obciążeniu serwera, czasie parsowania i generowania strony, kompresji GZip itd. u dołu strony.";
+$l['setting_uploadspath'] = "Ścieżka do plików wysyłanych na serwer";
+$l['setting_uploadspath_desc'] = "Ścieżka, do której wysyłane będą pliki przyjęte od użytkowników. Na serwerach *NIX ten katalog musi posiadać CHMOD 777 .";
+$l['setting_enableforumjump'] = "Wyświetlać menu \"Skocz do...\"?";
+$l['setting_enableforumjump_desc'] = "Menu \"Skocz do...\" jest wyświetlane na stronach widoku działów i wątków. Jeżeli masz sporo działów, może powodować poważne obciążenie serwera. Wybierz \"nie\", by je wyłączyć.";
+$l['setting_dateformat'] = "Format daty";
+$l['setting_dateformat_desc'] = "Format, w jakim wyświetlane będą daty na forum. Format ten korzysta ze składni funkcji date() w PHP - nie zmieniaj go, jeśli jej nie znasz.";
+$l['setting_timeformat'] = "Format czasu";
+$l['setting_timeformat_desc'] = "Format, w jakim wyświetlane będą godziny na forum. Format ten korzysta ze składni funkcji date() w PHP - nie zmieniaj go, jeśli jej nie znasz.";
+$l['setting_regdateformat'] = "Format daty rejestracji";
+$l['setting_regdateformat_desc'] = "Format, w jakim wyświetlane będą daty rejestracji użytkowników na forum. Format ten korzysta ze składni funkcji date() w PHP - nie zmieniaj go, jeśli jej nie znasz.";
+$l['setting_timezoneoffset'] = "Domyślna strefa czasowa";
+$l['setting_timezoneoffset_desc'] = "Możesz tutaj wybrać domyślną strefę czasową - dla gości oraz tych użytkowników, którzy używają domyślnych ustawień strefy czasowej.";
+$l['setting_dstcorrection'] = "Czas letni";
+$l['setting_dstcorrection_desc'] = "Jeżeli pomimo dobrze dobranej strefy czasowej, różnica w czasie między czasem ustawionym na forum a pożądanym wynosi jedną godzinę - włącz czas letni.";
+$l['setting_showdescriptions'] = "Pokazywać opisy działów?";
+$l['setting_showdescriptions_desc'] = "Możesz ukryć opisy działów na swoim forum.";
+$l['setting_subforumsindex'] = "Liczba poddziałów wyświetlanych na stronie głównej";
+$l['setting_subforumsindex_desc'] = "Liczba poddziałów, które chcesz wyświetlać na stronie głównej i stronie wyświetlania działu. Wpisz 0 by nie wyświetlać listy poddziałów.";
+$l['setting_subforumsstatusicons'] = "Pokazywać ikony statusu poddziałów?";
+$l['setting_subforumsstatusicons_desc'] = "Czy przy poddziałach mają być pokazywane ikony informujące o istnieniu nieprzeczytanych postów w danym poddziale?";
+$l['setting_hideprivateforums'] = "Ukryć działy prywatne?";
+$l['setting_hideprivateforums_desc'] = "Włączając tę opcję możesz ukryć na stronie głównej i na liście \"Skocz do...\" działy prywatne i wszystkie ich poddziały.";
+$l['setting_modlist'] = "Wyświetlanie list moderatorów działów";
+$l['setting_modlist_desc'] = "Możesz włączyć lub wyłączyć funkcję wyświetlania list moderatorów przy opisach działów na stronie głównej oraz stronie wyświetlania działu.";
+$l['setting_showbirthdays'] = "Pokazywać dzisiejsze urodziny?";
+$l['setting_showbirthdays_desc'] = "Czy chcesz, by na stronie głównej wyświetlana była lista dzisiejszych urodzin?";
+$l['setting_showwol'] = "Pokazywać \"Kto jest online\"?";
+$l['setting_showwol_desc'] = "Czy chcesz, by na stronie głównej była wyświetlana lista aktywnych w danym momencie użytkowników?";
+$l['setting_showindexstats'] = "Pokazywać sekcję statystyk?";
+$l['setting_showindexstats_desc'] = "Czy chcesz, by na stronie głównej wyświetlana była liczba wątków, postów, zarejestrowanych użytkowników oraz login ostatnio zarejestrowanego użytkownika?";
+$l['setting_threadsperpage'] = "Liczba wątków na stronę";
+$l['setting_threadsperpage_desc'] = "Liczba wątków do wyświetlenia na jednej stronie.";
+$l['setting_hottopic'] = "Wymagana liczba odpowiedzi dla \"Popularnego wÄ…tku\"";
+$l['setting_hottopic_desc'] = "Liczba odpowiedzi, po przekroczeniu której wątek zostanie uznany za \"popularny\".";
+$l['setting_hottopicviews'] = "Wymagana liczba wyświetleń dla \"Popularnego wątku\"";
+$l['setting_hottopicviews_desc'] = "Liczba wyświetleń, po przekroczeniu której wątek zostanie uznany za \"popularny\".";
+$l['setting_usertppoptions'] = "Liczba wątków na stronę - opcje dla użytkowników";
+$l['setting_usertppoptions_desc'] = "Jeżeli chcesz, by użytkownicy w swoich panelach użytkowników mogli wybrać, ile wątków chcą widzieć na jednej stronie - wpisz dostępne dla nich opcje, oddzielając je przecinkami. Jeżeli pozostawisz to pole puste, użytkownicy nie będą mogli wybrać liczby wątków na stronę.";
+$l['setting_dotfolders'] = "Użyj ikon \"z kropką\"";
+$l['setting_dotfolders_desc'] = "Czy chcesz, by ikony wątków, w których dany użytkownik brał udział, były wyróżnione?";
+$l['setting_browsingthisforum'] = "Użytkownicy przeglądający ten dział";
+$l['setting_browsingthisforum_desc'] = "Możesz tutaj wyłączyć opcję wyświetlania listy \"Użytkowników przeglądających ten dział\".";
+$l['setting_announcementlimit'] = "Limit ogłoszeń";
+$l['setting_announcementlimit_desc'] = "Liczba ogłoszeń, które mają być wyświetlane na liście wątków. Wpisz 0 by wyłączyć limit.";
+$l['setting_postsperpage'] = "Liczba postów na stronę";
+$l['setting_postsperpage_desc'] = "Liczba postów, jakie będą wyświetlane na pojedynczej stronie. Nie jest zalecana wartość większa niż 20.";
+$l['setting_userpppoptions'] = "Liczba postów na stronę - opcje dla użytkowników";
+$l['setting_userpppoptions_desc'] = "Jeżeli chcesz, by użytkownicy w swoich panelach użytkowników mogli wybrać, ile postów chcą widzieć na jednej stronie - wpisz dostępne dla nich opcje, oddzielając je przecinkami. Jeżeli pozostawisz to pole puste, użytkownicy nie będą mogli wybrać liczby postów na stronę.";
+$l['setting_threadreadcut'] = "Okres przechowywania informacji o przeczytanych wÄ…tkach";
+$l['setting_threadreadcut_desc'] = "Liczba dni przechowywania informacji o wątkach przeczytanych przez użytkownika. Na dużych forach wysoka wartość może powodować problemy z wydajnością. Wpisz 0, by nie ustalać limitu.";
+$l['setting_threadusenetstyle'] = "Wyświetlanie wątków w stylu grupy dyskusyjnej";
+$l['setting_threadusenetstyle_desc'] = "Wybierz \"tak\" jeżeli chcesz, by wątki były wyświetlane w formie podobnej do grup dyskusyjnych.";
+$l['setting_quickreply'] = "Wyświetlanie formularza szybkiej odpowiedzi";
+$l['setting_quickreply_desc'] = "Możesz tutaj wyłączyć opcję wyświetlania formularza \"szybkiej odpowiedzi\" u dołu strony wątku.";
+$l['setting_multiquote'] = "Wyświetlanie przycisków szybkiego cytowania";
+$l['setting_multiquote_desc'] = "Przyciski szybkiego cytowania pozwalają na wybranie kilku postów, jakie chcą jednocześnie zacytować w swojej odpowiedzi.";
+$l['setting_showsimilarthreads'] = "Pokazywać tabelę \"Podobne wątki\"?";
+$l['setting_showsimilarthreads_desc'] = "Tabela \"Podobne wątki\" przedstawia listę wątków podobnych do aktualnie przeglądanego. Możesz poniżej wybrać stopień podobieństwa.";
+$l['setting_browsingthisthread'] = "Użytkownicy przeglądający ten wątek";
+$l['setting_browsingthisthread_desc'] = "Możesz tutaj wyłączyć opcję wyświetlania listy \"Użytkowników przeglądających ten wątek\".";
+
+$l['setting_similarityrating'] = "Stopień podobieństwa \"Podobnych wątków\"";
+$l['setting_similarityrating_desc'] = "Możesz tutaj ustalić limit stopnia podobieństwa, który będzie decydował o wyświetlaniu wątków na liście \"Podobnych wątków\". Liczba ta nie powinna być większa niż 10, a dla dużych forów nie powinna być mniejsza niż 5.";
+$l['setting_similarlimit'] = "Limit liczby \"Podobnych wątków\".";
+$l['setting_similarlimit_desc'] = "Możesz tutaj ustalić maksymalną liczbę wątków wyświetlanych na liście \"Podobnych wątków\". Liczba ta nie powinna przekroczyć 15 na każde 56 tys. użytkowników.";
+$l['setting_disableregs'] = "Zablokować rejestracje?";
+$l['setting_disableregs_desc'] = "Możesz tutaj całkowicie wyłączyć możliwość rejestracji na swoim forum.";
+$l['setting_regtype'] = "Metoda aktywacji";
+$l['setting_regtype_desc'] = "Wybierz metodę, jaka ma być zastosowana do aktywacji użytkowników na forum.";
+$l['setting_minnamelength'] = "Minimalna długość loginu";
+$l['setting_minnamelength_desc'] = "Minimalna liczba znaków w loginie.";
+$l['setting_maxnamelength'] = "Maksymalna długość loginu";
+$l['setting_maxnamelength_desc'] = "Maksymalna liczba znaków w loginie.";
+$l['setting_minpasswordlength'] = "Minimalna długość hasła";
+$l['setting_minpasswordlength_desc'] = "Minimalna liczba znaków w haśle użytkownika.";
+$l['setting_requirecomplexpasswords'] = "Wymagać skomplikowanych haseł?";
+$l['setting_requirecomplexpasswords_desc'] = "Czy chcesz, by od użytkowników było wymagane użycie skomplikowanego hasła?";
+$l['setting_maxpasswordlength'] = "Maksymalna długość hasła";
+$l['setting_maxpasswordlength_desc'] = "Maksymalna liczba znaków w haśle użytkownika.";
+$l['setting_customtitlemaxlength'] = "Maksymalna długość własnego tytułu użytkownika";
+$l['setting_customtitlemaxlength_desc'] = "Maksymalna liczba znaków we własnym tytule użytkownika.";
+$l['setting_betweenregstime'] = "Czas pomiędzy rejestracjami";
+$l['setting_betweenregstime_desc'] = "Czas (w godzinach), jaki musi upłynąć pomiędzy dwoma rejestracjami z tego samego adresu IP.";
+$l['setting_maxregsbetweentime'] = "Maksymalna liczba rejestracji na jeden adres IP";
+$l['setting_failedcaptchalogincount'] = "Maksymalna liczba nieudanych prób logowania przed weryfikacją";
+$l['setting_failedcaptchalogincount_desc'] = "Podaj po ilu nieudanych próbach zalogowania użytkownik będzie musiał przepisać kod CAPTCHA. Wpisz 0, aby wyłączyć ograniczenie.";
+$l['setting_maxregsbetweentime_desc'] = "Ta opcja pozwala na ustawienie maksymalnej liczby rejestracji, jakie użytkownicy mogą wykonać przy użyciu jednego adresu IP.";
+$l['setting_failedlogincount'] = "Maksymalna liczba nieudanych prób logowania";
+$l['setting_failedlogincount_desc'] = "Maksymalna liczba nieudanych prób zalogowania. Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_failedlogintime'] = "Czas pomiędzy nieudanymi próbami zalogowania";
+$l['setting_failedlogintime_desc'] = "Czas (w minutach) jaki trzeba będzie odczekać przed ponowną próbą zalogowania po wykorzystaniu powyższego limitu.";
+$l['setting_failedlogintext'] = "Wyświetlać liczbę nieudanych prób logowania?";
+$l['setting_failedlogintext_desc'] = "Czy chcesz, by po nieudanej próbie logowania wyświetlana była informacja o liczbie pozostałych prób?";
+$l['setting_usereferrals'] = "Używać systemu polecających?";
+$l['setting_usereferrals_desc'] = "Czy chcesz, by na forum był używany system osób polecających?";
+$l['setting_sigmycode'] = "Włączyć myCode w sygnaturkach?";
+$l['setting_sigmycode_desc'] = "Czy chcesz, by użytkownicy mogli używać myCode w sygnaturkach?";
+$l['setting_maxsigimages'] = "Maksymalna liczba obrazków w sygnaturze";
+$l['setting_maxsigimages_desc'] = "Podaj maksymalną liczbę obrazków (w tym emotikonów), jakie będzie można wstawić w sygnaturce. Wpisz 0, by całkowicie zabronić wstawiania obrazków.";
+$l['setting_sigsmilies'] = "Włączyć emotikony w sygnaturach?";
+$l['setting_sigsmilies_desc'] = "Czy chcesz, by użytkownicy w sygnaturach mogli używać emotikonów?";
+$l['setting_sightml'] = "Włączyć HTML w sygnaturach?";
+$l['setting_sightml_desc'] = "Czy chcesz, by użytkownicy w sygnaturach mogli używać kodu HTML?";
+$l['setting_sigimgcode'] = "Włączyć tag [img] w sygnaturach?";
+$l['setting_sigimgcode_desc'] = "Czy chcesz, by użytkownicy w sygnaturach mogli używać tagu [img]?";
+$l['setting_siglength'] = "Limit długości sygnatury";
+$l['setting_siglength_desc'] = "Maksymalna liczba znaków w sygnaturze.";
+$l['setting_sigcountmycode'] = "Czy zaliczać myCode do długości sygnatury?";
+$l['setting_sigcountmycode_desc'] = "Czy chcesz, by myCode był wliczany do długości sygnatury?";
+$l['setting_maxavatardims'] = "Maksymalne wymiary awatara";
+$l['setting_maxavatardims_desc'] = "Maksymalne wymiary, jakie może posiadać awatar, w formacie szerokośćx wysokość. Jeżeli to pole pozostanie puste - na wymiary awatara nie będzie nałożone żadne ograniczenie.";
+$l['setting_avatarsize'] = "Maksymalny rozmiar wysyłanego na serwer awatara";
+$l['setting_avatarsize_desc'] = "Maksymalny rozmiar pliku (w kilobajtach) z wysyłanym na serwer awatarem.";
+$l['setting_avatardir'] = "Katalog awatarów";
+$l['setting_avatardir_desc'] = "Ścieżka do katalogu, w którym przechowywane są domyślne awatary. Są one wyświetlane na liście awatarów w panelu użytkownika.";
+$l['setting_avataruploadpath'] = "Katalog wysyłanych na serwer awatarów";
+$l['setting_avataruploadpath_desc'] = "Ścieżka do katalogu, w którym przechowywane są awatary wysyłane na serwer. Ten katalog musi posiadać CHMOD 777 , żeby awatary mogły być przyjmowane od użytkowników.";
+$l['setting_emailkeep'] = "Utrzymywanie adresu e-mail";
+$l['setting_emailkeep_desc'] = "Jeżeli użytkownik zarejestrował się na dany adres e-mail przed decyzją o zbanowaniu tego adresu, to czy może pozostać przy swoim dotychczasowym adresie?";
+$l['setting_minmessagelength'] = "Minimalna długość posta";
+$l['setting_minmessagelength_desc'] = "Minimalna liczba znaków w jednym poście.";
+$l['setting_maxmessagelength'] = "Maksymalna długość posta";
+$l['setting_maxmessagelength_desc'] = "Maksymalna liczba znaków w jednym poście. Wpisz 0, by nie nakładać ograniczenia.";
+$l['setting_maxposts'] = "Maksymalna liczba postów na dzień";
+$l['setting_maxposts_desc'] = "Maksymalna liczba postów na użytkownika dziennie. Wpisz 0, by nie nakładać ograniczenia.";
+$l['setting_postfloodcheck'] = "Zabezpieczenie przed floodowaniem";
+$l['setting_postfloodcheck_desc'] = "Włącz, jeżeli chcesz uaktywnić zabezpieczenie przed masowym wysyłaniem postów.";
+$l['setting_postfloodsecs'] = "Czas zabezpieczenia przed floodowaniem";
+$l['setting_postfloodsecs_desc'] = "Podaj liczbę sekund, jaką użytkownicy będą musieli odczekać pomiędzy napisaniem dwóch postów; upewnij się, że zabezpieczenie jest włączone (opcja powyżej).";
+$l['setting_logip'] = "Zapisywać adresy IP postujących?";
+$l['setting_logip_desc'] = "Czy chcesz, aby adresy IP użytkowników były zapisywane w bazie danych przy ich postach? Jeżeli tak, to wybierz, kto będzie miał do nich dostęp.";
+$l['setting_showeditedby'] = "Pokazywać notatkę \"Edytowane przez\"?";
+$l['setting_showeditedby_desc'] = "Czy po edycji posta ma być do niego doklejana informacja o tym, kto i kiedy wykonał tę operację?";
+$l['setting_showeditedbyadmin'] = "Pokazywać notatkę \"Edytowane przez\" po edycji postów przez osoby zarządzające forum?";
+$l['setting_showeditedbyadmin_desc'] = "Czy po edycji posta przez osobę zarządzającą forum (administratora, moderatora) ma być do niego doklejana informacja o tym, kto i kiedy wykonał tę operację?";
+$l['setting_maxpostimages'] = "Maksymalna liczba obrazków w poście";
+$l['setting_maxpostimages_desc'] = "Podaj maksymalną liczbę obrazków (w tym emotikonów) możliwą do dołączenia do posta. Wpisz 0, by nie nakładać takiego ograniczenia.";
+$l['setting_maxpostvideos'] = "Maksymalna liczba plików wideo w poście";
+$l['setting_maxpostvideos_desc'] = "Podaj maksymalną liczbę plików wideo możliwą do dołączenia do posta. Wpisz 0, by nie nakładać takiego ograniczenia.";
+$l['setting_subscribeexcerpt'] = "Liczba znaków w podglądzie posta w subskrypcji";
+$l['setting_subscribeexcerpt_desc'] = "Ile pierwszych znaków z posta ma być dołączonych w e-mailu informującym o odpowiedzi?";
+$l['setting_maxattachments'] = "Maksymalna liczba załączników do posta";
+$l['setting_maxattachments_desc'] = "Maksymalna liczba plików, jakie można dołączyć do pojedynczego posta.";
+$l['setting_attachthumbnails'] = "Pokazywać miniaturki załączników w postach?";
+$l['setting_attachthumbnails_desc'] = "Czy chcesz, by w postach wyświetlane były miniaturki załączonych obrazków?";
+$l['setting_attachthumbh'] = "Maksymalna wysokość miniaturki";
+$l['setting_attachthumbh_desc'] = "Podaj wysokość, jaką mają mieć miniaturki załączonych obrazków.";
+$l['setting_attachthumbw'] = "Maksymalna szerokość miniaturki";
+$l['setting_attachthumbw_desc'] = "Podaj szerokość, jaką mają mieć miniaturki załączonych obrazków.";
+$l['setting_edittimelimit'] = "Limit czasu edycji";
+$l['setting_edittimelimit_desc'] = "Liczba minut, po jakich użytkownicy przestaną mieć możliwość edycji swoich postów. Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_wordwrap'] = "Maksymalna liczba znaków w słowie";
+$l['setting_wordwrap_desc'] = "Maksymalna liczba znaków, jakie może zawierać pojedyncze słowo (jeśli zostanie przekroczona, słowo zostanie automatycznie podzielone, co pomoże zapobiec błędnemu wyświetlaniu layoutu strony. Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_polloptionlimit'] = "Maksymalna długość odpowiedzi w ankiecie";
+$l['setting_polloptionlimit_desc'] = "Maksymalna długość pojedynczej odpowiedzi w ankiecie (w znakach). Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_maxpolloptions'] = "Maksymalna liczba odpowiedzi w ankiecie";
+$l['setting_maxpolloptions_desc'] = "Maksymalna liczba odpowiedzi jakie użytkownik może zaproponować w ankiecie.";
+$l['setting_enablememberlist'] = "Włącz wyświetlanie listy użytkowników";
+$l['setting_enablememberlist_desc'] = "Jeśli nie chcesz, by forum posiadało stronę z listą zarejestrowanych użytkowników, ustaw tę opcję na \"nie\".";
+$l['setting_membersperpage'] = "Liczba użytkowników na stronę";
+$l['setting_membersperpage_desc'] = "Liczba użytkowników pokazywanych na pojedynczej stronie listy.";
+$l['setting_default_memberlist_sortby'] = "Domyślnie sortuj wg...";
+$l['setting_default_memberlist_sortby_desc'] = "Pole, według którego lista będzie domyślnie sortowana.";
+$l['setting_default_memberlist_order'] = "Domyślny porządek sortowania";
+$l['setting_default_memberlist_order_desc'] = "Wybierz porządek, w jakim sortowane mają być dane (domyślnie).";
+$l['setting_enablereputation'] = "Włączyć system reputacji?";
+$l['setting_enablereputation_desc'] = "Jeśli chcesz zdezaktywować system reputacji na swoim forum, wybierz \"nie\".";
+$l['setting_negrep'] = "Zezwalać na negatywne punkty reputacji?";
+$l['setting_negrep_desc'] = "Jeśli nie chcesz, aby użytkownicy mogli przyznawać negatywne punkty reputacji na swoim forum, wybierz \"nie\".";
+$l['setting_multirep'] = "Zezwalać na wielokrotne przyznawanie punktów reputacji?";
+$l['setting_multirep_desc'] = "Jeśli nie chcesz, aby dany użytkownik mógł przyznać temu samemu użytkownikowi kilka punktów reputacji na swoim forum, wybierz \"nie\".";
+$l['setting_postrep'] = "Zezwalać na przyznawanie punktów reputacji za posty?";
+$l['setting_postrep_desc'] = "Jeśli nie chcesz, aby użytkownicy mogli przyznawać punkty reputacji za posty, wybierz \"nie\".";
+
+$l['setting_repsperpage'] = "Liczba ocen reputacji na stronÄ™";
+$l['setting_repsperpage_desc'] = "Podaj liczbę ocen reputacji, jakie mają być wyświetlane na pojedynczej stronie listy.";
+$l['setting_maxreplength'] = "Maksymalna długość opisu punktu reputacji";
+$l['setting_maxreplength_desc'] = "Maksymalna liczba znaków, jaka może zostać użyta w opisie punktu reputacji.";
+
+$l['setting_showteamleaders'] = "Wyróżnij liderów grup";
+$l['setting_showteamleaders_desc'] = "Jeżeli wybierzesz \"tak\", a grupy posiadają swoich liderów, zostaną oni wyświetleni ponad resztą członków grupy.";
+$l['setting_enablepms'] = "Umożliwić przesyłanie prywatnych wiadomości?";
+$l['setting_enablepms_desc'] = "Jeśli chcesz wyłączyć system prywatnych wiadomości na swoim forum, wybierz opcję \"nie\".";
+$l['setting_pmsallowhtml'] = "Zezwolić na HTML?";
+$l['setting_pmsallowhtml_desc'] = "Wybierz \"tak\", jeśli chcesz zezwolić na użycie HTML w prywatnych wiadomościach.";
+$l['setting_allowbuddyonly'] = "Zezwolić na wysyłanie wiadomości tylko do znajomych na liście kontaktów?";
+$l['setting_allowbuddyonly_desc'] = "Czy użytkownicy mają mieć możliwość wysyłania wiadomości tylko do osób, które znajdują się na ich liście znajomych?";
+$l['setting_pmsallowmycode'] = "Zezwolić na MyCode?";
+$l['setting_pmsallowmycode_desc'] = "Wybierz \"tak\", jeśli chcesz zezwolić na użycie MyCode w prywatnych wiadomościach.";
+$l['setting_pmsallowsmilies'] = "Zezwolić na emotikony?";
+$l['setting_pmsallowsmilies_desc'] = "Wybierz \"tak\", jeśli chcesz zezwolić na użycie emotikonów w prywatnych wiadomościach.";
+$l['setting_pmsallowimgcode'] = "Zezwolić na użycie kodu [img]? ";
+$l['setting_pmsallowimgcode_desc'] = "Wybierz \"tak\", jeśli chcesz zezwolić na użycie kodu [img] w prywatnych wiadomościach.";
+$l['setting_pmsallowvideocode'] = "Zezwolić na użycie kodu [video]? ";
+$l['setting_pmsallowvideocode_desc'] = "Wybierz \"tak\", jeśli chcesz zezwolić na użycie kodu [video] w prywatnych wiadomościach.";
+$l['setting_pmfloodsecs'] = "Czas zabezpieczenia przed floodowaniem";
+$l['setting_pmfloodsecs_desc'] = "Podaj liczbę sekund, jaką użytkownicy będą musieli odczekać pomiędzy napisaniem kolejnych prywatnych wiadomości; upewnij się, że zabezpieczenie jest włączone (opcja powyżej).";
+$l['setting_logip'] = "Zapisywać adresy IP postujących?";
+$l['setting_enablecalendar'] = "Kalendarz włączony?";
+$l['setting_enablecalendar_desc'] = "Jeżeli chcesz wyłączyć Kalendarz na swoim forum, wybierz \"Nie\".";
+$l['setting_wolcutoffmins'] = "Maksymalny czas bezczynności (w minutach)";
+$l['setting_wolcutoffmins_desc'] = "Liczba minut, w których użytkownik powinien wykonać jakąś akcję, zanim zostanie uznany za nieobecnego. Zalecana wartość: 15.";
+$l['setting_refreshwol'] = "Czas odświeżenia strony \"Kto jest online\"?";
+$l['setting_refreshwol_desc'] = "Podaj liczbę minut, po której strona \"Kto jest online\" będzie automatycznie odświeżana. Wpisz 0, jeśli chcesz wyłączyć automatyczne odświeżanie.";
+$l['setting_portal_announcementsfid'] = "Działy z ogłoszeniami";
+$l['setting_portal_announcementsfid_desc'] = "Wybierz działy, których wątki będą wyświetlane jako ogłoszenia.";
+$l['setting_portal_numannouncements'] = "Liczba ogłoszeń do wyświetlenia";
+$l['setting_portal_numannouncements_desc'] = "Podaj liczbę ogłoszeń, jakie będą wyświetlane na stronie głównej.";
+$l['setting_portal_showwelcome'] = "Pokazywać okno z powitaniem?";
+$l['setting_portal_showwelcome_desc'] = "Czy chcesz, by wyświetlane było okno z powitaniem?";
+$l['setting_portal_showpms'] = "Pokazywać użytkownikom liczbę PW?";
+$l['setting_portal_showpms_desc'] = "Czy chcesz, by wyświetlana była liczba prywatnych wiadomości, jakie użytkownik ma w swojej skrzynce?";
+$l['setting_portal_showstats'] = "Pokazywać statystyki forum?";
+$l['setting_portal_showstats_desc'] = "Czy chcesz, by na stronie portalu wyświetlane były: liczba postów, wątków, użytkowników oraz login ostatnio zarejestrowanego użytkownika?";
+$l['setting_portal_showwol'] = "Pokazywać \"Kto jest online\"?";
+$l['setting_portal_showwol_desc'] = "Czy chcesz, by na stronie portalu wyświetlany był panel \"Kto jest online\"?";
+$l['setting_portal_showsearch'] = "Pokazywać panel wyszukiwania?";
+$l['setting_portal_showsearch_desc'] = "Czy chcesz, by wyświetlany był panel wyszukiwania, dzięki któremu użytkownicy będą mogli szybko znaleźć potrzebne im wiadomości na forum?";
+$l['setting_portal_showdiscussions'] = "Pokazywać listę ostatnich dyskusji?";
+$l['setting_portal_showdiscussions_desc'] = "Czy chcesz, by na stronie portalu wyświetlana była lista ostatnio aktywnych wątków?";
+$l['setting_portal_showdiscussionsnum'] = "Liczba ostatnich dyskusji do wyświetlenia";
+$l['setting_portal_showdiscussionsnum_desc'] = "Wpisz liczbę ostatnio aktywnych wątków, jakie mają być wyświetlone na stronie portalu.";
+$l['setting_searchtype'] = "Sposób wyszukiwania";
+$l['setting_searchtype_desc'] = "Wybierz sposób wyszukiwania, którego chcesz używać. W zależności od typu bazy, możesz wybrać opcje \"Standard\", i \"Full Text\". Wyszukiwanie \"Full Text\" jest wydajniejsze i wygodniejsze od standardowego.";
+$l['setting_searchfloodtime'] = "Czas kontroli floodowania (w sekundach)";
+$l['setting_searchfloodtime_desc'] = "Wpisz czas w sekundach, jaki musi upłynąć pomiędzy dwiema akcjami wyszukiwania przeprowadzonymi przez tego samego użytkownika. Pozwoli to zapobiec próbom przeciążenia serwera przez nieustanne próby wyszukiwania. Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_minsearchword'] = "Minimalna długość słowa";
+$l['setting_minsearchword_desc'] = "Wpisz minimalną liczbę znaków w słowie zawartym w wyszukiwanej frazie. Wpisz 0, by wyłączyć limit (i wybrać limit trzech znaków przy wyszukiwaniu sposobem standardowym lub czterech przy wyszukiwaniu \"Full Text\"). Jeżeli podasz limit mniejszy niż 4 znaki, a używasz sposobu \"Full Text\", twój wybór zostanie nadpisany przez 4.";
+$l['setting_maxquotedepth'] = "Maksymalna liczba zagnieżdżonych cytatów";
+$l['setting_maxquotedepth_desc'] = "Maksymalna liczba tagów [quote] w jednym poście. Jeżeli post zawiera ich więcej, niż wpisana liczba w tym ustawieniu, zostaną one usunięte automatycznie. Ustawienie to działa tylko po naciśnięciu przycisku \"Cytuj\" w widoku wątku i nie wpływa na napisane już posty. Użytkownik może ominąć to ograniczenie poprzez ręczne wpisanie tagów [quote]. Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_searchhardlimit'] = "Maksymalna liczba wyników wyszukiwania";
+$l['setting_searchhardlimit_desc'] = "Podaj maksymalną liczbę wyników wyszukiwania. Wpisz 0, by nie ustalać takiego ograniczenia. Na dużych forach (powyżej 1 mln postów) wartość ta nie powinna przekroczyć 1000.";
+$l['setting_smilieinserter'] = "Pole wstawiania emotikonów";
+$l['setting_smilieinserter_desc'] = "Jeżeli ta opcja będzie włączona, w czasie pisania postów wyświetlane będzie pole, z którego będzie można wybierać emotikony.";
+$l['setting_smilieinsertertot'] = "Liczba wyświetlanych emotikonów";
+$l['setting_smilieinsertertot_desc'] = "Podaj liczbę emotikonów, jakie mają być wyświetlane w opisywanym wyżej polu.";
+$l['setting_smilieinsertercols'] = "Liczba kolumn z emotikonami";
+$l['setting_smilieinsertercols_desc'] = "Podaj liczbę kolumn, w jakie mają być pogrupowane emotikony.";
+$l['setting_cplanguage'] = "Język panelu administratora";
+$l['setting_cplanguage_desc'] = "Język panelu administratora.";
+$l['setting_cpstyle'] = "Styl panelu administratora";
+$l['setting_cpstyle_desc'] = "Domyślny styl używany przez panel administratora. Style znajdują się w katalogu styles . Nazwa katalogu ze stylem jest jednocześnie nazwą stylu, a plik style.css jest plikiem z jego stylami CSS.";
+$l['setting_maxloginattempts'] = "Maksymalna liczba nieudanych prób logowania";
+$l['setting_maxloginattempts_desc'] = "Maksymalna liczba nieudanych prób logowania przed zablokowaniem konta administratora. Wpisz 0, by nie ustalać ograniczenia.";
+$l['setting_loginattemptstimeout'] = "Czas pomiędzy nieudanymi próbami zalogowania";
+$l['setting_loginattemptstimeout_desc'] = "Czas (w minutach) jaki trzeba będzie odczekać przed ponowną próbą zalogowania po wykorzystaniu powyższego limitu.";
+
+$l['setting_group_warning'] = "Ustawienia systemu ostrzeżeń";
+$l['setting_group_warning_desc'] = "System ostrzeżeń pozwala na karanie użytkowników nieprzestrzegających zasad panujących na forum. Możesz tu dostosowywać jego ustawienia do swoich potrzeb.";
+$l['setting_group_mailsettings'] = "Ustawienia poczty e-mail";
+$l['setting_group_mailsettings_desc'] = "W tej sekcji masz możliwość zarządzania systemem mailingu w MyBB, zarówno obsługiwanym przez funkcję mail PHP, jak i przez zewnętrzny serwer SMTP.";
+$l['setting_returnemail'] = "Adres zwrotny";
+$l['setting_returnemail_desc'] = "Adres zwrotny dla e-maili wysyłanych za pośrednictwem systemu forum. Pozostaw to pole puste, by użyć adresu e-mail administratora.";
+$l['setting_cookieprefix'] = "Prefiks cookies";
+$l['setting_cookieprefix_desc'] = "Prefiks dla wszystkich cookies związanych z MyBB. Przydatny, jeżeli chcesz zainstalować więcej niż jedną kopię systemu MyBB w tej samej domenie, albo posiadasz inne oprogramowanie, które używa takich samych nazw cookies. Jeżeli pozostawisz to pole puste, prefiks nie będzie używany.";
+$l['setting_reportmethod_db'] = "Przechowuj w bazie danych";
+$l['setting_reportmethod_pms'] = "Wysyłaj jako prywatne wiadomości";
+$l['setting_reportmethod_email'] = "Wysyłaj jako e-mail";
+$l['setting_showlanguageselect'] = "Pokazywać pole wyboru języka w stopce?";
+$l['setting_showlanguageselect_desc'] = "Wybierz \"Nie\" jeśli nie chcesz, by w stopce forum wyświetlane było pole szybkiej zmiany wersji językowej.";
+$l['setting_maxmultipagelinks'] = "Maksymalna liczba linków przy stronicowaniu";
+$l['setting_maxmultipagelinks_desc'] = "Możesz podać maksymalną liczbę linków do wcześniejszych i dalszych stron w przypadku wyświetlania danych z podziałem na strony.";
+$l['setting_mailingaddress'] = "Adres do korespondencji";
+$l['setting_mailingaddress_desc'] = "Jeżeli posiadasz adres do korespondencji, podaj go tutaj. Będzie on wyświetlany w formularzu COPAA.";
+$l['setting_faxno'] = "Numer FAX";
+$l['setting_faxno_desc'] = "Jeżeli posiadasz FAX, podaj tutaj jego numer. Będzie on wyświetlany w formularzu COPAA.";
+$l['setting_seourls'] = "Włączyć linki przyjazne wyszukiwarkom?";
+$l['setting_seourls_desc'] = "Linki przyjazne wyszukiwarkom to krótsze adresy poszczególnych stron należących do forum - dzięki temu wyszukiwarki lepiej je indeksują, a użytkownicy mogą łatwiej dostać się do ulubionych wątków wpisując ręcznie ich adresy. Na przykład, zamiast wpisywać \"showthread.php?tid=1\" można będzie napisać po prostu \"thread1.html\". Aktywując tę opcję musisz pamiętać o wgraniu pliku .htaccess z paczki MyBB do katalogu forum na swoim serwerze. Pamiętaj też, że automatyczne wykrywanie tej opcji może być zawodne na niektórych serwerach. Odwiedź MyBB Wiki , by dowiedzieć się więcej.";
+$l['setting_seourls_auto'] = "Wykryj automatycznie";
+$l['setting_seourls_yes'] = "WÅ‚Ä…cz";
+$l['setting_seourls_no'] = "Wyłącz";
+$l['setting_use_xmlhttprequest'] = "Włączyć funkcje związane z XMLHttp?";
+$l['setting_use_xmlhttprequest_desc'] = "Możesz włączyć lub wyłączyć funkcje forum wymagające XMLHttp.";
+$l['setting_useerrorhandling'] = "Korzystaj z wbudowanego systemu obsługi błędów";
+$l['setting_useerrorhandling_desc'] = "Jeżeli nie chcesz korzystać z wbudowanego w MyBB systemu obsługi błędów, możesz go tutaj wyłączyć. Zaleca się jednak pozostawienie tej opcji włączonej.";
+$l['setting_errorlogmedium'] = "Sposób zapisywania informacji o błędach";
+$l['setting_errorlogmedium_desc'] = "Sposób, w jaki przechowywane będą informacje o błędach.";
+$l['setting_errorlogmedium_none'] = "Brak";
+$l['setting_errorlogmedium_log'] = "Zapisuj logi";
+$l['setting_errorlogmedium_email'] = "Wysyłaj e-maile";
+$l['setting_errorlogmedium_both'] = "Zapisuj logi i wysyłaj e-maile";
+$l['setting_errortypemedium'] = "Typy błędów";
+$l['setting_errortypemedium_desc'] = "Typy obsługiwanych błędów.";
+$l['setting_errortypemedium_warning'] = "Ostrzeżenia (warnings)";
+$l['setting_errortypemedium_error'] = "Błędy (errors)";
+$l['setting_errortypemedium_both'] = "Ostrzeżenia i błędy";
+$l['setting_errortypemedium_none'] = "Ukryj błędy i ostrzeżenia";
+$l['setting_errorloglocation'] = "Miejsce logowania błędów";
+$l['setting_errorloglocation_desc'] = "Ścieżka do pliku, w którym zapisywane będą logi błędów.";
+$l['setting_showforumviewing'] = "Wyświetlać liczbę przeglądających dział?";
+$l['setting_showforumviewing_desc'] = "Wyświetla liczbę użytkowników przeglądających każdy dział w danym momencie.";
+$l['setting_postlayout'] = "Układ posta";
+$l['setting_postlayout_desc'] = "Pozwala na wybór pomiędzy układem poziomym a klasycznym. W układzie klasycznym informacje o autorze posta wyświetlane są po lewej stronie treści, w układzie poziomym - wyświetlane są poziomo, nad treścią posta.";
+$l['setting_postlayout_horizontal'] = "Wyświetlaj posty w układzie poziomym";
+$l['setting_postlayout_classic'] = "Wyświetlaj posty w układzie klasycznym";
+$l['setting_postmaxavatarsize'] = "Maksymalne wymiary awatara przy postach";
+$l['setting_postmaxavatarsize_desc'] = "Maksymalne wymiary awatara wyświetlanego przy postach. Jeżeli awatar będzie zbyt duży, zostanie automatycznie pomniejszony.";
+$l['setting_delayedthreadviews'] = "Opóźniona aktualizacja licznika wyświetleń";
+$l['setting_delayedthreadviews_desc'] = "Jeżeli ta opcja będzie aktywna, liczba wyświetleń wątku będzie aktualizowana w tle przez system zaplanowanych zadań. Jeżeli nie, liczba będzie zwiększana natychmiast po wyświetlaniu.";
+$l['setting_regtype_instant'] = "Natychmiastowa aktywacja";
+$l['setting_regtype_verify'] = "Weryfikacja e-mail";
+$l['setting_regtype_randompass'] = "Wyślij losowe hasło";
+$l['setting_regtype_admin'] = "Aktywacja przez administratora";
+$l['setting_regtype_both'] = "Aktywacja zarówno poprzez weryfikację e-mail, jak i administratora";
+$l['setting_allowmultipleemails'] = "Dopuszczać kilkakrotne rejestrowanie tych samych e-maili?";
+$l['setting_allowmultipleemails_desc'] = "Wybierz \"Tak\" jeżeli chcesz, by użytkownicy mogli wielokrotnie rejestrować ten sam adres e-mail.";
+$l['setting_avatarresizing'] = "Sposób przeskalowywania awatarów";
+$l['setting_avatarresizing_desc'] = "Wybierz, czy chcesz, by zbyt duże awatary były pomniejszane automatycznie, za zgodą użytkowników, albo wcale.";
+$l['setting_avatarresizing_auto'] = "Automatycznie pomniejszaj";
+$l['setting_avatarresizing_user'] = "Pytaj użytkownika";
+$l['setting_avatarresizing_disabled'] = "Wyłącz tę opcję";
+$l['setting_coppa'] = "COPPA";
+$l['setting_coppa_desc'] = "Jeżeli chcesz włączyć obsługę COPPA na swoim forum, wybierz ustawienia poniżej.";
+$l['setting_coppa_enabled'] = "Włączone - weryfikuj użytkowników poniżej 13 roku życia";
+$l['setting_coppa_deny'] = "Zabroń rejestracji użytkownikom poniżej 13 roku życia";
+$l['setting_coppa_disabled'] = "Wyłącz tę opcję";
+$l['setting_allowaway'] = "Zezwolić na status \"Niedostępny\"?";
+$l['setting_allowaway_desc'] = "Czy użytkownicy mają mieć możliwość ustawiania sobie statusu \"Niedostępny\" wraz z możliwością podania powodu nieobecności i datą powrotu?";
+$l['setting_postmergemins'] = "Czas łączenia postów";
+$l['setting_postmergemins_desc'] = "Jeżeli ta opcja jest włączona, posty napisane w ciągu danej liczby minut przez tego samego użytkownika w tym samym wątku będą automatycznie łączone. Podaj limit czasu (w minutach) przez jaki ta opcja ma być aktywna. Podaj 0 lub pozostaw to pole puste, by wyłączyć tę opcję. Domyślnie: 60";
+$l['setting_postmergefignore'] = "Działy bez łączenia postów";
+$l['setting_postmergefignore_desc'] = "Działy, oddzielone przecinkiem, w których nie będzie działać opcja automatycznego łączenia postów. W przypadku braku takich działów pozostaw to pole puste.";
+$l['setting_postmergeuignore'] = "Grupy użytkowników bez łączenia postów";
+$l['setting_postmergeuignore_desc'] = "Grupy użytkowników, oddzielone przecinkiem, dla których nie będzie działać opcja automatycznego łączenia postów. W przypadku braku takich grup pozostaw to pole puste.";
+$l['setting_postmergesep'] = "Separator połączonych postów";
+$l['setting_postmergesep_desc'] = "Separator oddzielający połączone posty. Domyślnie: \"[hr]\"";
+$l['setting_logip_no'] = "Nie zapisuj IP";
+$l['setting_logip_hide'] = "Pokazuj moderatorom i administratorom";
+$l['setting_logip_show'] = "Pokazuj wszystkim użytkownikom";
+$l['setting_attachthumbnails_yes'] = "Miniaturki";
+$l['setting_attachthumbnails_no'] = "Obrazki pełnych rozmiarów";
+$l['setting_attachthumbnails_download'] = "Linki do obrazków";
+$l['setting_threadreview'] = "Wyświetlać podgląd tematu?";
+$l['setting_threadreview_desc'] = "Wyświetlać ostatnie posty podczas redagowania nowej odpowiedzi?";
+$l['setting_default_memberlist_sortby_regdate'] = "Daty rejestracji";
+$l['setting_default_memberlist_sortby_postnum'] = "Liczby postów";
+$l['setting_default_memberlist_sortby_username'] = "Loginu";
+$l['setting_default_memberlist_sortby_lastvisit'] = "Ostatniej wizyty";
+$l['setting_default_memberlist_order_ascending'] = "RosnÄ…co";
+$l['setting_default_memberlist_order_descending'] = "MalejÄ…co";
+$l['setting_memberlistmaxavatarsize'] = "Maksymalne rozmiary awatara na liście użytkowników";
+$l['setting_memberlistmaxavatarsize_desc'] = "Maksymalne rozmiary awatara wyświetlanego na liście użytkowników. Jeżeli awatar będzie zbyt duży, zostanie automatycznie przeskalowany.";
+$l['setting_enablewarningsystem'] = "Włączyć system ostrzeżeń?";
+$l['setting_enablewarningsystem_desc'] = "Wybierz \"Nie\" by całkowicie wyłączyć system ostrzeżeń.";
+$l['setting_allowcustomwarnings'] = "Zezwolić na podawanie własnych typów ostrzeżeń?";
+$l['setting_allowcustomwarnings_desc'] = "Czy moderatorzy mają mieć możliwość podawania własnych powodów i liczby punktów ostrzeżenia?";
+$l['setting_canviewownwarning'] = "Czy użytkownicy mogą przeglądać własne ostrzeżenia?";
+$l['setting_canviewownwarning_desc'] = "Wybierz \"Tak\" jeśli chcesz, by użytkownicy mogli przeglądać otrzymane ostrzeżenia w swoich panelach użytkowników oraz widzieć aktualny poziom ostrzeżeń w swoim profilu.";
+$l['setting_maxwarningpoints'] = "Maksymalna liczba punktów ostrzeżeń";
+$l['setting_maxwarningpoints_desc'] = "Maksymalna liczba punktów ostrzeżeń, jaką użytkownik może otrzymać nim jego poziom ostrzeżenia osiągnie 100%.";
+$l['setting_searchtype_standard'] = "Standard";
+$l['setting_searchtype_fulltext'] = "Full Text";
+$l['setting_bbcodeinserter'] = "Podręczny edytor MyCode";
+$l['setting_bbcodeinserter_desc'] = "Włącz tę opcję by wyświetlać podręczny edytor z przyciskami ułatwiającymi formatowanie wypowiedzi za pomocą MyCode.";
+$l['setting_mail_handler'] = "Sposób wysyłania e-maili";
+$l['setting_mail_handler_desc'] = "Sposób, w jaki MyBB ma sobie radzić z automatycznym wysyłaniem e-maili.";
+$l['setting_mail_handler_mail'] = "Funkcja mail() w PHP";
+$l['setting_mail_handler_smtp'] = "Zewnętrzny serwer SMTP";
+$l['setting_mail_parameters'] = "Dodatkowe parametry dla funkcji mail() w PHP";
+$l['setting_mail_parameters_desc'] = "Możesz tutaj podać dodatkowe parametry dla funkcji mail(), jeżeli używasz jej do automatycznego wysyłania e-maili. Zobacz: więcej informacji .";
+$l['setting_smtp_host'] = "Nazwa hosta SMTP";
+$l['setting_smtp_host_desc'] = "Nazwa hosta serwera SMTP, który ma być wykorzystywany do wysyłania e-maili. Wymagana tylko w przypadku, gdy wybrano wysyłanie e-maili za pomocą zewnętrznego serwera SMTP.";
+$l['setting_smtp_port'] = "Port SMTP";
+$l['setting_smtp_port_desc'] = "Numer portu serwera SMTP, który ma być wykorzystywany do wysyłania e-maili. Wymagany tylko w przypadku, gdy wybrano wysyłanie e-maili za pomocą zewnętrznego serwera SMTP.";
+$l['setting_smtp_user'] = "Login SMTP";
+$l['setting_smtp_user_desc'] = "Login wymagany do uwierzytelnienia na serwerze SMTP. Wymagany tylko w przypadku, gdy wybrano wysyłanie e-maili za pomocą zewnętrznego serwera SMTP.";
+$l['setting_smtp_pass'] = "Hasło SMTP";
+$l['setting_smtp_pass_desc'] = "Hasło wymagane do uwierzytelnienia na serwerze SMTP. Wymagane tylko w przypadku, gdy wybrano wysyłanie e-maili za pomocą zewnętrznego serwera SMTP.";
+$l['setting_secure_smtp'] = "Sposób szyfrowania SMTP";
+$l['setting_secure_smtp_desc'] = "Wybierz sposób szyfrowania z którego MyBB ma korzystać przy wysyłaniu e-maili. Wymagany tylko w przypadku, gdy wybrano wysyłanie e-maili za pomocą zewnętrznego serwera SMTP.";
+$l['setting_secure_smtp_0'] = "Bez szyfrowania";
+$l['setting_secure_smtp_1'] = "Szyfrowanie SSL";
+$l['setting_secure_smtp_2'] = "Szyfrowanie TLS";
+$l['setting_mail_logging'] = "Logi e-maili";
+$l['setting_mail_logging_desc'] = "Możesz tutaj wybrać sposób, w jaki mają być zapisywane logi e-maili wysyłanych przy użyciu opcji \"Wyślij wątek znajomemu\". W niektórych krajach przechowywanie całej treści korespondencji jest nielegalne.";
+$l['setting_mail_message_id'] = "Dodawać identyfikator wiadomości do nagłówków?";
+$l['setting_mail_message_id_desc'] = "Wyłączenie tej opcji na hostingach współdzielonych spowoduje rozwiązanie problemu z wiadomościami wysyłanymi przez machanizm forum trafiającymi do folderu ze spamem.";
+$l['setting_mail_logging_0'] = "Wyłącz logi e-maili";
+$l['setting_mail_logging_1'] = "Zapisuj logi bez treści e-maili";
+$l['setting_mail_logging_2'] = "Zapisuj wszystko";
+$l['setting_enablepruning'] = "Włączyć automatyczne usuwanie?";
+$l['setting_enablepruning_desc'] = "Włączyć usuwanie użytkowników, którzy spełniają podane kryteria?";
+$l['setting_enableprunebyposts'] = "Włączyć usuwanie według ilości postów?";
+$l['setting_enableprunebyposts_desc'] = "Wybierz \"Tak\" jeżeli chcesz, aby użytkownicy byli usunięci po ilości postów.";
+$l['setting_prunepostcount'] = "Liczba postów użytkownika, który zostanie usunięty";
+$l['setting_prunepostcount_desc'] = "Podaj liczbę postów poniżej której użytkownik zostanie usunięty.";
+$l['setting_dayspruneregistered'] = "Czas po rejestracji przed usunięciem";
+$l['setting_dayspruneregistered_desc'] = "Podaj liczbę dni, jaka musi upłynąć od rejestracji zanim użytkownik zostanie usunięty";
+$l['setting_pruneunactived'] = "Usunąć nieaktywowanych użytkowników?";
+$l['setting_pruneunactived_desc'] = "Czy chcesz, aby użytkownicy, którzy nie aktywowali swojego konta zostali usunięci?";
+$l['setting_dayspruneunactivated'] = "Czas po rejestracji przed usunięciem nieaktywowanego użytkownika";
+$l['setting_dayspruneunactivated_desc'] = "Podaj liczbę dni, jaka musi upłynąć od rejestracji zanim nieaktywowany użytkownik zostanie usunięty";
+$l['setting_prunethreads'] = "Usunąć wszystkie posty/wątki użytkownika?";
+$l['setting_prunethreads_desc'] = "Czy usunąć wszystkie posty i wątki użytkownika, który zostanie usunięty?";
+
+/** Ustawienia dodane w MyBB 1.6.4 i 1.6.7 **/
+
+$l['setting_no_plugins'] = "Wyłączyć wszystkie pluginy?";
+$l['setting_no_plugins_desc'] = "Ustaw tę opcję na \"Tak\" jeśli chcesz, aby wszystkie pluginy na forum stały się nieaktywne, ale nie chcesz ich deaktywować lub odinstalowywać. Taki sam efekt możesz uzyskać definiując stałą NO_PLUGINS na początku pliku init.php.";
+$l['setting_ip_forwarded_check'] = "Sprawdzać adres IP użytkownika w nagłówkach HTTP?";
+$l['setting_ip_forwarded_check_desc'] = "Czy chcesz, aby adres IP użytkownika był także sprawdzany w nagłówkach HTTP_X_FORWARDED_FOR lub HTTP_X_REAL_IP? Jeżeli nie wiesz, którą opcję wybrać - pozostaw domyślną, czyli \"Nie\".";
+$l['setting_showforumpagesbreadcrumb'] = "Pokazywać rozwijaną listę przy wielu stronach?";
+$l['setting_showforumpagesbreadcrumb_desc'] = "Czy chcesz pokazywać rozwijaną listę wyboru strony (w menu nawigacji), w przypadku gdy dział posiada więcej niż jedną podstronę?";
+$l['setting_readparentforums'] = "Próbować oznaczyć nadrzędny dział jako przeczytany?";
+$l['setting_readparentforums_desc'] = "Przy ustawieniu na tak, dział nadrzędny będzie za każdym razem oznaczany jako przeczytany, kiedy nie będzie w nim żadnych nieprzeczytanych postów. Należy zauważyć, że opcja ta wpływa negatywnie na wydajność forum i powinna być traktowana jako eksperymentalna.";
+$l['setting_showbirthdayspostlimit'] = "Pokazywać urodziny tylko od x postów?";
+$l['setting_showbirthdayspostlimit_desc'] = "Możesz wybrać, aby informacje o urodzinach użytkownika ukazywały się od wyznaczonej liczby postów. Wpisanie 0 spowoduje wyświetlenie informacji o urodzinach dla wszystkich użytkowników.";
+$l['setting_captchapublickey'] = "Klucz publiczny reCAPTCHA";
+$l['setting_captchapublickey_desc'] = "Twój publiczny klucz reCAPTCHA.";
+$l['setting_captchaprivatekey'] = "Klucz prywatny reCAPTCHA";
+$l['setting_captchaprivatekey_desc'] = "Twój prywatny klucz reCAPTCHA.";
+$l['setting_hiddencaptchaimage'] = "Pokazywać ukryte CAPTCHA?";
+$l['setting_hiddencaptchaimage_desc'] = "Czy chesz pokazywać ukryte pole CAPTCHA podczas rejestracji użytkownika? Ta opcja może uchronić Twoje forum przed rejestracją botów.";
+$l['setting_hiddencaptchaimagefield'] = "Ukryte pole CAPTCHA";
+$l['setting_hiddencaptchaimagefield_desc'] = "Wpisz nazwÄ™ ukrytego pola CAPTCHA.";
+$l['setting_posrep'] = "Zezwalać na pozytywne punkty reputacji? ";
+$l['setting_posrep_desc'] = "Jeśli nie chcesz, aby użytkownicy mogli przyznawać pozytywne punkty reputacji na swoim forum, wybierz \"nie\".";
+$l['setting_neurep'] = "Zezwalać na neutralne punkty reputacji? ";
+$l['setting_neurep_desc'] = "Jeśli nie chcesz, aby użytkownicy mogli przyznawać neutralne punkty reputacji na swoim forum, wybierz \"nie\".";
+$l['setting_mail_logging_0'] = "Wyłącz zapisywanie logów e-maili";
+$l['setting_mail_logging_1'] = "Zapisuj logi e-maili bez ich treści";
+$l['setting_mail_logging_2'] = "Zapisuj wszystko";
+$l['setting_captchaimage_0'] = "Bez CAPTCHA";
+$l['setting_captchaimage_1'] = "Standardowe CAPTCHA MyBB";
+$l['setting_captchaimage_2'] = "reCAPTCHA";
+$l['setting_username_method'] = "Dozwolone metody logowania";
+$l['setting_username_method_desc'] = "Wybierz, za pomocą jakich danych użytkownik może się zalogować.";
+$l['setting_username_method_0'] = "Tylko za pomocÄ… loginu";
+$l['setting_username_method_1'] = "Tylko za pomocÄ… adresu e-mail";
+$l['setting_username_method_2'] = "Za pomocÄ… loginu lub adresu e-mail";
+$l['setting_allowthreadratings'] = "Pozwolić na ocenanie wątków?";
+$l['setting_allowthreadratings_desc'] = "Czy chcesz, aby użytkownicy mogli oceniać wątki umieszczane na forum?";
+
+/** Ustawienia dodane w wersji 1.6.9 **/
+$l['setting_seourls_archive'] = "Włączyć linki przyjazne wyszukiwarkom w wersji bez grafiki?";
+$l['setting_seourls_archive_desc'] = "To ustawienie pozwala na włączenie linków przyjaznych wyszukiwarkom w wersji forum bez grafiki. Po zmianie wartości tego ustawienia upewnij się, że wersja bez grafiki działa prawidłowo. ";
+
+/** Ustawienia i grupy ustawień dodane w wersji 1.8 **/
+
+$l['setting_group_profile'] = "Opcje profilów użytkowników";
+$l['setting_group_profile_desc'] = "Ustawienia dotyczące profili użytkowników takie jak sygnatury czy awatary.";
+$l['setting_group_attachments'] = "System załączników";
+$l['setting_group_attachments_desc'] = "Ustawienia związane z systemem załączników.";
+
+$l['setting_contact_guests'] = "Wyłączyć formularz kontaktowy dla gości?";
+$l['setting_contact_guests_desc'] = "Czy chcesz, aby niezalogowani użytkownicy mogli uzyskiwać dostęp do formularza kontaktowego?";
+$l['setting_soft_delete'] = "Włączyć nietrwałe usuwanie?";
+$l['setting_soft_delete_desc'] = "Włączenie tej opcji pozwoli na przywracanie postów i wątków usuniętych przez użytkowników. W innym wypadku posty i wątki będą bezpowrotnie usuwane.";
+$l['setting_showthemeselect'] = "Pokazywać pole wyboru stylu w stopce?";
+$l['setting_showthemeselect_desc'] = "Wybierz \"Nie\" jeśli nie chcesz, by w stopce forum wyświetlane było pole szybkiej zmiany stylu.";
+$l['setting_minifycss'] = "Zmniejszać rozmiar arkuszy kaskadowych stylów (CSS)?";
+$l['setting_minifycss_desc'] = "Czy chcesz, aby rozmiar arkuszy stylów kaskadowych (CSS) były automatycznie zmniejszane w celu zaoszczędzenia transferu i przyspieszenia ładowania strony?";
+$l['setting_datetimesep'] = "Separator daty i czasu";
+$l['setting_datetimesep_desc'] = "Wpisz znak, który będzie wstawiany między datą i czasem w momencie tworzenia jednego ciągu znaków. Zazwyczaj wykorzystuje się spację lub przecinek.";
+$l['setting_regtime'] = "Minimalny czas potrzebny na wypełnienie formularza rejestracji";
+$l['setting_regtime_desc'] = "Czas (w sekundach) jaki trzeba odczekać zanim możliwe będzie wysłanie formularza rejestracji. Pozwala to na zapobieżenie automatycznym rejestracjom. Wpisz 0, aby wyłączyć tę funkcję.";
+$l['setting_useravatar'] = "Domyślny awatar użytkownika";
+$l['setting_useravatar_desc'] = "Jeśli użytkownik nie załaduje własnego awatara, zostanie wykorzystany ten, którego ścieżkę wpiszesz poniżej.";
+$l['setting_useravatardims'] = "Wymiary domyślnego awatara";
+$l['setting_useravatardims_desc'] = "Wpisz wymiary domyślnego awatara (szerokość, a następnie wysokość). Oddziel je znakiem \"|\" (np.: 40|40)";
+$l['setting_useravatarrating'] = "Najwyższa dozwolona kategoria Gravatara";
+$l['setting_useravatarrating_desc'] = "Pozwala na wybranie kategorii Gravatara, jeśli użytkownik zdecyduje się z niego skorzystać. W przypadku, gdy Gravatar użytkownika jest wyższej kategorii niż dozwolony, zostanie wykorzystany domyślny awatar.
+
+
+G : awatar przeznaczony do wyświetlania na wszystkich stronach internetowych i przez wszystkie osoby (bez ograniczeń wiekowych)
+PG : awatar może zawierać ofensywne gesty, prowokacyjnie ubrane postaci, łagodne przekleństwa lub łagodną przemoc (dla osób w wieku 13 lat lub więcej)
+R : awatar może zawierać przekleństwa, średnią przemoc, nagość lub przedstawiać używanie narkotyków (dla osób w wieku 16 lat lub więcej)
+X : może zawierać pornografię, intensywną przemoc lub inne oburzające treści (dla osób w wieku 18 lat lub więcej)
+ ";
+$l['setting_mycodemessagelength'] = "Czy zaliczać myCode do długości posta?";
+$l['setting_mycodemessagelength_desc'] = "Czy chcesz, by myCode był wliczany do długości posta?";
+$l['setting_polltimelimit'] = "";
+$l['setting_polltimelimit_desc'] = "";
+
+$l['setting_polltimelimit'] = "Limit czasu dodawania ankiet";
+$l['setting_polltimelimit_desc'] = "Liczba godzin, po których użytkownicy przestaną mieć możliwość dodawania ankiet do swoich wątków. Wpisz 0, by nie ustalać takiego ograniczenia.";
+$l['setting_enableattachments'] = "Włączyć możliwość dodawania załączników?";
+$l['setting_enableattachments_desc'] = "Jeżeli chcesz, aby użytkownicy nie mogli dodawać załączników wybierz \"Nie\".";
+$l['setting_minreplength'] = "Minimalna długość komentarza punktu reputacji";
+$l['setting_minreplength_desc'] = "Wpisz minimalną liczbę znaków jaką powinien mieć komentarz do punktu reputacji.";
+$l['setting_pmquickreply'] = "Wyświetlanie formularza szybkiej odpowiedzi";
+$l['setting_pmquickreply_desc'] = "Możesz tutaj wyłączyć opcję wyświetlania formularza \"szybkiej odpowiedzi\" u dołu prywatnej wiadomości.";
+$l['setting_logip'] = "Pokazywać adresy IP w prywatnych wiadomościach?";
+$l['setting_logip_desc'] = "Czy chcesz, aby adresy IP użytkowników były zapisywane w bazie danych przy wysyłaniu prywatnych wiadomości? Jeżeli tak, to wybierz, kto będzie miał do nich dostęp.";
+$l['setting_logip_no'] = "Nie zapisuj IP";
+$l['setting_logip_hide'] = "Pokazuj moderatorom i administratorom";
+$l['setting_logip_show'] = "Pokazuj wszystkim użytkownikom";
+$l['setting_wolorder'] = "Sposób sortowania listy \"Kto jest online\"";
+$l['setting_wolorder_desc'] = "Wybierz, czy chcesz, aby lista \"Kto jest online\" była sortowana według loginu czy czasu ostatniej aktywności. To ustawienie ma zastosowanie tylko do strony głównej i portalu.";
+$l['setting_wolorder_username'] = "Według loginu (rosnąco)";
+$l['setting_wolorder_activity'] = "Według czasu ostatniej aktywności (malejąco)";
+
+$l['setting_helpsearch'] = "Włączyć przeszukiwanie pomocy?";
+$l['setting_helpsearch_desc'] = "Włączenie tej opcji pozwoli użytkownikom na przeszukiwanie sekcji pomocy.";
+$l['setting_jumptopagemultipage'] = "Pokazywać opcję 'skocz do strony'?";
+$l['setting_jumptopagemultipage_desc'] = "Czy pokazywać przycisk 'skocz do strony' w przypadku przekroczenia \"Maksymalnej liczby linków przy stronicowaniu\"?";
+$l['setting_statstopreferrer'] = "Pokazywać najlepszego polecającego na stronie statystyk?";
+$l['setting_statstopreferrer_desc'] = "Włączenie tej opcji spowoduje pokazywanie na stronie statystyk forum użytkownika z nawiększą liczbą poleceń. Włączenie powoduje konieczność wykonywania dodatkowego zapytania.";
+$l['setting_deleteinvites'] = "Ważność starych zaproszeń do grup";
+$l['setting_deleteinvites_desc'] = "Liczba dni, po których zaproszenie do grupy dla użytkownika wygasa. Wpisz 0, aby zaproszenia nie traciły ważności.";
+$l['setting_hidewebsite'] = "Ukrywaj strony wskazanym grupom";
+$l['setting_hidewebsite_desc'] = "Wybierz grupy, które nie będą mogły widzieć odnośników do stron użytkowników.";
+$l['setting_hidesignatures'] = "Ukrywaj sygnatury wskazanym grupom";
+$l['setting_hidesignatures_desc'] = "Wybierz grupy, które nie będą mogły widzieć sygnatur użytkowników.";
+
+$l['setting_usecdn'] = "Używać CDN?";
+$l['setting_usecdn_desc'] = "Możesz włączyć używanie CDN (Content Deliver Network) aby przyspieszyć wczytywanie statycznych plików, takich jak arkusze stylów, pliki JavaScript czy obrazy. Czy chcesz włączyć tę funkcjonalność?";
+$l['setting_cdnurl'] = "Adres URL używany dla plików statycznych";
+$l['setting_cdnurl_desc'] = "Jeśli włączyłeś powyższą opcję CDN, wpisz poniżej adres URL, z którego ma być pobierana statyczna zawartość. Adres powinien być poprawny i nie zawierać końcowego ukośnika.";
+$l['setting_cdnpath'] = "Ścieżka przechowywania statycznych plików";
+$l['setting_cdnpath_desc'] = "Jeśli włączyłeś powyższą opcję CDN, wpisz (opcjonalnie) pełną ścieżkę do miejsca przechowywania statycznych plików. Jest to użyteczne jedynie w przypadku korzystania z CDN typu \"push\" albo lokalnych subdomen. Adres nie powinien zawierać końcowego ukośnika.";
+
+$l['setting_forcelogin'] = "Zmuś użytkowników do zalogowania";
+$l['setting_forcelogin_desc'] = "Ustawienie opcję na 'Tak' spowoduje konieczność zalogowania lub rejestracji w celu dostępu do forum.";
+$l['setting_securityquestion'] = "Pokazuj pytanie zabezpieczajÄ…ce";
+$l['setting_securityquestion_desc'] = "Czy chcesz, aby użytkownicy podczas rejestracji musieli odpowiadać na pytanie zabezpieczające?";
+
+$l['setting_alloweditreason'] = "Pozwolić na zmianę powodu?";
+$l['setting_alloweditreason_desc'] = "Czy chcesz dać użytkownikom możliwość opcjonalnego wpisania powodu edycji posta?";
+
+$l['setting_allowanonwarningpms'] = "Pozwolić na anonimowe PW o ostrzeżeniach?";
+$l['setting_allowanonwarningpms_desc'] = "Czy pozwolić moderatorom na wysyłanie anonimowych PW informujących o ostrzeżeniach?";
+
+$l['setting_showpmip'] = "Pokazuj IP w prywatnych wiadomościach";
+$l['setting_showpmip_desc'] = "Czy chcesz pokazywać numery IP użytkowników przesyłających prywatne wiadomości (i komu chcesz je pokazywać)?";
+$l['setting_showpmip_no'] = "Nie pokazuj IP";
+$l['setting_showpmip_hide'] = "Pokazuj administratorom i moderatorom";
+$l['setting_showpmip_show'] = "Pokazuj wszystkim użytkownikom";
+$l['setting_maxpmquotedepth'] = "Maksymalna liczba zagnieżdżonych cytatów";
+$l['setting_maxpmquotedepth'] = "Maksymalna liczba zagnieżdżonych zacytowanych poprzednich wiadomości z konwersacji. W przypadku odpowiedzi na PW z zacytowaniem, wszystkie poprzednie zagnieżdżone cytowania przekraczające tę liczbę zostaną automatycznie usunięte. Uwaga - to ograniczenie działa tylko w przypadku automatycznych cytowań w odpowiedzi; nadal możliwe będzie dodawanie własnych cytatów ponad tę liczbę, ustawienie nie zmienia też treści wysłanych już dotychczas wiadomości. Ustawienie wartości 0 wyłącza całkowicie tę opcję.";
+
+$l['setting_portal'] = "WÅ‚Ä…cz portal";
+$l['setting_portal_desc'] = "Jeśli chcesz wyłączyć portal na swoim forum, ustaw tę opcję na 'Nie'";
+$l['setting_portal_excludediscussion'] = "Działy wyłączone z ostatnich dyskusji";
+$l['setting_portal_excludediscussion_desc'] = "Wybierz działy, które mają być wyłączone z pokazywania się na liście ostatnich dyskusji.";
+
+$l['setting_partialmode'] = "Podręczny edytor MyCode w ograniczonym trybie";
+$l['setting_partialmode_desc'] = "W przypadku wyboru 'Tak' poniżej, edytor zostanie uruchomiony w ograniczonym trybie. Niektóre MyCode, takie jak [quote] czy [img], będą wstawiane w polu edycji jako tekst.";
+$l['setting_allowbasicmycode'] = "Pozwól na podstawowe MyCodes";
+$l['setting_allowbasicmycode_desc'] = "Ustawienie na 'Tak' pozwoli na używanie podstawowych kodów MyCode, takich jak pogrubienie, pochylenie, podkreślenie i przekreślenie tekstu oraz wstawianie poziomej linii.";
+$l['setting_allowcolormycode'] = "Pozwól na MyCode zmieniania kolorów";
+$l['setting_allowcolormycode_desc'] = "Ustawienie na 'Tak' pozwoli na zmienianie kolorów tekstu za pomocą MyCode.";
+$l['setting_allowsizemycode'] = "Pozwól na MyCode zmieniania rozmiaru";
+$l['setting_allowsizemycode_desc'] = "Ustawienie na 'Tak' pozwoli na zmienianie rozmiaru tekstu za pomocÄ… MyCode.";
+$l['setting_allowfontmycode'] = "Pozwól na MyCode zmieniania czcionki";
+$l['setting_allowfontmycode_desc'] = "Ustawienie na 'Tak' pozwoli na zmienianie czcionki tekstu za pomocÄ… MyCode.";
+$l['setting_allowlinkmycode'] = "Pozwól na MyCode wstawiania linków";
+$l['setting_allowlinkmycode_desc'] = "Ustawienie na 'Tak' pozwoli na wstawianie odnośników za pomocą MyCode.";
+$l['setting_allowemailmycode'] = "Pozwól na MyCode wstawiania adresów e-mail";
+$l['setting_allowemailmycode_desc'] = "Ustawienie na 'Tak' pozwoli na wstawianie adresów e-mail za pomocą MyCode.";
+$l['setting_allowalignmycode'] = "Pozwól na MyCode wyrównywania tekstu";
+$l['setting_allowalignmycode_desc'] = "Ustawienie na 'Tak' pozwoli na wyrównywanie tekstu za pomocą MyCode.";
+$l['setting_allowlistmycode'] = "Pozwól na MyCode wstawiania list";
+$l['setting_allowlistmycode_desc'] = "Ustawienie na 'Tak' pozwoli na wstawianie list za pomocÄ… MyCode.";
+$l['setting_allowcodemycode'] = "Pozwól na MyCode wstawiania kodu";
+$l['setting_allowcodemycode_desc'] = "Ustawienie na 'Tak' pozwoli na wstawianie kodu i kolorowanie składni za pomocą MyCode.";
+$l['setting_allowsymbolmycode'] = "Pozwól na MyCode wstawiania symboli";
+$l['setting_allowsymbolmycode_desc'] = "Ustawienie na 'Tak' pozwoli na wstawianie symboli (tm), (c) oraz (r) do tekstu za pomocÄ… MyCode.";
+$l['setting_allowmemycode'] = "Pozwól na MyCode używania komend";
+$l['setting_allowmemycode_desc'] = "Ustawienie na 'Tak' pozwoli na używanie komend typu /me oraz /slap w tekście za pomocą MyCode.";
+$l['setting_guestimages'] = "Parsuj MyCode [img] gościom";
+$l['setting_guestimages_desc'] = "Ustawienie na 'Tak' spowoduje wyświetlanie gościom forum sparsowanych postów zawierających obrazy. W przeciwnym wypadku goście zobaczą jedynie odnośniki.";
+$l['setting_guestvideos'] = "Parsuj MyCode [video] gościom";
+$l['setting_guestvideos_desc'] = "Ustawienie na 'Tak' spowoduje wyświetlanie gościom forum sparsowanych postów zawierających wideo. W przeciwnym wypadku goście zobaczą jedynie odnośniki.";
+
+$l['setting_contact'] = "WÅ‚Ä…cz formularz kontaktowy";
+$l['setting_contact_desc'] = "Czy chcesz włączyć dostęp do formularza kontaktowego na swoim forum?";
+$l['setting_contact_badwords'] = "Włącz filtrowanie wiadomości formularza";
+$l['setting_contact_badwords_desc'] = "Czy chcesz włączyć filtrowanie tematu oraz treści wiadomości formularza kontaktowego przez system cenzury niechcianych słów?";
+$l['setting_contact_maxsubjectlength'] = "Maksymalna długość tematu wiadomości formularza";
+$l['setting_contact_maxsubjectlength_desc'] = "Maksymalna liczba znaków w temacie umożliwiająca wysłanie wiadomości. Wpisanie 0 spowoduje całkowite zniesienie ograniczenia.";
+$l['setting_contact_minmessagelength'] = "Minimalna długość treści wiadomości formularza";
+$l['setting_contact_minmessagelength_desc'] = "Minimalna liczba znaków w treści umożliwiająca wysłanie wiadomości. Wpisanie 0 spowoduje całkowite zniesienie ograniczenia.";
+$l['setting_contact_maxmessagelength'] = "Maksymalna długość treści wiadomości formularza";
+$l['setting_contact_maxmessagelength_desc'] = "Maksymalna liczba znaków w treści umożliwiająca wysłanie wiadomości. Wpisanie 0 spowoduje całkowite zniesienie ograniczenia.";
+
+$l['setting_purgespammergroups'] = "Uprawnione grupy";
+$l['setting_purgespammergroups_desc'] = "Wybierz grupy uprawnione do korzystania z systemu usuwania spamerów.";
+$l['setting_purgespammerpostlimit'] = "Limit postów";
+$l['setting_purgespammerpostlimit_desc'] = "Ta opcja uniemożliwia korzystanie z narzędzia wobec aktywnych użytkowników, posiadających liczbę postów większą od podanej poniżej. Wpisanie 0 spowoduje całkowite wyłączenie sprawdzania postów, przy czym jest to niezalecane.";
+$l['setting_purgespammerbandelete'] = "Banuj lub usuwaj spamerów";
+$l['setting_purgespammerbandelete_desc'] = "Czy chcesz, aby spamerzy odnalezieni przez narzędzie byli banowani, czy usuwani?";
+$l['setting_purgespammerbandelete_ban'] = "Banuj (permanentnie)";
+$l['setting_purgespammerbandelete_delete'] = "Usuwaj";
+$l['setting_purgespammerbangroup'] = "Grupa zbanowanych użytkowników";
+$l['setting_purgespammerbangroup_desc'] = "Wpisz ID (nie nazwę) grupy użytkowników, do której mają trafiać zbanowani spamerzy. Domyślnie ustawione na 7, jako standardowy numer grupy zbanowanych użytkowników. Poprzednia opcja musi być ustawiona na 'Banuj', aby to ustawienie zadziałało prawidłowo.";
+$l['setting_purgespammerbanreason'] = "Powód bana";
+$l['setting_purgespammerbanreason_desc'] = "Wpisz powód, który ma być wyświetlany po zbanowaniu spamera.";
+$l['setting_purgespammerapikey'] = "Klucz API systemu Stop Forum Spam";
+$l['setting_purgespammerapikey_desc'] = "Aby korzystać z możliwości przesyłania informacji o spamerach do bazy systemu Stop Forum Spam, musisz posiadać odpowiedni klucz API. Możesz go zdobyć tutaj . Jeśli już takowy posiadasz, wstaw go w pole poniżej.";
+
+$l['setting_enablestopforumspam_on_register'] = "Sprawdzać rejestracje w bazie StopForumSpam.com?";
+$l['setting_enablestopforumspam_on_register_desc'] = "Czy chcesz, aby każda nowa rejestracja na forum była sprawdzana w bazie StopForumSpam.com?";
+$l['setting_stopforumspam_on_contact'] = "Sprawdzać wiadomości formularza kontaktowego od gości w bazie StopForumSpam?";
+$l['setting_stopforumspam_on_contact_desc'] = "Czy chcesz, aby adresy e-mail oraz IP gości wysyłających wiadomości za pomocą formularza kontaktowego były sprawdzane w bazie StopForumSpam?";
+$l['setting_stopforumspam_on_newreply'] = "Sprawdzać odpowiedzi gości w bazie StopForumSpam?";
+$l['setting_stopforumspam_on_newreply_desc'] = "Czy chcesz, aby loginy oraz IP gości tworzących nowe odpowiedzi były sprawdzane w bazie StopForumSpam?";
+$l['setting_stopforumspam_on_newthread'] = "Sprawdzać wątki gości w bazie StopForumSpam?";
+$l['setting_stopforumspam_on_newthread_desc'] = "Czy chcesz, aby loginy oraz IP gości tworzących nowe wątki były sprawdzane w bazie StopForumSpam?";
+$l['setting_stopforumspam_min_weighting_before_spam'] = "Minimalna ocena oznaczajÄ…ca spamera";
+$l['setting_stopforumspam_min_weighting_before_spam_desc'] = "Minimalna ocena pobrana z systemu StopForumSpam decydująca o oznaczeniu użytkownika jako spamera. Liczba powinna mieścić się w przedziale od 0 do 100.";
+$l['setting_stopforumspam_check_usernames'] = "Sprawdzać loginy?";
+$l['setting_stopforumspam_check_usernames_desc'] = "Czy chcesz, aby loginy użytkowników były sprawdzane w bazie StopForumSpam?";
+$l['setting_stopforumspam_check_emails'] = "Sprawdzać adresy e-mail?";
+$l['setting_stopforumspam_check_emails_desc'] = "Czy chcesz, aby adresy e-mail użytkowników były sprawdzane w bazie StopForumSpam?";
+$l['setting_stopforumspam_check_ips'] = "Sprawdzać adresy IP?";
+$l['setting_stopforumspam_check_ips_desc'] = "Czy chcesz, aby adresy IP użytkowników były sprawdzane w bazie StopForumSpam?";
+$l['setting_stopforumspam_block_on_error'] = "Blokować w przypadku błędu StopForumSpam?";
+$l['setting_stopforumspam_block_on_error_desc'] = "Czy blokować użytkownika w przypadku zwrócenia podczas pobierania informacji z API StopForumSpam błędu?";
+$l['setting_stopforumspam_log_blocks'] = "Zapisywać blokowania StopForumSpam?";
+$l['setting_stopforumspam_log_blocks_desc'] = "Czy zapisywać każde blokowanie spamera przez system StopForumSpam w logach forum?";
+
+$l['setting_allowicqfield'] = "Pozwalaj na pole numeru ICQ";
+$l['setting_allowicqfield_desc'] = "Wybierz grupy użytkowników, które mogą używać pola z numerem ICQ w swoich informacjach kontaktowych.";
+$l['setting_allowaimfield'] = "Pozwalaj na pole nazwy użytkownika AIM";
+$l['setting_allowaimfield_desc'] = "Wybierz grupy użytkowników, które mogą używać pola z nazwą użytkownika AIM w swoich informacjach kontaktowych.";
+$l['setting_allowyahoofield'] = "Pozwalaj na pole identyfikatora Yahoo";
+$l['setting_allowyahoofield_desc'] = "Wybierz grupy użytkowników, które mogą używać pola z identyfikatorem Yahoo w swoich informacjach kontaktowych.";
+$l['setting_allowskypefield'] = "Pozwalaj na pole identyfikatora Skype";
+$l['setting_allowskypefield_desc'] = "Wybierz grupy użytkowników, które mogą używać pola z identyfikatorem Skype w swoich informacjach kontaktowych.";
+$l['setting_allowgooglefield'] = "Pozwalaj na pole identyfikatora Google Talk";
+$l['setting_allowgooglefield_desc'] = "Wybierz grupy użytkowników, które mogą używać pola z identyfikatorem Google Talk w swoich informacjach kontaktowych.";
+
+$l['setting_statsenabled'] = "WÅ‚Ä…cz stronÄ™ statystyk";
+$l['setting_statsenabled_desc'] = "Czy chcesz włączyć dostęp do strony ze statystykami forum?";
+$l['setting_statscachetime'] = "Częstotliwość odświeżania";
+$l['setting_statscachetime_desc'] = "Wpisz okres (w godzinach), co jaki odświeżane mają być składowane statystyki. Ustawienie na 0 spowoduje wyłączenie przechowywania statystyk w pamięci podręcznej.";
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/admin/config_smilies.lang.php b/Upload/inc/languages/polish/admin/config_smilies.lang.php
new file mode 100644
index 0000000..401d3cf
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_smilies.lang.php
@@ -0,0 +1,64 @@
+{theme}. W jego miejsce podstawiony zostanie katalog z obrazkami danego stylu.";
+$l['order'] = "Kolejność";
+$l['display_order'] = "Kolejność wyświetlania";
+$l['display_order_desc'] = "Kolejność, w której ten emotikon pojawi się na liście emotikonów. Ta liczba nie powinna być taka sama jak innego emotikona.";
+$l['mass_edit_show_clickable'] = "Pokazywać na liście?";
+$l['show_clickable'] = "Pokazywać na liście emotikonów?";
+$l['show_clickable_desc'] = "Czy chcesz, aby ten emotikon był pokazywany na liście emotikonów do wyboru w edytorze postów?";
+$l['include'] = "Dodać?";
+$l['path_to_images'] = "Ścieżka do obrazków";
+$l['path_to_images_desc'] = "To jest ścieżka do folderu, w którym znajdują się emotikony.";
+$l['smilie_delete'] = "Usunąć?";
+$l['save_smilie'] = "Zapisz emotikon";
+$l['save_smilies'] = "Zapisz emotikony";
+$l['show_smilies'] = "Pokaż emotikony";
+$l['reset'] = "Resetuj";
+
+$l['error_missing_name'] = "Nie wpisano nazwy dla tego emotikona.";
+$l['error_missing_text_replacement'] = "Nie wpisano tekstu do zamiany dla tego emotikona.";
+$l['error_missing_path'] = "Nie wpisano ścieżki do tego emotikona.";
+$l['error_missing_path_multiple'] = "Nie wpisano ścieżki.";
+$l['error_missing_order'] = "Nie wpisano kolejności wyświetlania tego emotikona.";
+$l['error_duplicate_order'] = "Nie wpisano prawidłowej kolejności wyświetlania tego emotikona.";
+$l['error_missing_clickable'] = "Nie wybrano czy ten emotikon ma być pokazywany na liście emotikonów";
+$l['error_no_smilies'] = "Nie ma emotikonów w podanym folderze lub wszystkie zostały już dodane.";
+$l['error_no_images'] = "Nie ma żadnych obrazków w podanym katalogu.";
+$l['error_none_included'] = "Nie wybrano żadnych emotikonów do dołączenia.";
+$l['error_invalid_path'] = "Nie wpisano poprawnej ścieżki.";
+$l['error_invalid_smilie'] = "Podany emotikon nie istnieje.";
+
+$l['success_smilie_added'] = "Emotikon został dodany.";
+$l['success_multiple_smilies_added'] = "Wybrane emotikony zostały dodane.";
+$l['success_smilie_updated'] = "Emotikon został zaktualizowany.";
+$l['success_multiple_smilies_updated'] = "Emotikony zostały zaktualizowane.";
+$l['success_smilie_deleted'] = "Wybrany emotikon został usunięty.";
+$l['success_mass_edit_updated'] = "Emotikony zostały zaktualizowane.";
+
+$l['confirm_smilie_deletion'] = "Czy na pewno chcesz usunąć tego emotikona?";
diff --git a/Upload/inc/languages/polish/admin/config_spiders.lang.php b/Upload/inc/languages/polish/admin/config_spiders.lang.php
new file mode 100644
index 0000000..d0b01f2
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/config_spiders.lang.php
@@ -0,0 +1,42 @@
+Wysłanych załączników";
+$l['space_used'] = "Miejsce używane przez załączniki ";
+$l['bandwidth_used'] = "Szacowane zużycie transferu przez załączniki ";
+$l['average_size'] = "Średni rozmiar załącznika ";
+$l['size'] = "Rozmiar";
+$l['posted_by'] = "Wysłany przez";
+$l['thread'] = "WÄ…tek";
+$l['downloads'] = "Ilość pobrań";
+$l['date_uploaded'] = "Data wysłania";
+$l['popular_attachments'] = "5 najpopularniejszych załączników";
+$l['largest_attachments'] = "5 największych załączników";
+$l['users_diskspace'] = "5 użytkowników używających najwięcej miejsca na załączniki";
+$l['username'] = "Użytkownik";
+$l['total_size'] = "Używane miejsce";
+
+// = Orphans
+$l['orphan_results'] = "Wyszukiwanie nieużywanych załączników - wyniki";
+$l['orphan_attachments_search'] = "Wyszukiwanie nieużywanych załączników";
+$l['reason_orphaned'] = "Dlaczego nieużywany?";
+$l['reason_not_in_table'] = "Brak informacji w tabeli załączników";
+$l['reason_file_missing'] = "Brak załączonego pliku";
+$l['reason_thread_deleted'] = "Wątek został usunięty";
+$l['reason_post_never_made'] = "Post jeszcze nie powstał";
+$l['unknown'] = "Nieznany";
+$l['results'] = "Wyniki";
+$l['step1'] = "Krok 1";
+$l['step2'] = "Krok 2";
+$l['step1of2'] = "Krok 1 z 2 - skanowanie systemu plików";
+$l['step2of2'] = "Krok 2 z 2 - skanowanie bazy danych";
+$l['step1of2_line1'] = "Proszę czekać, system plików jest skanowany w poszukiwaniu nieużywanych załączników.";
+$l['step2of2_line1'] = "Proszę czekać, baza danych jest skanowana w poszukiwaniu nieużywanych załączników.";
+$l['step_line2'] = "Po zakończeniu procesu nastąpi przeniesienie do kolejnego kroku.";
+$l['scanning'] = 'Skanowanie...';
+
+// = Attachments / Index
+$l['index_find_attachments'] = "Załączniki - szukanie";
+$l['find_where'] = "Znajdź załączniki, dla których...";
+$l['name_contains'] = "Nazwa pliku zawiera";
+$l['name_contains_desc'] = "Użyj \"*\", by zastąpić dowolny ciąg znaków. Przykład: *.zip";
+$l['type_contains'] = "Typ pliku zawiera";
+$l['forum_is'] = "Kategoria, dział, poddział";
+$l['username_is'] = "Użytkownik";
+$l['more_than'] = "większa niż";
+$l['greater_than'] = "większa niż";
+$l['is_exactly'] = "równa";
+$l['less_than'] = "mniejsza niż";
+$l['date_posted_is'] = "Data wysyłania jest";
+$l['days_ago'] = "dni temu";
+$l['file_size_is'] = "Wielkość pliku jest";
+$l['kb'] = "KB";
+$l['download_count_is'] = "Ilość pobrań jest";
+$l['display_options'] = "Opcje wyświetlania wyników";
+$l['filename'] = "nazwy pliku";
+$l['filesize'] = "rozmiaru pliku";
+$l['download_count'] = "ilości pobrań";
+$l['post_username'] = "autora postu";
+$l['asc'] = "rosnÄ…cej";
+$l['desc'] = "malejÄ…cej";
+$l['sort_results_by'] = "Sortowanie wyników według";
+$l['results_per_page'] = "Wyników na stronę";
+$l['in'] = "w kolejności";
+
+// Buttons
+$l['button_delete_orphans'] = "Usuń wybrane załączniki";
+$l['button_delete_attachments'] = "Usuń wybrane załączniki";
+$l['button_find_attachments'] = "Znajdź załączniki";
diff --git a/Upload/inc/languages/polish/admin/forum_management.lang.php b/Upload/inc/languages/polish/admin/forum_management.lang.php
new file mode 100644
index 0000000..6989978
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/forum_management.lang.php
@@ -0,0 +1,280 @@
+Pamiętaj jednak, że nie zmienia to uprawnień grupy - ta dalej może posiadać możliwość moderacji.";
+$l['success_forum_permissions_updated'] = "Ustawienia uprawnień zostały zaktualizowane.";
+$l['success_forum_updated'] = "Ustawienia działu zostały zaktualizowane.";
+$l['success_moderator_updated'] = "Ustawienia moderatora zostały zaktualizowane.";
+$l['success_custom_permission_cleared'] = "Niestandardowe uprawnienia zostały usunięte.";
+
+$l['error_invalid_forum'] = "Wybierz prawidłowy dział.";
+$l['error_invalid_moderator'] = "Wybierz prawidłowego moderatora do usunięcia.";
+$l['error_invalid_fid'] = "Wybrano nieprawidłowe ID działu.";
+$l['error_forum_parent_child'] = "Dział nie może być jednocześnie nadrzędny i podrzędny względem innego. Wybierz inny dział nadrzędny.";
+$l['error_forum_parent_itself'] = "Dział nie może być nadrzędny sam dla siebie.";
+$l['error_incorrect_moderator'] = "Wybierz prawidłowego moderatora.";
+
+$l['confirm_moderator_deletion'] = "Czy na pewno chcesz usunąć tego moderatora z wybranego działu?";
+$l['confirm_forum_deletion'] = "Czy na pewno chcesz usunąć ten dział?";
+$l['confirm_clear_custom_permission'] = "Czy na pewno chcesz usunąć niestandardowe uprawnienia?";
+
+$l['forum_type'] = "Typ działu";
+$l['forum_type_desc'] = "Wybierz typ działu, który tworzysz - dział, w którym można tworzyć wątki i pisać posty, czy kategoria, w której będą umieszczone inne działy.";
+$l['category'] = "KategoriÄ™";
+$l['title'] = "Tytuł";
+$l['description'] = "Opis";
+$l['save_forum'] = "Zapisz dział";
+$l['parent_forum'] = "Dział nadrzędny";
+$l['parent_forum_desc'] = "Dział nadrzędny dla tego, który właśnie tworzysz. Kategorie nie muszą posiadać działu nadrzędnego - w tym przypadku wybierz \"brak\".";
+$l['none'] = "brak";
+$l['display_order'] = "Kolejność wyświetlania";
+
+$l['show_additional_options'] = "Wyświetl dodatkowe opcje";
+$l['hide_additional_options'] = "Ukryj dodatkowe opcje";
+$l['additional_forum_options'] = "Dodatkowe opcje działu";
+$l['forum_link'] = "Link do działu";
+$l['forum_link_desc'] = "Jeżeli chcesz, by link do działu był przekierowaniem w inne miejsce, podaj tutaj URL lokalizacji docelowej. Wypełnienie tego pola wyłączy funkcjonalność działu - nie będzie można w nim tworzyć wątków ani pisać postów. Mimo to, będzie istniała możliwość ustalenia uprawnień grupom.";
+$l['forum_password'] = "Hasło działu";
+$l['forum_password_desc'] = "By lepiej zabezpieczyć dział, możesz ustalić hasło, którego podanie będzie niezbędne, by uzyskać dostęp. Uwaga: ustawienia uprawnień nadal będą brane pod uwagę.";
+$l['access_options'] = "Ustawienia dostępu";
+$l['forum_is_active'] = "Dział jest aktywny?";
+$l['forum_is_active_desc'] = "Jeżeli nie, dział nie będzie wyświetlany użytkownikom.";
+$l['forum_is_open'] = "Dział jest otwarty?";
+$l['forum_is_open_desc'] = "Jeżeli nie, użytkownicy nie będą mogli pisać nowych postów w tym dziale, niezależnie od przydzielonych im uprawnień.";
+
+$l['copy_to_new_forum'] = "Kopiuj do nowego działu";
+$l['source_forum'] = "Dział źródłowy";
+$l['source_forum_desc'] = "Dział, z którego zostaną skopiowane ustawienia i/lub uprawnienia.";
+$l['destination_forum'] = "Dział docelowy";
+$l['destination_forum_desc'] = "Dział, do którego zostaną skopiowane ustawienia i/lub uprawnienia związane z działem źródłowym.";
+$l['new_forum_settings'] = "Ustawienia nowego działu";
+$l['copy_settings_and_properties'] = "Kopiuj ustawienia i właściwości działu";
+$l['copy_settings_and_properties_desc'] = "Ma znaczenie jedynie wtedy, gdy dział docelowy już istnieje.";
+$l['copy_user_group_permissions'] = "Kopiuj ustawienia uprawnień dla grup";
+$l['copy_user_group_permissions_desc'] = "Przytrzymaj CTRL by wybrać wiele grup.";
+
+$l['override_user_style'] = "Odbierz użytkownikowi możliwość wyboru stylu w tym dziale";
+$l['style_options'] = "Opcje stylu";
+$l['forum_specific_style'] = "Styl działu:";
+$l['use_default'] = "Użyj domyślnego";
+$l['dont_display_rules'] = "Nie wyświetlaj zasad dla tego działu";
+$l['display_rules_inline'] = "Wyświetlaj zasady dla tego działu na liście wątków";
+$l['display_rules_inline_new'] = "Wyświetlaj zasady dla tego działu na liście wątków oraz dla nowych wątków i postów";
+$l['display_rules_link'] = "Wyświetlaj osobny link do zasad dla tego działu";
+$l['display_method'] = "Tryb wyświetlania:";
+$l['rules'] = "Zasady:";
+$l['forum_rules'] = "Zasady dla tego działu";
+$l['name'] = "Nazwa";
+$l['username'] = "Login";
+$l['moderator_username_desc'] = "Login użytkownika, który ma zostać moderatorem";
+$l['add_user_as_moderator'] = "Dodaj użytkownika jako moderatora";
+$l['usergroup'] = "Grupa użytkowników";
+$l['add_usergroup_as_moderator'] = "Dodaj grupę użytkowników jako moderatora";
+$l['moderator_usergroup_desc'] = "Wybierz grupę, która zostanie dodana jako moderator działu";
+$l['add_usergroup_moderator'] = "Dodaj grupę użytkowników jako moderatora";
+$l['add_user_moderator'] = "Dodaj moderatora";
+
+$l['default_view_options'] = "Domyślne opcje widoku";
+$l['default_date_cut'] = "Domyślny limit daty:";
+$l['default_sort_by'] = "Domyślne sortowanie wg:";
+$l['default_sort_order'] = "Domyślna kolejność:";
+
+$l['board_default'] = "Użyj ustawień domyślnych forum";
+
+$l['datelimit_1day'] = "Ostatni dzień";
+$l['datelimit_5days'] = "Ostatnie 5 dni";
+$l['datelimit_10days'] = "Ostatnie 10 dni";
+$l['datelimit_20days'] = "Ostatnie 20 dni";
+$l['datelimit_50days'] = "Ostatnie 50 dni";
+$l['datelimit_75days'] = "Ostatnie 75 dni";
+$l['datelimit_100days'] = "Ostatnie 100 dni";
+$l['datelimit_lastyear'] = "Ostatni rok";
+$l['datelimit_beginning'] = "Bez limitu";
+
+$l['sort_by_subject'] = "Tytułu wątku";
+$l['sort_by_lastpost'] = "Daty ostatniego posta";
+$l['sort_by_starter'] = "Nicka założyciela";
+$l['sort_by_started'] = "Daty utworzenia";
+$l['sort_by_rating'] = "Oceny wÄ…tku";
+$l['sort_by_replies'] = "Liczby odpowiedzi";
+$l['sort_by_views'] = "Liczby wyświetleń";
+
+$l['sort_order_asc'] = "RosnÄ…co";
+$l['sort_order_desc'] = "MalejÄ…co";
+
+$l['misc_options'] = "Różne opcje";
+$l['allow_html'] = "WÅ‚Ä…cz HTML w postach";
+$l['allow_mycode'] = "WÅ‚Ä…cz MyCode w postach";
+$l['allow_smilies'] = "WÅ‚Ä…cz emotikony w postach";
+$l['allow_img_code'] = "Włącz kod IMG w postach (wymaga włączonego kodu MyCode)";
+$l['allow_video_code'] = "Włącz kod [video] w postach (wymaga włączonego kodu MyCode)";
+$l['allow_post_icons'] = "Włącz możliwość wyboru ikonek postów";
+$l['allow_thread_ratings'] = "Włącz możliwość oceniania tematów";
+$l['show_forum_jump'] = "Wyświetl dział w na liście \"Skocz do...\"";
+$l['use_postcounts'] = "Dodawaj posty napisane w tym dziale do liczników postów użytkowników";
+$l['use_threadcounts'] = "Dodawaj wątki napisane w tym dziale do liczników wątków użytkowników";
+$l['require_thread_prefix'] = "Wymagaj posiadania prefiksu przez każdy wątek";
+
+$l['use_permissions'] = "Użyj ustawień uprawnień";
+$l['use_permissions_desc'] = "Wybierz ustawienia uprawnień, które mają być używane dla tej grupy - dziedziczone lub własne.";
+$l['inherit_permissions'] = "Użyj ustawień domyślnych lub dziedziczonych z działu nadrzędnego";
+$l['custom_permissions'] = "Użyj własnych ustawień (poniższych)";
+$l['custom_permissions_for'] = "Niestandardowe uprawnienia dla";
+
+$l['inherited_permission'] = "dziedziczone";
+$l['custom_permission'] = "niestandardowe";
+
+$l['save_permissions'] = "Zapisz ustawienia uprawnień";
+
+$l['error_missing_title'] = "Musisz podać tytuł.";
+$l['error_no_parent'] = "Musisz wybrać dział nadrzędny.";
+$l['error_not_empty'] = "Działy, w których znajdują się wątki, nie mogą zostać zamienione w kategorie.";
+$l['error_forum_link_not_empty'] = "Działy, w których znajdują się wątki, nie mogą przekierowywać do innych stron.";
+
+$l['success_forum_added'] = "Dział został utworzony.";
+$l['success_moderator_added'] = "Moderator został dodany.";
+$l['success_forum_permissions_saved'] = "Ustawienia uprawnień zostały zaktualizowane.";
+$l['success_forum_copied'] = "Dział został skopiowany.";
+
+$l['error_moderator_already_added'] = "Wskazany użytkownik lub wybrana grupa jest już moderatorem tego działu.";
+$l['error_moderator_not_found'] = "Podany login lub wybrana grupa nie istnieje.";
+$l['error_new_forum_needs_name'] = "Nie podano nazwy nowego działu.";
+$l['error_invalid_source_forum'] = "Nieprawidłowy dział źródłowy.";
+$l['error_invalid_destination_forum'] = "Nieprawidłowy dział docelowy.";
+
+$l['group_viewing'] = "PrzeglÄ…danie";
+$l['group_posting_rating'] = "Pisanie i ocenianie";
+$l['group_editing'] = "Edycja";
+$l['group_moderate'] = "Moderacja";
+$l['group_polls'] = "Ankiety";
+$l['group_misc'] = "Różne";
+
+$l['viewing_field_canview'] = "Może przeglądać dział?";
+$l['viewing_field_canviewthreads'] = "Może przeglądać wątki w dziale?";
+$l['viewing_field_canonlyviewownthreads'] = "Może przeglądać tylko własne wątki?";
+$l['viewing_field_candlattachments'] = "Może pobierać załączniki?";
+
+$l['posting_rating_field_canpostthreads'] = "Może tworzyć wątki?";
+$l['posting_rating_field_canpostreplys'] = "Może pisać odpowiedzi?";
+$l['posting_rating_field_canonlyreplyownthreads'] = "Może odpowiadać tylko w swoich wątkach?";
+$l['posting_rating_field_canpostattachments'] = "Może wysyłać załączniki?";
+$l['posting_rating_field_canratethreads'] = "Może oceniać tematy?";
+
+$l['editing_field_caneditposts'] = "Może edytować własne posty?";
+$l['editing_field_candeleteposts'] = "Może usuwać własne posty?";
+$l['editing_field_candeletethreads'] = "Może usuwać własne wątki?";
+$l['editing_field_caneditattachments'] = "Może aktualizować własne załączniki?";
+
+$l['moderate_field_modposts'] = "Nowe posty sÄ… moderowane?";
+$l['moderate_field_modthreads'] = "Nowe wÄ…tki sÄ… moderowane?";
+$l['moderate_field_modattachments'] = "Nowe załączniki są moderowane";
+$l['moderate_field_mod_edit_posts'] = "Posty po edycji sÄ… moderowane?";
+
+$l['polls_field_canpostpolls'] = "Może tworzyć ankiety?";
+$l['polls_field_canvotepolls'] = "Może głosować w ankietach?";
+
+$l['misc_field_cansearch'] = "Może korzystać z wyszukiwarki?";
+
diff --git a/Upload/inc/languages/polish/admin/forum_moderation_queue.lang.php b/Upload/inc/languages/polish/admin/forum_moderation_queue.lang.php
new file mode 100644
index 0000000..f14c613
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/forum_moderation_queue.lang.php
@@ -0,0 +1,49 @@
+{3} zapytań. Użycie pamięci: {4}";
+
+// Login page
+$l['enter_username_and_password'] = "Aby kontynuować, podaj swój {1} oraz hasło.";
+$l['login_username'] = 'login';
+$l['login_email'] = 'adres e-mail';
+$l['login_username_and_password'] = 'login lub adres e-mail';
+$l['mybb_admin_login'] = "Panel administratora MyBB - logowanie";
+$l['return_to_forum'] = "Wróć do forum";
+$l['please_login'] = "Zaloguj siÄ™";
+$l['username'] = "Login:";
+$l['username1'] = "Adres e-mail:";
+$l['username2'] = "Login/Adres e-mail:";
+$l['password'] = "Hasło:";
+$l['secret_pin'] = "Tajny PIN:";
+$l['login'] = "Zaloguj";
+$l['lost_password'] = "Nie pamiętam hasła";
+
+$l['error_invalid_admin_session'] = "Niepoprawna sesja administratora";
+$l['error_admin_session_expired'] = "Sesja wygasła";
+$l['error_invalid_ip'] = "Twój adres IP nie pasuje do tej sesji";
+$l['error_mybb_admin_lockedout'] = "To konto zostało zablokowane";
+$l['error_mybb_admin_lockedout_message'] = "Konto zostało zablokowane po {1} nieudanych próbach logowania. Na Twój adres e-mail została wysłana wiadomość z instrukcjami jak odblokować swoje konto.";
+$l['error_invalid_secret_pin'] = 'Wpisałeś niepoprawny numer PIN.';
+
+$l['error_invalid_username'] = "Podany login jest niepoprawny.";
+$l['error_invalid_uid'] = "Podany ID użytkownika jest niepoprawny.";
+$l['error_invalid_token'] = "Podany kod aktywacyjny jest niepoprawny.";
+
+$l['success_logged_out'] = "Wylogowano z forum.";
+$l['error_invalid_username_password'] = "Podano nieprawidłowy {1} lub hasło.";
+
+// Action Confirmation
+$l['confirm_action'] = "Czy na pewno chcesz wykonać tę czynność?";
+
+// Common words and phrases
+$l['home'] = "Strona główna";
+$l['name'] = "Nazwa";
+$l['size'] = "Rozmiar";
+$l['controls'] = "Możliwości"; // pomarańczka
+$l['view'] = "PodglÄ…d";
+$l['yes'] = "Tak";
+$l['no'] = "Nie";
+$l['cancel'] = "Anuluj";
+$l['options'] = "Opcje";
+$l['proceed'] = "Kontynuuj";
+$l['ok'] = "OK";
+$l['error'] = "BÅ‚Ä…d";
+$l['edit'] = "Edytuj";
+$l['never'] = "Nigdy";
+$l['legend'] = "Legenda";
+$l['version'] = "Wersja";
+$l['languagevar'] = "Język";
+$l['use_default'] = "Użyj domyślnych ustawień";
+$l['file'] = "Plik";
+$l['go'] = "OK";
+$l['clear'] = "Wyczyść";
+$l['unknown'] = "Nieznane";
+$l['year'] = "Rok";
+$l['year_short'] = "r";
+$l['years'] = "Lat";
+$l['years_short'] = "l";
+$l['month'] = "MiesiÄ…c";
+$l['month_short'] = "m";
+$l['months'] = "Miesięcy";
+$l['months_short'] = "m";
+$l['week'] = "Tydzień";
+$l['week_short'] = "tydz";
+$l['weeks'] = "Tygodni";
+$l['weeks_short'] = "tyg";
+$l['day'] = "Dzień";
+$l['day_short'] = "d";
+$l['days'] = "Dni";
+$l['days_short'] = "d";
+$l['hour'] = "Godzina";
+$l['hour_short'] = "h";
+$l['hours'] = "Godzin";
+$l['hours_short'] = "h";
+$l['minute'] = "Minuta";
+$l['minute_short'] = "m";
+$l['minutes'] = "Minut";
+$l['minutes_short'] = "m";
+$l['second'] = "Sekunda";
+$l['second_short'] = "s";
+$l['seconds'] = "Sekund";
+$l['seconds_short'] = "s";
+$l['permanent'] = "Na zawsze";
+$l['all_forums'] = "Wszystkie działy";
+$l['all_groups'] = "Wszystkie grupy";
+$l['select_forums'] = "Wybierz działy";
+$l['select_groups'] = "Wybierz grupy";
+$l['forums_colon'] = "Działy:";
+$l['groups_colon'] = "Grupy:";
+$l['none'] = "Żadne";
+$l['mybb_acp'] = "MyBB ACP";
+$l['pages'] = "Stron";
+$l['previous'] = "Wstecz";
+$l['page'] = "Strona";
+$l['next'] = "Dalej";
+$l['delete'] = "Usuń";
+$l['reset'] = "Resetuj";
+$l['and'] = "i";
+$l['on'] = "Tak";
+$l['off'] = "Nie";
+$l['alt_enabled'] = "WÅ‚Ä…czone";
+$l['alt_disabled'] = "Wyłączone";
+$l['saved'] = 'Zapisano';
+
+$l['rel_in'] = "";
+$l['rel_ago'] = "temu";
+$l['rel_less_than'] = "Mniej niż ";
+$l['rel_time'] = "{1}{2} {3} {4}";
+$l['rel_minutes_single'] = "minuta";
+$l['rel_minutes_plural'] = "minut(y)";
+$l['rel_hours_single'] = "godzina";
+$l['rel_hours_plural'] = "godzin(y)";
+
+// Parser bits
+$l['quote'] = "Cytat:";
+$l['wrote'] = "napisał(a):";
+$l['code'] = "Kod:";
+$l['php_code'] = "Kod PHP:";
+$l['linkback'] = "Cytowana wypowiedź";
+
+// The months of the year
+$l['january'] = "Styczeń";
+$l['february'] = "Luty";
+$l['march'] = "Marzec";
+$l['april'] = "Kwiecień";
+$l['may'] = "Maj";
+$l['june'] = "Czerwiec";
+$l['july'] = "Lipiec";
+$l['august'] = "Sierpień";
+$l['september'] = "Wrzesień";
+$l['october'] = "Październik";
+$l['november'] = "Listopad";
+$l['december'] = "Grudzień";
+
+// Access Denied
+$l['access_denied'] = "Dostęp zabroniony";
+$l['access_denied_desc'] = "Twoje uprawnienia nie pozwalają na dostęp do tej części panelu administratora.";
+
+// Super Administrator required
+$l['cannot_perform_action_super_admin_general'] = "Wskazana czynność może zostać wykonana tylko i wyłącznie przez super administratora. Jeżeli chcesz zostać super administratorem, dopisz swoje ID użytkownika w odpowiednie miejsce w pliku inc/config.php.";
+
+// AJAX
+$l['loading_text'] = "Åadowanie ProszÄ™ czekać...";
+
+// Time zone selection boxes
+$l['timezone_gmt_minus_1200'] = "(GMT -12:00) Wyspy Marshalla";
+$l['timezone_gmt_minus_1100'] = "(GMT -11:00) Wyspa Midway, Nome";
+$l['timezone_gmt_minus_1000'] = "(GMT -10:00) Hawaje, Papeete";
+$l['timezone_gmt_minus_950'] = "(GMT -9:30) Markizy";
+$l['timezone_gmt_minus_900'] = "(GMT -9:00) Alaska";
+$l['timezone_gmt_minus_800'] = "(GMT -8:00) Czas pacyficzny (USA i Kanada)";
+$l['timezone_gmt_minus_700'] = "(GMT -7:00) Czas górski (USA i Kanada)";
+$l['timezone_gmt_minus_600'] = "(GMT -6:00) Czas środkowy (USA i Kanada)";
+$l['timezone_gmt_minus_500'] = "(GMT -5:00) Czas wschodni (USA i Kanada)";
+$l['timezone_gmt_minus_450'] = "(GMT -4:30) Caracas";
+$l['timezone_gmt_minus_400'] = "(GMT -4:00) Czas atlantycki (Kanada), La Paz, Halifax";
+$l['timezone_gmt_minus_350'] = "(GMT -3:30) Nowa Funlandia";
+$l['timezone_gmt_minus_300'] = "(GMT -3:00) Brazylia, Buenos Aires, Georgetown";
+$l['timezone_gmt_minus_200'] = "(GMT -2:00) Środkowy Atlantyk, Georgia Południowa i Sandwich Południowy";
+$l['timezone_gmt_minus_100'] = "(GMT -1:00) Azory, Wyspy Zielonego PrzylÄ…dka";
+$l['timezone_gmt'] = "(GMT) Casablanca, Dublin, Edinburgh, Londyn, Lizbona, Monrovia";
+$l['timezone_gmt_100'] = "(GMT +1:00) Berlin, Bruksela, Kopenhaga, Madryt, Paryż, Rzym, Warszawa";
+$l['timezone_gmt_200'] = "(GMT +2:00) Ateny, Stambuł, Kair, Jerozolima, Południowa Afryka";
+$l['timezone_gmt_300'] = "(GMT +3:00) Kaliningrad, Mińsk, Bagdad, Riad, Moskwa, Nairobi";
+$l['timezone_gmt_350'] = "(GMT +3:30) Teheran";
+$l['timezone_gmt_400'] = "(GMT +4:00) Moskwa, Abu Dhabi, Baku, Maskat, Tbilisi";
+$l['timezone_gmt_450'] = "(GMT +4:30) Kabul";
+$l['timezone_gmt_500'] = "(GMT +5:00) Islamabad, Karaczi, Taszkient";
+$l['timezone_gmt_550'] = "(GMT +5:30) Bombaj, Kalkuta, Madras, Nowe Delhi";
+$l['timezone_gmt_575'] = "(GMT +5:45) Katmandu";
+$l['timezone_gmt_600'] = "(GMT +6:00) AÅ‚ma-ata, Dhakra, Jekaterinburg";
+$l['timezone_gmt_650'] = "(GMT +6:30) Rangun";
+$l['timezone_gmt_700'] = "(GMT +7:00) Bangkok, Hanoi, Dżakarta";
+$l['timezone_gmt_800'] = "(GMT +8:00) Pekin, Hongkong, Perth, Singapur, Taipei";
+$l['timezone_gmt_900'] = "(GMT +9:00) Osaka, Sapporo, Seul, Tokio, Irkuck";
+$l['timezone_gmt_950'] = "(GMT +9:30) Adelajda, Darwin";
+$l['timezone_gmt_1000'] = "(GMT +10:00) Melbourne, Papua Nowa Gwinea, Sydney, Jakuck";
+$l['timezone_gmt_1050'] = "(GMT +10:30) Wyspa Lord Howe";
+$l['timezone_gmt_1100'] = "(GMT +11:00) Magadan, Nowa Kaledonia, Wyspy Salomona, WÅ‚adywostok";
+$l['timezone_gmt_1150'] = "(GMT +11:30) Wyspa Norfolk";
+$l['timezone_gmt_1200'] = "(GMT +12:00) Auckland, Wellington, Fidżi, Wyspa Marshalla";
+$l['timezone_gmt_1275'] = "(GMT +12:45) Wyspy Chatham";
+$l['timezone_gmt_1300'] = "(GMT +13:00) Samoa, Tonga, Tokelau";
+$l['timezone_gmt_1400'] = "(GMT +14:00) Wyspy Line";
+$l['timezone_gmt_short'] = "GMT {1}({2})";
+
+// Global language strings used for log deletion pages
+$l['confirm_delete_logs'] = "Czy na pewno chcesz usunąć wybrane wpisy?";
+$l['confirm_delete_all_logs'] = "Czy na pewno chcesz usunąć wszystkie wpisy?";
+$l['selected_logs_deleted'] = "Wybrane wpisy zostały usunięte.";
+$l['all_logs_deleted'] = "Wszystkie wpisy zostały usunięte.";
+$l['delete_selected'] = "Usuń wybrane";
+$l['delete_all'] = "Usuń wszystkie wyświetlone";
+
+// Misc
+$l['encountered_errors'] = "Wystąpiły następujące problemy:";
+$l['invalid_post_verify_key'] = "Wykryto nieprawidłowy kod autoryzacji. Musisz potwierdzić chęć wykonania tej czynności.";
+$l['invalid_post_verify_key2'] = "Wykryto nieprawidłowy kod autoryzacji. Sprawdź czy odwiedzasz tę stronę z poprawnego odnośnika.";
+$l['unknown_error'] = "Wystąpił nieznany błąd.";
+
+// Code buttons editor language strings
+$l['editor_bold'] = "Pogrubienie";
+$l['editor_italic'] = "Kursywa";
+$l['editor_underline'] = "Podkreślenie";
+$l['editor_strikethrough'] = "Przekreślenie";
+$l['editor_subscript'] = "Indeks dolny";
+$l['editor_superscript'] = "Indeks górny";
+$l['editor_alignleft'] = "Wyrównaj do lewej";
+$l['editor_center'] = "Wyśrodkuj";
+$l['editor_alignright'] = "Wyrównaj do prawej";
+$l['editor_justify'] = "Wyjustuj";
+$l['editor_fontname'] = "Nazwa czcionki";
+$l['editor_fontsize'] = "Rozmiar czcionki";
+$l['editor_fontcolor'] = "Kolor czcionki";
+$l['editor_removeformatting'] = "Usuń formatowanie";
+$l['editor_cut'] = "Wytnij";
+$l['editor_copy'] = "Kopiuj";
+$l['editor_paste'] = "Wklej";
+$l['editor_cutnosupport'] = "Twoja przeglądarka nie obsługuje wycinania. Skorzystaj ze skrótu klawiszowego Ctrl/Cmd+X.";
+$l['editor_copynosupport'] = "Twoja przeglądarka nie obsługuje kopiowania. Skorzystaj ze skrótu klawiszowego Ctrl/Cmd+C.";
+$l['editor_pastenosupport'] = "Twoja przeglądarka nie obsługuje wklejania. Skorzystaj ze skrótu klawiszowego Ctrl/Cmd+V.";
+$l['editor_pasteentertext'] = "Wklej swój tekst do poniższego pola:";
+$l['editor_pastetext'] = "Wklej tekst";
+$l['editor_numlist'] = "Lista numerowana";
+$l['editor_bullist'] = "Lista punktowana";
+$l['editor_undo'] = "Cofnij";
+$l['editor_redo'] = "Ponów";
+$l['editor_rows'] = "Wierszy:";
+$l['editor_cols'] = "Kolumn:";
+$l['editor_inserttable'] = "Wstaw tabelÄ™";
+$l['editor_inserthr'] = "Wstaw poziomÄ… liniÄ™";
+$l['editor_code'] = "Kod";
+$l['editor_php'] = "Kod PHP";
+$l['editor_width'] = "Szerokość (opcjonalnie):";
+$l['editor_height'] = "Wysokość (opcjonalnie):";
+$l['editor_insertimg'] = "Wstaw obrazek";
+$l['editor_email'] = "Adres e-mail:";
+$l['editor_insertemail'] = "Wstaw adres e-mail";
+$l['editor_url'] = "Adres URL:";
+$l['editor_insertlink'] = "Wstaw link";
+$l['editor_unlink'] = "Usuń link";
+$l['editor_more'] = "Więcej";
+$l['editor_insertemoticon'] = "Wstaw emotikon";
+$l['editor_videourl'] = "Adres URL wideo:";
+$l['editor_videotype'] = "Typ wideo:";
+$l['editor_insert'] = "Wstaw";
+$l['editor_insertyoutubevideo'] = "Wstaw wideo z serwisu YouTube";
+$l['editor_currentdate'] = "Wstaw aktualnÄ… datÄ™";
+$l['editor_currenttime'] = "Wstaw aktualny godzinÄ™";
+$l['editor_print'] = "Drukuj";
+$l['editor_viewsource'] = "Pokaż źródło";
+$l['editor_description'] = "Opis (opcjonalnie):";
+$l['editor_enterimgurl'] = "Wprowadź adres URL obrazka:";
+$l['editor_enteremail'] = "Wprowadź adres e-mail:";
+$l['editor_enterdisplayedtext'] = "Wpisz tekst z obrazka:";
+$l['editor_enterurl'] = "Wprowadź adres URL:";
+$l['editor_enteryoutubeurl'] = "Wprowadź adres URL wideo lub jego ID:";
+$l['editor_insertquote'] = "Wstaw cytat";
+$l['editor_invalidyoutube'] = "Nieprawidłowe wideo";
+$l['editor_dailymotion'] = "Dailymotion";
+$l['editor_metacafe'] = "MetaCafe";
+$l['editor_veoh'] = "Veoh";
+$l['editor_vimeo'] = "Vimeo";
+$l['editor_youtube'] = "Youtube";
+$l['editor_facebook'] = "Facebook";
+$l['editor_liveleak'] = "LiveLeak";
+$l['editor_insertvideo'] = "Wstaw wideo";
+$l['editor_maximize'] = "Maksymalizuj";
+
+$l['missing_task'] = "BÅ‚Ä…d: plik zadania nie istnieje";
+$l['task_backup_cannot_write_backup'] = "Błąd: zadanie kopii zapasowych bazy danych nie ma uprawnień do zapisu w katalogu kopii zapasowych.";
+$l['task_backup_ran'] = "Zadanie kopii zapasowej bazy danych zostało wykonane.";
+$l['task_checktables_ran'] = "Zadanie sprawdzania tabel zostało wykonane, nie znaleziono żadnych błędów.";
+$l['task_checktables_ran_found'] = "Uwaga: Zadanie sprawdzania tabel zostało wykonane, znaleziono i naprawiono {1} błędów.";
+$l['task_dailycleanup_ran'] = "Zadanie codziennego oczyszczania zostało wykonane.";
+$l['task_hourlycleanup_ran'] = "Zadanie cogodzinnego oczyszczania zostało wykonane.";
+$l['task_logcleanup_ran'] = "Zadanie oczyszczania logów zostało wykonane, stare logi zostały wyczyszczone.";
+$l['task_promotions_ran'] = "Zadanie promocji zostało wykonane.";
+$l['task_threadviews_ran'] = "Zadanie przeliczania wyświetleń tematów zostało wykonane.";
+$l['task_usercleanup_ran'] = "Zadanie oczyszczania użytkowników zostało wykonane.";
+$l['task_massmail_ran'] = "Zadanie masowego mailingu zostało wykonane.";
+$l['task_userpruning_ran'] = "Zadanie czyszczenia użytkowników zostało wykonane.";
+$l['task_delayedmoderation_ran'] = "Zadanie opóźnionej moderacji zostało wykonane.";
+$l['task_massmail_ran_errors'] = "Wystąpił jeden lub więcej problemów podczas wysyłania wiadomości do \"{1}\":
+{2}";
+$l['task_versioncheck_ran'] = "Zadanie sprawdzania wersji zostało uruchomione.";
+$l['task_versioncheck_ran_errors'] = "Nie można połączyć się z MyBB w celu sprawdzenia wersji.";
+$l['task_recachestylesheets_ran'] = 'Załadowano do pamięci cache {1} arkuszy stylów kaskadowych.';
+
+$l['massmail_username'] = "Login";
+$l['email_addr'] = "Adres e-mail";
+$l['board_name'] = "Nazwa forum";
+$l['board_url'] = "Adres forum";
+
+// Unlock ACP
+$l['lockout_unlock'] = "Odblokuj panel administratora";
+$l['enter_username_and_token'] = "Podaj swój login oraz kod aktywacyjny aby kontynuować.";
+$l['unlock_token'] = "Kod aktywacyjny:";
+$l['unlock_account'] = "Odblokuj konto";
+
+// Email message for if an admin account has been locked out
+$l['locked_out_subject'] = "Zablokowane konto administratora na forum {1}";
+$l['locked_out_message'] = "{1},
+
+Twoje konto administratora na forum {2} zostało zablokowane po {3} nieudanych próbach logowania.
+
+Aby odblokować swoje konto, odwiedź poniższy odnośnik.
+
+{4}/{5}/index.php?action=unlock&uid={7}&token={6}
+
+Jeżeli powyższy odnośnik nie działa, przejdź do
+
+{4}/{5}/index.php?action=unlock
+
+Dane potrzebne do odblokowania konta:
+Login: {1}
+Kod aktywacyjny: {6}
+
+Dziękujemy,
+Ekipa {2}";
+
+$l['comma'] = ", ";
+
+// If the language string for "Username" is too cramped in the ACP Login box
+// then use this to define how much larger you want the gap to be (in px)
+// $l['login_field_width'] = "0";
+
diff --git a/Upload/inc/languages/polish/admin/home_credits.lang.php b/Upload/inc/languages/polish/admin/home_credits.lang.php
new file mode 100644
index 0000000..6692ade
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/home_credits.lang.php
@@ -0,0 +1,14 @@
+Sprawdź aktualizacje.";
diff --git a/Upload/inc/languages/polish/admin/home_dashboard.lang.php b/Upload/inc/languages/polish/admin/home_dashboard.lang.php
new file mode 100644
index 0000000..02127bb
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/home_dashboard.lang.php
@@ -0,0 +1,55 @@
+Sprawdź czy używasz najnowszej wersji MyBB - od ostatniego sprawdzenia minęło więcej niż dwa tygodnie.";
+$l['new_version_available'] = "Wersja MyBB, której używasz to {1}. Najnowsza wersja to: {2}.";
+$l['version_check_description'] = "Tutaj możesz sprawdzić, czy używasz najnowszej wersji skryptu oraz przeczytać najnowsze wiadomości prosto ze świata MyBB.";
+$l['latest_mybb_announcements'] = "Wiadomości MyBB";
+$l['no_announcements'] = "Nie ma pobranych żadnych wiadomości. Sprawdź aktualizacje .";
+$l['your_version'] = "Twoja wersja";
+$l['latest_version'] = "Ostatnia wersja";
+$l['update_forum'] = "Zaktualizuj swojÄ… wersjÄ™ MyBB do najnowszej przechodzÄ…c na stronÄ™ MyBB .";
+$l['read_more'] = "Czytaj więcej";
+
+$l['success_up_to_date'] = "Gratulacje, używasz najnowszej wersji MyBB.";
+
+$l['error_out_of_date'] = "Twoja wersja MyBB jest nieaktualna.";
+$l['error_communication'] = "Wystąpił błąd podczas połączenia z serwerem sprawdzania wersji. Spróbuj ponownie za kilka minut.";
+$l['error_fetch_news'] = "Nie udało się pobrać ostatnich wiadomości ze strony MyBB.";
+
+$l['news_description'] = "Najnowsze wiadomości z bloga MyBB .";
+
+$l['admin_notes_public'] = "Poniższe notatki są widoczne dla wszystkich administratorów.";
+$l['admin_notes'] = "Notatki administratorów";
+$l['save_notes'] = "Zapisz";
+
+$l['success_notes_updated'] = "Notatki zostały zaktualizowane.";
diff --git a/Upload/inc/languages/polish/admin/home_module_meta.lang.php b/Upload/inc/languages/polish/admin/home_module_meta.lang.php
new file mode 100644
index 0000000..6f50119
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/home_module_meta.lang.php
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/admin/style_module_meta.lang.php b/Upload/inc/languages/polish/admin/style_module_meta.lang.php
new file mode 100644
index 0000000..8ecc7ab
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/style_module_meta.lang.php
@@ -0,0 +1,15 @@
+{1}\"";
+$l['search_noresults_title'] = "Nie znaleziono szablonów o tytule \"{1} \"";
+$l['default_templates'] = "Szablony domyślne";
+
+$l['edit_template_breadcrumb'] = "Edycja szablonu: ";
+
+$l['global_templates'] = "Szablony globalne";
+$l['master_templates'] = "Szablony główne";
+
+$l['not_used_by_any_themes'] = "Nieużywany przez żaden styl";
+$l['used_by'] = "Używany przez: ";
+$l['used_by_all_themes'] = "Używany przez wszystkie style";
+
+$l['expand_templates'] = "Wyświetl szablony";
+$l['edit_template_set'] = "Edytuj paczkÄ™";
+$l['delete_template_set'] = "Usuń paczkę";
+$l['empty_template_set'] = "Ta paczka nie zawiera szablonów. ";
+
+$l['inline_edit'] = "Szybka edycja"; // towyleci w rc (komentarz z tłumaczenia 1.6.x)
+$l['full_edit'] = "Edytuj"; // a to sie pewnie zmieni (j.w.)
+$l['revert_to_orig'] = "Przywróć oryginał";
+$l['delete_template'] = "Usuń szablon";
+$l['edit_in'] = "Edytuj w";
+
+$l['group_calendar'] = "Kalendarz -";
+$l['group_forumdisplay'] = "Widok działu -";
+$l['group_index'] = "Strona główna -";
+$l['group_error'] = "Informacja o błędzie -";
+$l['group_memberlist'] = "Lista użytkowników -";
+$l['group_multipage'] = "Stronicowanie -";
+$l['group_private'] = "Prywatne wiadomości -";
+$l['group_portal'] = "Portal -";
+$l['group_postbit'] = "Opis posta -";
+$l['group_posticons'] = "Ikona postu -";
+$l['group_showthread'] = "Widok wÄ…tku -";
+$l['group_usercp'] = "Panel użytkownika -";
+$l['group_online'] = "Kto jest online -";
+$l['group_forumbit'] = "Opis działu -";
+$l['group_editpost'] = "Edycja posta -";
+$l['group_forumjump'] = "Skocz do... -";
+$l['group_moderation'] = "Moderacja -";
+$l['group_nav'] = "Nawigacja -";
+$l['group_search'] = "Wyszukiwarka -";
+$l['group_showteam'] = "Ekipa forum -";
+$l['group_reputation'] = "Reputacja -";
+$l['group_newthread'] = "Nowy wÄ…tek -";
+$l['group_newreply'] = "Nowa odpowiedź -";
+$l['group_member'] = "PodglÄ…d profilu -";
+$l['group_warning'] = "System ostrzeżeń -";
+$l['group_global'] = "Globalne";
+$l['group_header'] = "Nagłówek -";
+$l['group_managegroup'] = "ZarzÄ…dzanie grupami -";
+$l['group_misc'] = "Różne";
+$l['group_modcp'] = "Panel moderatora -";
+$l['group_announcement'] = "Ogłoszenie -";
+$l['group_polls'] = "Ankieta -";
+$l['group_post'] = "Post -";
+$l['group_printthread'] = "Wydruk tematu -";
+$l['group_report'] = "Raport -";
+$l['group_smilieinsert'] = "Okno z emotikonami -";
+$l['group_stats'] = "Statystyki -";
+$l['group_xmlhttp'] = "XMLHTTP -";
+$l['group_footer'] = "Stopka -";
+$l['group_video'] = "MyCode wideo -";
+$l['group_sendthread'] = "Wyślij wątek";
+
+$l['expand'] = "Rozwiń";
+$l['collapse'] = "Zwiń";
+
+$l['save_continue'] = "Zapisz i kontynuuj edycjÄ™";
+$l['save_close'] = "Zapisz i wróć do listy";
+
+$l['template_name'] = "Nazwa szablonu";
+$l['template_name_desc'] = "Nazwa szablonu. Jeżeli zmienisz ją domyślnemu szablonowi, twoja wersja zostanie zapisana jako kopia o zmienionej nazwie.";
+$l['template_set_desc'] = "W której paczce ma się znajdować ten szablon?";
+
+$l['template_group_prefix'] = "Prefiks grupy szablonów";
+$l['template_group_prefix_desc'] = "Prefiks którym będą poprzedzone nazwy wszystkich szablonów z tej grupy. Nie może się pokrywać z istniejącą grupą szablonów. Przykładowo, jeżeli szablony mają się nazywać hello_world , hello_foobar i hello_foo , jako prefiks wpisz hello .";
+$l['template_group_title'] = "Nazwa grupy szablonów";
+$l['template_group_title_desc'] = "Wpisz nazwę dla tej grupy szablonów. Będzie ona pokazywana na liście szablonów. Przykładowo, jeżeli prefiksem grupy szablonów jest hello , możesz tu wpisać Hello .";
+
+$l['edit_template_group'] = "Edytuj grupę szablonów";
+$l['editing_template_group'] = "Editowanie grupy szablonów: {1}";
+$l['delete_template_group'] = "Usuń grupę szablonów";
+$l['save_template_group'] = "Zapisz grupę szablonów";
+
+$l['templates_the_same'] = "Wskazane przez Ciebie szablony sÄ… identyczne.";
+$l['master_updated_ins'] = "W ten sposób oznaczono różnice pomiędzy poprzednią a aktualną wersją.";
+$l['master_updated_del'] = "W ten sposób oznaczono miejsca, w których usunięto dokonane przez Ciebie zmiany.";
+$l['template_diff_analysis'] = "Analiza różnic w szablonach";
+$l['search_names_header'] = "Wyszukiwanie szablonów o nazwach zawierających \"{1}\"";
+
+$l['updated_template_welcome1'] = "Edycja - pozwala na modyfikacjÄ™ wybranego szablonu celem dostosowania go do nowej wersji systemu.";
+$l['updated_template_welcome2'] = "Przywracanie - powoduje utratę wszelkich wprowadzonych zmian, ale pozwala na przywrócenie domyślnego wyglądu szablonu w przypadku awarii.";
+$l['updated_template_welcome3'] = "Podgląd różnic - wyświetla wszystkie zmiany, jakich dokonano w danym szablonie.";
+
+$l['no_global_templates'] = "Aktualnie nie ma globalnych szablonów.";
+$l['no_updated_templates'] = "Żaden szablon nie był modyfikowany od czasu ostatniej aktualizacji.";
+
+$l['confirm_template_set_deletion'] = "Czy na pewno chcesz usunąć tę paczkę szablonów?";
+$l['confirm_template_group_delete'] = "Czy na pewno chcesz usunąć tę grupę szablonów? Nie spowoduje to usunięcia szablonów należących do tej grupy.";
+$l['confirm_template_deletion'] = "Czy na pewno chcesz usunąć ten szablon?";
+$l['confirm_template_revertion'] = "Czy na pewno chcesz przywrócić ten szablon do stanu domyślnego?";
+
+$l['error_security_problem'] = "W tym szablonie została wykryta potencjalna luka bezpieczeństwa. Zweryfikuj szablon lub skontaktuj się z twórcami MyBB w celu uzyskania pomocy.";
+$l['error_missing_input'] = "Upewnij się, że wprowadzono wszystkie dane potrzebne do tej operacji (tid, sid)";
+$l['error_already_exists'] = "Podany tytuł szablonu jest już w użyciu. Podaj inny tytuł.";
+$l['error_invalid_template'] = "Wybierz poprawny szablon.";
+$l['error_missing_set_title'] = "Podaj nazwÄ™ paczki.";
+$l['error_invalid_input'] = "Upewnij się, że podano poprawne ID szablonu.";
+$l['error_invalid_set'] = "Wybierz poprawnÄ… paczkÄ™.";
+$l['error_invalid_template_set'] = "Wybrano niepoprawnÄ… paczkÄ™.";
+$l['error_themes_attached_template_set'] = "Ta paczka nie może zostać usunięta - znajdują się w niej szablony, które są aktualnie w użyciu.";
+$l['error_missing_group_prefix'] = "Podaj prefiks dla grupy szablonów.";
+$l['error_missing_group_title'] = "Podaj nazwę dla tej grupy szablonów.";
+$l['error_duplicate_group_prefix'] = "Podany prefiks jest już w użyciu. Podaj inny prefiks.";
+$l['error_missing_template_group'] = "Nie znaleziono grupy szablonów o podanej nazwie.";
+$l['error_default_template_group'] = "Nie możesz edytować i usuwać domyślnych grup szablonów.";
+
+$l['success_template_saved'] = "Szablon został zapisany.";
+$l['success_template_deleted'] = "Szablon został usunięty.";
+$l['success_template_reverted'] = "Szablon został przywrócony.";
+$l['success_template_set_saved'] = "Paczka szablonów została zapisana.";
+$l['success_template_set_deleted'] = "Paczka szablonów została usunięta.";
+$l['success_template_group_saved'] = "Grupa szablonów została zapisana.";
+$l['success_template_group_deleted'] = "Grupa szablonów zostałą usunięta.";
diff --git a/Upload/inc/languages/polish/admin/style_themes.lang.php b/Upload/inc/languages/polish/admin/style_themes.lang.php
new file mode 100644
index 0000000..cc7e146
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/style_themes.lang.php
@@ -0,0 +1,221 @@
+Paczki szablonów, arkusze CSS i inne ustawienia są kopiowane ze stylu głównego.";
+
+$l['import_a_theme'] = "Importuj styl";
+$l['import_a_theme_desc'] = "Zaimportuj styl z pliku znajdujÄ…cego siÄ™ na Twoim komputerze lub pod adresem URL.";
+
+$l['edit_stylesheets'] = "Edytuj arkusze CSS";
+$l['edit_stylesheets_desc'] = "Edytuj arkusze CSS używane w tym stylu. Arkusze CSS określają wygląd czcionek, kolory i inne wizualne aspekty forum. Poniżej znajduje się lista arkuszy związanych z tym stylem.";
+
+$l['add_stylesheet'] = "Nowy arkusz CSS";
+$l['add_stylesheet_desc'] = "Utwórz nowy arkusz CSS związany z tym stylem, by uzyskać większą kontrolę nad jego wyglądem. Po utworzeniu arkusza rozpoczniesz jego edycję.";
+
+$l['browse_themes'] = "PrzeglÄ…daj style";
+$l['browse_themes_desc'] = "Przeglądaj style z oficjalnej strony z dodatkami do MyBB, które są kompatybilne z używaną przez Ciebie wersją MyBB.";
+
+$l['browse_all_themes'] = "PrzeglÄ…daj wszystkie style";
+
+$l['export_theme'] = "Eksportuj styl";
+$l['export_theme_desc'] = "Wyeksportuj styl i przypisane do niego modyfikacje szablonów. Pozwoli to przekazać innym efekty Twojej pracy i użyć tego stylu na innym forum.";
+
+$l['duplicate_theme'] = "Duplikuj styl";
+$l['duplicate_theme_desc'] = "Zduplikuj jeden z obecnie zainstalowanych stylów. Może to pomóc przy tworzeniu kolejnej wersji danego stylu.";
+
+$l['colors_manage'] = "ZarzÄ…dzaj kolorami";
+$l['colors_attached_to'] = "koloru";
+$l['colors_setting'] = "Kolor podstawowy";
+$l['colors_setting_desc'] = "Wybierz kolor, który ma być podstawowym dla tego wariantu. Zostaną użyte arkusze stylów dołączone do tego stylu.";
+$l['colors_no_color_setting'] = "Brak dostępnych kolorów. Aby skorzystać z tej funkcji, utwórz poniżej listę kolorów.";
+$l['colors_add'] = "ZarzÄ…dzaj kolorami";
+$l['colors_add_desc'] = "Lista kolorów dostępnych w tym stylu. Powinny być one zapisane w formacie \"kolor=nazwa\", na przykład blue=Niebieski . Każdy kolor powinien się znaleźć w nowej linii.";
+$l['colors_please_select'] = "Brak";
+$l['colors_add_edit_desc'] = "Wybierz kolor, do którego ma być dołączony ten arkusz stylów. Możesz wybrać więcej niż jeden.";
+$l['colors_specific_color'] = "Specific color";
+
+$l['include_custom_only'] = "Dołączyć tylko zmienione elementy?";
+$l['include_custom_only_desc'] = "Jeżeli chcesz dołączyć również te elementy (arkusze CSS itd.), które są kopiowane ze stylu głównego, wybierz \"Nie\". Jeśli nie wybierzesz tej opcji, wyeksportowane zostaną jedynie elementy charakterystyczne dla tego stylu.";
+$l['include_templates'] = "Dołączyć też szablony?";
+$l['include_templates_desc'] = "Jeżeli chcesz, by wyeksportowane zostały również zmodyfikowane szablony, wybierz \"Tak\".";
+
+$l['edit_stylesheet_simple_mode'] = "Edytuj CSS: tryb uproszczony";
+$l['edit_stylesheet_simple_mode_desc'] = "Edytuj arkusz CSS przypisany do stylu. Tryb uproszczony pozwala na edytowanie kodu CSS nie wymagając jego znajomości. Wybierz element z poniższej listy, aby rozpocząć.";
+$l['edit_stylesheet_advanced_mode'] = "Edytuj CSS: tryb zaawansowany";
+$l['edit_stylesheet_advanced_mode_desc'] = "Edytuj arkusz CSS przypisany do stylu jak zwykły plik tekstowy. Pełna zawartość arkusza widoczna jest w polu poniżej.";
+
+$l['theme'] = "Styl";
+$l['num_users'] = "Liczba użytkowników";
+$l['edit_theme'] = "Edytuj styl";
+$l['delete_theme'] = "Usuń styl";
+$l['set_as_default'] = "Ustaw jako domyślny";
+$l['default_theme'] = "Styl domyślny";
+$l['force_on_users'] = "Wymuś używanie";
+$l['delete_revert'] = "Usuń lub przywróć";
+
+$l['local_file'] = "Plik z dysku";
+$l['url'] = "URL";
+$l['import_from'] = "Importuj z";
+$l['import_from_desc'] = "Wybierz plik, z którego zostanie zaimportowany nowy styl. Może to być plik znajdujący się na Twoim dysku lub pod podanym adresem URL.";
+$l['parent_theme'] = "Styl główny";
+$l['parent_theme_desc'] = "Wybierz styl, z którego zostaną skopiowane paczki szablonów, arkusze CSS i inne ustawienia.";
+$l['new_name'] = "Nazwa";
+$l['new_name_desc'] = "Nazwa dla importowanego stylu. Jeżeli pozostawisz to pole puste, użyta zostanie nazwa pliku ze stylem.";
+$l['advanced_options'] = "Opcje zaawansowane";
+$l['ignore_version_compatibility'] = "Ignoruj kompatybilność wersji";
+$l['ignore_version_compat_desc'] = "Wybierz tę opcję, jeśli styl ma zostać zainstalowany pomimo ewentualnych niezgodności wersji MyBB i tej, dla której został przeznaczony.";
+$l['import_stylesheets'] = "Importuj arkusze CSS";
+$l['import_stylesheets_desc'] = "Wybierz tę opcję, jeśli ten styl zawiera zmodyfikowane arkusze CSS i chcesz je zainstalować.";
+$l['import_templates'] = "Importuj szablony";
+$l['import_templates_desc'] = "Wybierz tę opcję, jeśli ten styl zawiera zmodyfikowane szablony i chcesz je zainstalować.";
+$l['import_theme'] = "Importuj styl";
+
+$l['new_name_duplicate_desc'] = "Nazwa nowego stylu, który ma być duplikatem.";
+$l['duplicate_stylesheets'] = "Duplikuj arkusze stylów";
+$l['duplicate_stylesheets_desc'] = "Wybierz tę opcję, jeśli ten styl zawiera zmodyfikowane arkusze CSS i chcesz je dołączyć do zduplikowanego stylu.";
+$l['duplicate_templates'] = "Duplikuj szablony";
+$l['duplicate_templates_desc'] = "Wybierz tę opcję, jeśli ten styl zawiera zmodyfikowane szablony i chcesz je dołączyć do zduplikowanego stylu.";
+
+$l['create_a_theme'] = "Nowy styl";
+$l['name'] = "Nazwa";
+$l['name_desc'] = "Podaj nazwÄ™ dla nowego stylu.";
+$l['display_order'] = "Kolejność";
+
+$l['edit_theme_properties'] = "Edycja właściwości stylu";
+$l['name_desc_edit'] = "Podaj nazwÄ™ dla tego stylu.";
+$l['allowed_user_groups'] = "Dopuszczone grupy użytkowników";
+$l['allowed_user_groups_desc'] = "Wybierz grupy użytkowników, które mają prawo używać tego stylu. Jeżeli wybierzesz \"Wszystkie grupy\", inne wskazania nie będą mieć znaczenia. Przytrzymaj klawisz CTRL i klikaj, by wybrać więcej niż jedną grupę.";
+$l['all_user_groups'] = "Wszystkie grupy";
+$l['template_set'] = "Paczka szablonów";
+$l['template_set_desc'] = "Wybierz paczkę szablonów, która ma być używana przez ten styl. Wybrana paczka będzie decydować o formie (HTML) wyświetlania danych przez ten styl.";
+$l['editor_theme'] = "WyglÄ…d edytora";
+$l['editor_theme_desc'] = "Wybierz wygląd edytora MyCode, który ma być używany w tym stylu. Wyglądy edytorów możesz znaleźć w katalogu jscripts/editor_themes .";
+$l['img_directory'] = "Katalog obrazków";
+$l['img_directory_desc'] = "Ścieżka do katalogu, w którym przechowywane będą obrazki związane z tym stylem. Pamiętaj, że ten wpis ma związek jedynie z obrazkami używanymi w szablonach, nie w arkuszach CSS.";
+$l['logo'] = "Logo forum";
+$l['logo_desc'] = "Ścieżka do obrazka z logiem forum używanym w tym stylu (jest to obrazek, który pojawia się u góry każdej strony).";
+$l['table_spacing'] = "Cellpadding";
+$l['table_spacing_desc'] = "Odstęp zawartości od brzegu komórek tabel, w pikselach. Jest to wartość atrybutu cellpadding w tagu table .";
+$l['inner_border'] = "Cellspacing";
+$l['inner_border_desc'] = "Odstęp pomiędzy komórkami tabel, w pikselach. Jest to wartość atrybutu cellspacing w tagu table .";
+$l['save_theme_properties'] = "Zapisz właściwości stylu";
+$l['save_stylesheet_order'] = "Zapisz kolejność arkuszy stylów";
+
+$l['background'] = "TÅ‚o (background)";
+$l['extra_css_atribs'] = "Dodatkowe atrybuty CSS";
+$l['color'] = "Kolor (color)";
+$l['width'] = "Szerokość (width)";
+$l['text_decoration'] = "Dekoracja tekstu (text-decoration)";
+$l['font_family'] = "Rodzaj czcionki (font-family)";
+$l['font_size'] = "Rozmiar czcionki (font-size)";
+$l['font_style'] = "Styl czcionki (font-style)";
+$l['font_weight'] = "Waga czcionki (font-weight)";
+
+$l['stylesheets'] = "Arkusze CSS";
+$l['inherited_from'] = "Dziedziczone z";
+$l['attached_to'] = "Dołączane do";
+$l['attached_to_nothing'] = "Niedołączane do żadnego pliku";
+$l['attached_to_desc'] = "Możesz sprawić, by arkusze były dołączane tylko do wybranych plików, czy nawet tylko podczas konkretnych czynności wykonywanych w tych plikach.";
+$l['actions'] = "czynności";
+$l['of'] = "";
+$l['attached_to_all_pages'] = "Dołączany do wszystkich stron";
+$l['properties'] = "Właściwości";
+$l['edit_style'] = "Edytuj styl";
+$l['stylesheets_in'] = "Arkusze CSS stylu";
+$l['stylesheet_properties'] = "Właściwości arkuszy CSS";
+$l['stylesheet_inherited_default'] = "Ten arkusz jest aktualnie dziedziczony od {1}. Jeżeli dokonasz jakichś zmian, zostanie on skopiowany i przestanie być dziedziczony.";
+$l['stylesheet_inherited'] = "Ten arkusz jest aktualnie dziedziczony od {1}. Jeżeli dokonasz jakichś zmian, zostanie on skopiowany i przestanie być dziedziczony. Wyedytuj ten arkusz z poziomu stylu {1} by zachować dziedziczenie.";
+$l['globally'] = "Do wszystkich";
+$l['specific_files'] = "Do wybranych plików";
+$l['specific_actions'] = "Do wybranych czynności";
+$l['specific_actions_desc'] = "Kody czynności, oddzielone przecinkami";
+$l['file'] = "Plik";
+$l['add_another'] = "Dodaj";
+$l['edit_stylesheet_properties_for'] = "Edytuj właściwości arkusza";
+$l['file_name'] = "Nazwa pliku";
+$l['file_name_desc'] = "Nazwa arkusza, zwykle z rozszerzeniem .css ";
+$l['save_stylesheet_properties'] = "Zapisz właściwości arkusza";
+$l['saved'] = "Zapisano";
+$l['editing'] = "Edytowanie";
+$l['selector'] = "Selektor";
+$l['save_changes'] = "Zapisz zmiany";
+$l['save_changes_and_close'] = "Zapisz zmiany i zamknij";
+$l['save_changes_js'] = "Czy chcesz najpierw zapisać zmiany?";
+$l['delete_confirm_js'] = "Czy ma pewno chcesz to usunąć?";
+$l['import_stylesheet_from'] = "Importuj z innego arkusza w tym stylu";
+$l['write_own'] = "Wpisz podaną przeze mnie zawartość";
+$l['save_stylesheet'] = "Zapisz arkusz";
+$l['add_stylesheet_to'] = "Dodaj arkusz do";
+
+$l['full_stylesheet_for'] = "Zawartość arkusza";
+
+$l['recommended_themes_for_mybb'] = "Zalecane style dla MyBB {1}";
+$l['browse_results_for_mybb'] = "PrzeglÄ…daj wyniki dla MyBB {1}";
+$l['search_for_themes'] = "Szukaj stylów";
+$l['search'] = "Szukaj";
+$l['download'] = "Pobierz";
+$l['created_by'] = "Autor";
+
+$l['error_invalid_stylesheet'] = "Wybrano nieprawidłowy arkusz.";
+$l['error_invalid_theme'] = "Wybrano nieprawidłowy styl.";
+$l['error_missing_name'] = "Podaj nazwÄ™ stylu.";
+$l['error_missing_url'] = "Podaj prawidłowy adres pliku do zaimportowania.";
+$l['error_theme_already_exists'] = "Podana nazwa stylu jest już zajęta. Wpisz inną nazwę.";
+$l['error_theme_security_problem'] = "W stylu została znaleziona potencjalna luka bezpieczeństwa, więc nie został zaimportowany. Skontaktuj się z autorem stylu bądź ekipą MyBB w celu uzyskania pomocy.";
+
+$l['error_local_file'] = "Nie udało się otworzyć pliku z dysku. Sprawdź, czy taki plik istnieje, i spróbuj ponownie.";
+$l['error_uploadfailed'] = "Wysyłanie nie powiodło się. Spróbuj ponownie.";
+$l['error_uploadfailed_detail'] = "Szczegóły błędu: ";
+$l['error_uploadfailed_php1'] = "PHP zwróciło: Wysyłany plik przekroczył rozmiar ustalony w dyrektywie upload_max_filesize w php.ini. Skontaktuj się w tej sprawie z administratorem serwera.";
+$l['error_uploadfailed_php2'] = "Wysyłany plik przekroczył dopuszczalny rozmiar pliku.";
+$l['error_uploadfailed_php3'] = "Plik został tylko częściowo wysłany.";
+$l['error_uploadfailed_php4'] = "Plik nie został wysłany.";
+$l['error_uploadfailed_php6'] = "PHP zwróciło: Brak folderu tymczasowego. Skontaktuj się w tej sprawie z administratorem serwera.";
+$l['error_uploadfailed_php7'] = "PHP zwróciło: Zapis na dysk nieudany. Skontaktuj się w tej sprawie z administratorem serwera.";
+$l['error_uploadfailed_phpx'] = "PHP zwróciło kod błędu: {1}. Skontaktuj się w tej sprawie z administratorem serwera.";
+$l['error_uploadfailed_lost'] = "Nie znaleziono pliku na serwerze.";
+$l['error_uploadfailed_nocontents'] = "MyBB nie znalazło danych dotyczących stylu w przesłanym pliku. Upewnij się, czy plik nie jest uszkodzony.";
+$l['error_invalid_version'] = "Ten styl został utworzony dla innej wersji MyBB. Zaznacz opcję \"Ignoruj kompatybilność wersji\" by zignorować ten błąd.";
+$l['error_missing_stylesheet_name'] = "Podaj nazwÄ™ dla tego arkusza.";
+$l['error_missing_stylesheet_extension'] = "Arkusz stylów musi mieć poprawne rozszerzenie, na przykład {1}.css ";
+$l['error_invalid_parent_theme'] = "Wybrany styl nadrzędny nie istnieje. Wybierz prawidłowy styl.";
+$l['error_invalid_templateset'] = "Wybrana paczka szablonów nie istnieje. Wybierz prawidłową paczkę.";
+$l['error_invalid_editortheme'] = "Wybrany wygląd edytora nie istnieje. Wybierz prawidłowy wygląd.";
+$l['error_inheriting_stylesheets'] = "Nie możesz usunąć tego stylu, bo niektóre spośród innych stylów dziedziczą od niego arkusze CSS.";
+$l['error_cannot_parse'] = "MyBB nie potrafi przystosować tego arkusza CSS do edycji w trybie uproszczonym. Dostępny jest jedynie tryb zaawansowany.";
+$l['error_communication_problem'] = "Wystąpił błąd podczas komunikacji z serwerem stylów dla MyBB. Spróbuj ponownie za kilka minut.";
+$l['error_no_results_found'] = "Wyszukiwanie z podanymi słowami kluczowymi nie zwróciło żadnych wyników.";
+$l['error_no_color_picked'] = "Nie wybrano kolorów, do których ma być dołączony ten arkusz CSS.";
+$l['error_no_display_order'] = "Wystąpił błąd podczas sprawdzania kolejności wyświetlania arkuszy CSS. Odśwież stronę i spróbuj ponownie.";
+
+$l['success_duplicated_theme'] = "Wybrany styl został zduplikowany.";
+$l['success_imported_theme'] = "Wybrany styl został zaimportowany.";
+$l['success_theme_created'] = "Styl został utworzony.";
+$l['success_theme_deleted'] = "Wybrany styl został usunięty.";
+$l['success_stylesheet_properties_updated'] = "Właściwości wybranego arkusza CSS zostały zaktualizowane.";
+$l['success_stylesheet_updated'] = "Wybrany arkusz CSS został zaktualizowany.";
+$l['success_stylesheet_deleted'] = "Wybrany arkusz CSS został usunięty lub przywrócony.";
+$l['success_theme_set_default'] = "Wybrany styl stał się domyślnym.";
+$l['success_theme_forced'] = "Wszyscy użytkownicy zostali zmuszeni do używania tego stylu.";
+$l['success_theme_properties_updated'] = "Właściwości wybranego stylu zostały zaktualizowane.";
+$l['success_stylesheet_added'] = "Arkusz CSS został utworzony.";
+$l['success_stylesheet_order_updated'] = "Kolejność wyświetlania arkuszy CSS została zaktualizowana.";
+
+$l['confirm_theme_deletion'] = "Czy na pewno chcesz usunąć ten styl?";
+$l['confirm_stylesheet_deletion'] = "Czy na pewno chcesz usunąć lub przywrócić ten arkusz CSS?";
+$l['confirm_theme_forced'] = "Czy na pewno chcesz wymusić używanie tego stylu przez wszystkich użytkowników?";
+
+$l['theme_info_fetch_error'] = 'Wystąpił problem podczas pobierania informacji o stylu.';
+$l['theme_info_save_error'] = 'Wystąpił problem podczas zapisywania informacji o stylu.';
+
+$l['saving'] = 'Zapisywanie...';
+
diff --git a/Upload/inc/languages/polish/admin/tools_adminlog.lang.php b/Upload/inc/languages/polish/admin/tools_adminlog.lang.php
new file mode 100644
index 0000000..de6451b
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/tools_adminlog.lang.php
@@ -0,0 +1,292 @@
+ Zauważ, że ten proces nie odróżnia zmian dokonanych przez Ciebie i uszkodzenia plików. Rozważ nadpisanie plików oznaczonych jako uszkodzone. ";
+
+$l['error_communication'] = "Wystąpił problem z komunikacją z serwerem MyBB. Spróbuj ponownie za kilka minut.";
+$l['file'] = "Plik";
+$l['no_corrupt_files_found'] = "Nie znaleziono uszkodzonych plików.";
+$l['found_problems'] = "Wykryte problemy";
+$l['no_problems_found'] = "Nie wykryto żadnych problemów";
+$l['changed'] = "Zmodyfikowany";
+$l['missing'] = "Usunięty";
+$l['status'] = "Status";
diff --git a/Upload/inc/languages/polish/admin/tools_mailerrors.lang.php b/Upload/inc/languages/polish/admin/tools_mailerrors.lang.php
new file mode 100644
index 0000000..61efa07
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/tools_mailerrors.lang.php
@@ -0,0 +1,31 @@
+(wymaga serwera MySQL w wersji 5.5.3 lub nowszego)";
+$l['not_available'] = "Niedostępne";
+$l['all_tables'] = "Wszystkie tabele";
+$l['convert_now'] = "Konwertuj";
+$l['totals'] = "Ogólne";
+$l['attachments'] = "Załączniki";
+$l['total_database_size'] = "Rozmiar bazy danych";
+$l['attachment_space_used'] = "Miejsce używane przez załączniki";
+$l['total_cache_size'] = "Rozmiar pamięci podręcznej";
+$l['estimated_attachment_bandwidth_usage'] = "Szacowane zużycie transferu przez załączniki";
+$l['max_upload_post_size'] = "Maksymalny rozmiar wysyłki / rozmiar POST";
+$l['average_attachment_size'] = "Średni rozmiar załącznika";
+$l['stats'] = "Statystyki";
+$l['task'] = "Zadanie";
+$l['run_time'] = "Data wykonania";
+$l['next_3_tasks'] = "Następne 3 zadania";
+$l['no_tasks'] = "Nie ma uruchomionych zadań.";
+$l['backup_time'] = "Data utworzenia";
+$l['no_backups'] = "Nie ma kopii zapasowych bazy danych.";
+$l['existing_db_backups'] = "Kopie zapasowe bazy danych";
+$l['writable'] = "Zapis możliwy";
+$l['not_writable'] = "Zapis niemożliwy";
+$l['please_chmod_777'] = "Zmień CHMOD na 777.";
+$l['chmod_info'] = "Dostosuj ustawienia CHMOD plików na serwerze do wymagań określonych poniżej.";
+$l['file'] = "Plik";
+$l['location'] = "Lokalizacja";
+$l['settings_file'] = "Plik ustawień";
+$l['config_file'] = "Plik konfiguracji";
+$l['file_upload_dir'] = "Katalog załączników";
+$l['avatar_upload_dir'] = "Katalog wysyłanych awatarów";
+$l['language_files'] = "Pliki tłumaczeń";
+$l['backup_dir'] = "Katalog kopii bazy danych";
+$l['cache_dir'] = "Katalog pamięci podręcznej";
+$l['themes_dir'] = "Katalog stylów";
+$l['chmod_files_and_dirs'] = "Uprawnienia CHMOD dla plików i katalogów";
+
+$l['notice_process_long_time'] = "Proces konwersji może potrwać nawet kilka godzin, zależnie od rozmiaru bazy forum i ilości tabel.";
+$l['notice_mb4_warning'] = "Obsługa 4-bajtowego kodowania UTF-8 wymaga serwera MySQL w wersji 5.5.3 lub nowszego. Nie będzie możliwe zaimportowanie bazy danych na serwerze, który jest w wersji niższej niż 5.5.3.";
+
+$l['check_templates'] = "Zweryfikuj szablony";
+$l['check_templates_desc'] = "Sprawdź, czy wszystkie zainstalowane szablony nie mają znanych luk bezpieczeństwa.";
+$l['check_templates_title'] = "Zweryfikuj bezpieczeństwo szablonów";
+$l['check_templates_info'] = "Ten proces sprawdzi szablony pod kątem znanych luk bezpieczeństwa, które mogą mieć wpływ na silnik forum lub serwer. Może on potrwać trochę czasu, jeżeli posiadasz dużo zainstalowanych stylów.
+ Aby rozpocząć proces weryfikacji, naciśnij przycisk \"Kontynuuj\" poniżej.";
+$l['check_templates_info_desc'] = "Poniższe szablony mogą zawierać znane luki bezpieczeństwa. Zweryfikuj je poniżej.";
+$l['full_edit'] = "Pełna edycja";
+
+$l['error_chmod'] = "plików lub katalogów nie spełnia wymagań CHMOD.";
+$l['error_invalid_table'] = "Taka tabela nie istnieje.";
+$l['error_db_encoding_not_set'] = "Twoje MyBB nie zostało jeszcze skonfigurowane, by używać tego narzędzia. Tutaj: href=\"http://docs.mybb.com/Utf8_setup.html\">Dokumentacja MyBB możesz dowiedzieć się jak to zrobić.";
+$l['error_not_supported'] = "Twoja baza danych nie umożliwia użycia narzędzia konwersji do UTF-8.";
+$l['error_invalid_input'] = "Podczas sprawdzania szablonów wystąpił błąd. Spróbuj ponownie lub skontaktuj się z twórcami MyBB w celu uzyskania pomocy.";
+$l['error_master_templates_altered'] = "Główne szablony MyBB zostały zmodyfikowane. Skontaktuj się z twórcami MyBB w celu uzyskania pomocy jak odwrócić zmiany.";
+$l['error_utf8mb4_version'] = "Używana przez ciebie wersja serwera MySQL nie wspiera 4-bajtowego kodowania UTF-8.";
+
+
+$l['warning_multiple_encodings'] = "Nie jest zalecane używanie wielu sposobów kodowania znaków w bazie danych. Może to spowodować dziwne zachowanie skryptu lub błędy serwera MySQL.";
+$l['warning_utf8mb4_config'] = "Dla pełnej obsługi 4-bajtowego kodowania UTF-8 konieczna jest zmiana wartości \$config['database']['encoding'] = 'utf8'; na \$config['database']['encoding'] = 'utf8mb4'; w pliku inc/config.php.";
+
+$l['success_templates_checked'] = "Szablony zostały sprawdzone - nie odnaleziono luk bezpieczeństwa.";
+$l['success_all_tables_already_converted'] = "Wszystkie tabele zostały przekonwertowane lub już były w formacie UTF-8.";
+$l['success_table_converted'] = "Tabela \"{1}\" została przekonwertowana do formatu UTF-8.";
+$l['success_chmod'] = "Wszystkie pliki i katalogi majÄ… odpowiednie uprawnienia CHMOD.";
diff --git a/Upload/inc/languages/polish/admin/tools_tasks.lang.php b/Upload/inc/languages/polish/admin/tools_tasks.lang.php
new file mode 100644
index 0000000..e08e7cf
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/tools_tasks.lang.php
@@ -0,0 +1,76 @@
+UWAGA: Chcesz aktywować zadanie, które powinno być uruchamiane tylko i wyłącznie za pomocą cron (zobacz Dokumentację MyBB - po angielsku). Kontynuować?";
+$l['no_tasks'] = "Nie ma zaplanowanych zadań na tym forum.";
diff --git a/Upload/inc/languages/polish/admin/tools_warninglog.lang.php b/Upload/inc/languages/polish/admin/tools_warninglog.lang.php
new file mode 100644
index 0000000..32e82e2
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/tools_warninglog.lang.php
@@ -0,0 +1,52 @@
+ Aby móc ją wykonać, dodaj swój identyfikator użytkownika do pliku inc/config.php.';
+$l['error_delete_no_uid'] = 'Nie wpisano identyfikatora uprawnień użytkownika/grupy';
+$l['error_delete_invalid_uid'] = 'Nie wpisano prawidłowego identyfikatora uprawnień użytkownika/grupy';
+
+$l['success_perms_deleted'] = 'Uprawnienia dla użytkownika/grupy zostały cofnięte.';
+
+$l['confirm_perms_deletion'] = "Czy na pewno chcesz cofnąć uprawnienia temu użytkownikowi/tej grupie?";
+$l['confirm_perms_deletion2'] = "Czy na pewno chcesz cofnąć uprawnienia temu użytkownikowi?";
diff --git a/Upload/inc/languages/polish/admin/user_banning.lang.php b/Upload/inc/languages/polish/admin/user_banning.lang.php
new file mode 100644
index 0000000..32ed6a9
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/user_banning.lang.php
@@ -0,0 +1,64 @@
+*";
+$l['autocomplete_enabled'] = "W tym polu aktywne jest autouzupełnianie.";
+$l['ban_reason'] = "Powód bana";
+$l['ban_group'] = "Grupa zbanowanych* ";
+$l['ban_group_desc'] = "W celu nadania bana dla tego użytkownika musi zostać przeniesiony do grupy zbanowanych.";
+$l['ban_time'] = "Długość bana * ";
+
+//= Index
+$l['user'] = "Użytkownik";
+$l['moderation'] = "Moderacja";
+$l['ban_lifts_on'] = "Ban zostanie zniesiony";
+$l['time_left'] = "Pozostało";
+$l['permenantly'] = "nigdy";
+$l['na'] = "Niedostępne";
+$l['for'] = "na okres:";
+$l['bannedby_x_on_x'] = "{1} Zbanowany przez {2} w dniu {3} ";// Usunięto w celach testowych{4}
+$l['lift'] = "Usuń";
+$l['no_banned_users'] = "W tym momencie nie masz zbanowanych użytkowników.";
+$l['prune_threads_and_posts'] = "Usuń wątki i posty";
+
+// Buttons
+$l['ban_user'] = "Zbanuj użytkownika";
+$l['update_ban'] = "Aktualizuj bana";
+$l['search_user'] = 'Szukaj użytkownika';
diff --git a/Upload/inc/languages/polish/admin/user_group_promotions.lang.php b/Upload/inc/languages/polish/admin/user_group_promotions.lang.php
new file mode 100644
index 0000000..f257ac2
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/user_group_promotions.lang.php
@@ -0,0 +1,91 @@
+Wpisz \"{username}\" zamiast loginu.";
+$l['user_title'] = "Domyślny tytuł użytkownika";
+$l['user_title_desc'] = "Jeżeli użytkownik nie poda własnego tytułu użytkownika, zostanie wyświetlony podany tutaj tytuł. Jeżeli pozostawisz to pole puste, tytuł użytkownika oraz obrazek gwiazdki zostaną odziedziczone z konfiguracji elementu \"Tytuły użytkowników\"";
+$l['do_not_copy_permissions'] = "Nie kopiuj uprawnień z innej grupy";
+$l['copy_permissions_from'] = "Skopiuj ustawienia uprawnień z...";
+$l['copy_permissions_from_desc'] = "Jeżeli chcesz, ustawienia uprawnień mogą zostać skopiowane z istniejącej już grupy użytkowników - wystarczy, że wybierzesz tę grupę.";
+$l['save_user_group'] = "Zapisz grupÄ™";
+$l['list_users'] = "Lista użytkowników";
+
+$l['general'] = "Ogólne";
+$l['forums_posts'] = "Działy i posty";
+$l['users_permissions'] = "Użytkownicy i uprawnienia";
+$l['misc'] = "Różne";
+$l['mod_cp'] = "Panel moderatora";
+$l['stars'] = "Liczba gwiazdek";
+$l['star_image'] = "Obrazek gwiazdki";
+$l['user_stars'] = "Gwiazdki";
+$l['user_stars_desc'] = "Podaj liczbę gwiazdek i ścieżkę do obrazka, aby określić sposób, w jaki będą one wyświetlane dla tej grupy użytkowników. Jeżeli chcesz używać różnych obrazków dla poszczególnych stylów, wpisz {theme} by zastąpić ścieżkę do katalogu obrazków aktualnie używanego stylu. Liczba gwiazdek zostanie użyta, kiedy pole \"Domyślny tytuł użytkownika\" nie jest puste.";
+$l['group_image'] = "Obrazek grupy";
+$l['group_image_desc'] = "Możesz wybrać obrazek, który będzie pokazywany przy każdym poście napisanym przez członków tej grupy. Wpisz {lang} by zastąpić nazwę aktualnie używanego języka.";
+$l['general_options'] = "Ogólne opcje";
+$l['member_list'] = "Pokazuj użytkowników z tej grupy na liście użytkowników";
+$l['forum_team'] = "Wyświetlaj tę grupę na stronie \"Ekipa forum\"";
+$l['is_banned_group'] = "Jest to grupa zbanowanaJeżeli określisz grupę jako \"zbanowaną\", to będziesz mógł banować użytkowników przez przeniesienie ich do tej grupy. ";
+$l['publicly_joinable_options'] = "Opcje dołączania";
+$l['user_joinable'] = "Użytkownicy mogą swobodnie dołączać i opuszczać grupę";
+$l['moderate_join_requests'] = "Wszystkie dołączenia do grupy muszą zostać zatwierdzone.Użytkownicy muszą mieć możliwość swobodnego dołączania i opuszczania grupy, aby działało to ustawienie. ";
+$l['invite_only'] = "Aby dołączyć do tej grupy należy otrzymać zaproszenie.Użytkownicy muszą mieć możliwość swobodnego dołączania i opuszczania grupy, aby działało to ustawienie. ";
+$l['can_set_as_display_group'] = "Użytkownicy mogą ustawiać tę grupę jako swoją grupę wyświetlanąJeżeli \"Tak\", to użytkownicy będą mogli wybrać ustawienia wyświetlania tej grupy (tytuł użytkownika, gwiazdki, format loginu, obrazek grupy) jako swoje ustawienia wyświetlania. ";
+$l['moderation_administration_options'] = "Opcje moderacji i administracji";
+$l['is_super_mod'] = "Użytkownicy tej grupy są super moderatorami";
+$l['can_access_mod_cp'] = "Użytkownicy tej grupy mają dostęp do panelu moderatora";
+$l['can_access_admin_cp'] = "Użytkownicy tej grupy mają dostęp do panelu administratora";
+$l['viewing_options'] = "Opcje przeglÄ…dania";
+$l['can_view_board'] = "Mogą przeglądać forum?";
+$l['can_view_threads'] = "Mogą przeglądać wątki?";
+$l['can_search_forums'] = "Mogą przeszukiwać działy?";
+$l['can_view_profiles'] = "Mogą przeglądać profile użytkowników?";
+$l['can_download_attachments'] = "Mogą pobierać załączniki?";
+$l['can_view_board_closed'] = "Mogą przeglądać forum gdy jest zamknięte?";
+$l['posting_rating_options'] = "Opcje postów i oceniania";
+$l['moderation_options'] = "Opcje moderacji";
+$l['mod_new_posts'] = "Moderować nowe posty?";
+$l['mod_new_threads'] = "Moderować nowe wątki?";
+$l['mod_new_attachments'] = "Moderować nowe załączniki?";
+$l['mod_after_edit'] = "Moderować posty po edycji?";
+$l['can_post_threads'] = "Mogą tworzyć nowe wątki?";
+$l['can_post_replies'] = "Mogą odpowiadać w istniejących wątkach?";
+$l['can_rate_threads'] = "Mogą oceniać wątki?";
+$l['poll_options'] = "Opcje ankiet";
+$l['max_posts_per_day'] = "Maksymalna liczba postów na dzień";
+$l['max_posts_per_day_desc'] = "Ta opcja pozwala na ograniczenie liczby postów na dzień. Jeżeli nie chcesz ustalać limitu, wpisz 0.";
+$l['can_post_polls'] = "Mogą tworzyć ankiety?";
+$l['can_vote_polls'] = "Mogą głosować w ankietach?";
+$l['can_undo_votes'] = "Mogą cofać swoje głosy w ankietach?";
+$l['attachment_options'] = "Opcje załączników";
+$l['can_post_attachments'] = "Mogą wysyłać załączniki?";
+$l['attach_quota'] = "Limit miejsca na załączniki:";
+$l['attach_quota_desc'] = "Możesz ustalić limit miejsca do wykorzystania na załączniki dla użytkowników z tej grupy. Jeżeli nie chcesz ustalać limitu, wpisz 0.";
+$l['editing_deleting_options'] = "Opcje edycji i usuwania";
+$l['can_edit_posts'] = "Mogą edytować własne posty?";
+$l['can_delete_posts'] = "Mogą usuwać własne posty?";
+$l['can_delete_threads'] = "Mogą usuwać własne wątki?";
+$l['can_edit_attachments'] = "Mogą aktualizować własne załączniki?";
+$l['account_management'] = "ZarzÄ…dzanie kontem";
+$l['edit_time_limit'] = "Ograniczenie czasu na edycjÄ™";
+$l['edit_time_limit_desc'] = "Jeżeli chcesz ograniczyć czasowo możliwość edytowania postów przez użytkowników z tej grupy (jeśli pozwalają im na to ustawienia grupy) wprowadź tutaj, przez jaki czas mają oni mieć taką możliwość (w minutach). Jeżeli nie chcesz ustalać limitu, wpisz 0.";
+$l['can_be_reported'] = "Mogą być zgłaszani przez innych?";
+$l['can_access_usercp'] = "Mają dostęp do paneli użytkowników?";
+$l['can_change_username'] = "Mogą zmieniać swoje loginy?";
+$l['can_change_website'] = "Mogą zmieniać swoją stronę WWW?";
+$l['can_use_usertitles'] = "Mogą używać własnych tytułów użytkownika?";
+$l['can_upload_avatars'] = "Mogą wysyłać awatary?";
+$l['can_use_signature'] = "Mogą posiadać własną sygnaturę?";
+$l['can_use_signature_posts'] = "Mogą posiadać własną sygnaturę po napisaniu określonej liczby postów?";
+$l['required_posts'] = "Minimalna liczba postów wymagana do dodania sygnatury:";
+$l['required_posts_desc'] = "Podaj ile postów użytkownik musi napisać, zanim będzie mógł posiadać własną sygnaturę. Wpisz 0, aby każdy użytkownik tej grup mógł ustawić sygnaturę.";
+$l['uses_no_follow'] = "Czy linki w sygnaturze powinny mieć włączony atrybut nofollow?";
+$l['reputation_system'] = "System reputacji";
+$l['can_use_pms'] = "Mogą używać prywatnych wiadomości?";
+$l['can_send_pms'] = "Mogą wysyłać prywatne wiadomości?";
+$l['can_track_pms'] = "Mogą śledzić wysłane prywatne wiadomości?";
+$l['can_deny_reciept'] = "Mogą odmówić potwierdzenia odbioru?";
+$l['can_override_pms'] = "Mogą wysyłać prywatne wiadomości do użytkowników, którzy mają wyłączony system PW?";
+$l['message_quota'] = "Limit wiadomości";
+$l['message_quota_desc'] = "Maksymalna liczba prywatnych wiadomości przechowywanych przez użytkowników z tej grupy. Podaj 0 by nie wprowadzać takiego limitu.";
+$l['max_recipients'] = "Maksymalna liczba odbiorców na wiadomość";
+$l['max_recipients_desc'] = "Maksymalna liczba odbiorców, których można przypisać do pojedynczej prywatnej wiadomości. Podaj 0 by nie wprowadzać takiego limitu.";
+$l['show_reputations'] = "Pokazywać wskaźnik reputacji dla tych użytkowników?";
+$l['can_give_reputation'] = "Mogą dawać punkty reputacji innym użytkownikom?";
+$l['points_to_award_take'] = "Liczba punktów do dodania/odjęcia:";
+$l['points_to_award_take_desc'] = "Liczba punktów, które zostaną dodane lub odjęte użytkownikowi w wyniku oceny przez użytkownika tej grupy.";
+$l['max_reputations_daily'] = "Maksymalna liczba ocen na dzień:";
+$l['max_reputations_daily_desc'] = "Podaj, ile razy maksymalnie użytkownicy tej grupy mogą ocenić innych użytkowników na dzień. Podaj 0 by nie wprowadzać takiego limitu.";
+$l['max_reputations_perthread'] = "Maksymalna liczba ocen na wÄ…tek:";
+$l['max_reputations_perthread_desc'] = "Podaj, ile razy maksymalnie użytkownik może ocenić danego użytkownika w jednym wątku. Podaj 0 by nie wprowadzać takiego limitu.";
+$l['max_reputations_peruser'] = "Maksymalna liczba ocen na użytkownika:";
+$l['max_reputations_peruser_desc'] = "Podaj, ile razy maksymalnie użytkownicy tej grupy mogą ocenić jednego użytkownika na dzień. Podaj 0 by nie wprowadzać takiego limitu.";
+$l['warning_system'] = "System ostrzeżeń";
+$l['can_send_warnings'] = "Mogą dodawać ostrzeżenia innym użytkownikom?";
+$l['can_receive_warnings'] = "Mogą otrzymywać ostrzeżenia od innych użytkowników?";
+$l['warnings_per_day'] = "Maksymalna liczba ostrzeżeń na dzień:";
+$l['private_messaging'] = "Prywatne wiadomości";
+$l['calendar'] = "Kalendarz";
+$l['can_view_calendar'] = "Mogą przeglądać kalendarz?";
+$l['can_post_events'] = "Mogą dodawać wydarzenia do kalendarza?";
+$l['can_bypass_event_moderation'] = "Mogą dodawać wydarzenia do kalendarza bez oczekiwania na moderację?";
+$l['can_moderate_events'] = "Mogą moderować wydarzenia kalendarza?";
+$l['whos_online'] = "\"Kto jest online\"";
+$l['can_view_whos_online'] = "Mogą przeglądać listę \"Kto jest online\"?";
+$l['can_view_invisible'] = "Widzą niewidocznych użytkowników?";
+$l['can_view_ips'] = "Mogą przeglądać adresy IP na liście \"Kto jest online\"?";
+$l['can_view_member_list'] = "Mogą przeglądać listę użytkowników?";
+$l['show_in_birthday_list'] = "Mogą być wyświetlani na liście użytkowników obchodzących urodziny?";
+$l['can_email_users'] = "Mogą wysyłać wątki do znajomych i wysyłać e-maile do użytkowników?";
+$l['can_email_users_override'] = "Mogą wysyłać e-maile do użytkowników, nawet gdy nadawca znajduje się na liście ignorowanych przez adresata?";
+$l['max_emails_per_day'] = "Maksymalna liczba e-maili dziennie:";
+$l['max_emails_per_day_desc'] = "Maksymalna liczba e-maili jakie użytkownicy z tej grupy mogą wysłać przy użyciu opcji \"Wyślij wątek do znajomego\" i \"E-mail do użytkownika\". Podaj 0 by nie wprowadzać takiego limitu.";
+$l['email_flood_time'] = "Opóźnienie pomiędzy wysyłanymi e-mailami";
+$l['email_flood_time_desc'] = "Liczba minut, jaką musi odczekać użytkownik po wysłaniu e-maila, aby móc wysłać kolejnego. Podaj 0 by nie wprowadzać takiego limitu.";
+$l['forum_post_options'] = "Działy i posty";
+$l['user_options'] = "Użytkownicy";
+$l['can_manage_announce'] = "Może zarządzać ogłoszeniami?Zauważ, że moderatorzy muszą być przypisani przynajmniej do jednego działu, aby mogli zarządzać ogłoszeniami. ";
+$l['can_manage_mod_queue'] = "Może zarządzać kolejką moderacji?Zauważ, że moderatorzy muszą być przypisani przynajmniej do jednego działu, aby mogli zarządzać kolejką moderacji. ";
+$l['can_manage_reported_content'] = "Może zarządzać zgłoszeniami?Zauważ, że moderatorzy muszą być przypisani przynajmniej do jednego działu, aby mogli zarządzać zgłoszeniami. ";
+$l['can_view_mod_logs'] = "Może przeglądać wpisy w logach moderatorów?Zauważ, że moderatorzy muszą być przypisani przynajmniej do jednego działu, aby mogli przeglądać logi moderatorów. ";
+$l['can_edit_profiles'] = "Może edytować profile?Zauważ, że moderatorzy działów nie mogą edytować profili administratorów i super moderatorów, niezależnie od wartości tego ustawienia. ";
+$l['can_ban_users'] = "Może banować użytkowników?Zauważ, że moderatorzy działów nie mogą banować administratorów i super moderatorów, niezależnie od wartości tego ustawienia. ";
+$l['can_view_warnlogs'] = "Może przeglądać logi ostrzeżeń?";
+$l['can_use_ipsearch'] = "Może wyszukiwać po adresach IP?";
+
+$l['outstanding_join_request'] = "oczekujących wniosków o przyjęcie";
+
+$l['no_join_requests'] = "Aktualnie nie ma żadnych nierozpatrzonych wniosków o przyjęcie do grupy.";
+$l['no_assigned_leaders'] = "Nie przypisano żadnych liderów tej grupie. By wybrać nowego lidera, wypełnij poniższy formularz.";
+
+$l['error_missing_title'] = "Nie nadano nazwy nowej grupie użytkowników.";
+$l['error_invalid_user_group'] = "Wybrano niepoprawnÄ… grupÄ™.";
+$l['error_invalid_join_request'] = "Wybrano niepoprawny wniosek.";
+$l['error_invalid_username'] = "Podany login jest nieprawidłowy.";
+$l['error_already_leader'] = "Ten użytkownik jest już liderem tej grupy.";
+$l['error_invalid_group_leader'] = "Podano nieprawidłowego lidera.";
+$l['error_missing_namestyle_username'] = "Format wyświetlania loginu musi zawierać ciąg znaków {username} ";
+$l['error_disallowed_namestyle_username'] = "W formacie loginu nie można używać tagów script, meta ani base.";
+$l['error_default_group_delete'] = "Nie można usunąć domyślnej grupy";
+$l['error_cannot_have_both_types'] = "Nie można dodać grupy, w której dołączenie będzie możliwe przez zaproszenie oraz poprzez zatwierdzanie zgłoszeń. Wybierz tylko jedną z opcji.";
+
+$l['success_group_created'] = "Nowa grupa użytkowników została utworzona.";
+$l['success_group_updated'] = "Wybrana grupa użytkowników została zaktualizowana.";
+$l['success_group_deleted'] = "Wybrana grupa użytkowników została usunięta.";
+$l['success_groups_disporder_updated'] = "Kolejność grup została zaktualizowana.";
+$l['success_join_request_approved'] = "Wybrany wniosek został przyjęty. Użytkownik został dodany do grupy.";
+$l['success_join_request_denied'] = "Wybrany wniosek został odrzucony.";
+$l['success_selected_requests_approved'] = "Wybrane wnioski zostały przyjęte. Użytkownicy zostali dodani do grupy.";
+$l['success_selected_requests_denied'] = "Wybrane wnioski zostały odrzucone.";
+$l['success_user_made_leader'] = "został nowym liderem grupy użytkowników.";
+$l['success_group_leader_updated'] = "Wybrany lider grupy został zaktualizowany.";
+$l['success_group_leader_deleted'] = "Wybrany użytkownik przestał być liderem grupy.";
+
+$l['confirm_group_deletion'] = "Czy na pewno chcesz usunąć tę grupę użytkowników?";
+$l['confirm_group_leader_deletion'] = "Czy na pewno chcesz usunąć tego lidera grupy?";
diff --git a/Upload/inc/languages/polish/admin/user_mass_mail.lang.php b/Upload/inc/languages/polish/admin/user_mass_mail.lang.php
new file mode 100644
index 0000000..aa2ceb1
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/user_mass_mail.lang.php
@@ -0,0 +1,120 @@
+Informacja: To nie jest system awansów dla użytkowników. ";
+
+$l['error_missing_title'] = "Nie wpisano nazwy tytułu użytkownika";
+$l['error_missing_posts'] = "Nie wpisano minimalnej liczby postów, za którą ma być przyznawany tytuł";
+$l['error_cannot_have_same_posts'] = "Inny tytuł wymaga takiej samej liczby postów. Wprowadź inną liczbę postów.";
+$l['error_invalid_user_title'] = "Wpisano niepoprawny tytuł użytkownika";
+
+$l['success_user_title_created'] = "Tytuł użytkownika został utworzony";
+$l['success_user_title_updated'] = "Tytuł użytkownika został zaktualizowany.";
+$l['success_user_title_deleted'] = "Tytuł użytkownika został usunięty.";
+
+$l['title_to_assign'] = "Przypisywany tytuł";
+$l['title_to_assign_desc'] = "Ten tytuł będzie znajdował się pod loginem użytkownika, jeżeli użytkownik nie ustawi własnego.";
+$l['minimum_posts'] = "Minimalna ilość postów";
+$l['minimum_posts_desc'] = "Minimalna ilość postów, powyżej której przydzielany będzie ten tytuł.";
+$l['number_of_stars'] = "Liczba gwiazdek";
+$l['number_of_stars_desc'] = "Wpisz liczbę gwiazdek wyświetlanych pod loginem użytkownika. Podaj 0, aby nie pokazywać gwiazdek.";
+$l['star_image'] = "Obrazek gwiazdki";
+$l['star_image_desc'] = "Jeżeli dla tego tytułu użytkownika będą pokazywane gwiazdki, podaj ścieżkę do obrazka gwiazdki. Jeżeli pozostawisz to pole puste, wyświetlony zostanie obrazek gwiazdki dla grupy, do której należy użytkownik. Użyj {theme} zamiast ścieżki do katalogu ze stylem.";
+$l['save_user_title'] = "Zapisz tytuł użytkownika";
+$l['edit_user_title'] = "Edytuj tytuł użytkownika";
+$l['edit_user_title_desc'] = "Edytuj tytuł użytkownika.";
+$l['user_title_deletion_confirmation'] = "Czy na pewno chcesz usunąć ten tytuł użytkownika?";
+$l['manage_user_titles'] = "Tytuły użytkowników";
+$l['user_title'] = "Tytuł użytkownika";
+$l['no_user_titles'] = "Nie zdefiniowano żadnych tytułów użytkowników.";
diff --git a/Upload/inc/languages/polish/admin/user_users.lang.php b/Upload/inc/languages/polish/admin/user_users.lang.php
new file mode 100644
index 0000000..d3c3ee6
--- /dev/null
+++ b/Upload/inc/languages/polish/admin/user_users.lang.php
@@ -0,0 +1,409 @@
+Pamiętaj, że tego procesu nie można cofnąć. ";
+$l['edit_user'] = "Edytuj użytkownika";
+$l['edit_user_desc'] = "Zmodyfikuj profil użytkownika, jego ustawienia i sygnaturę, obejrzyj jego statystyki i inne strony zawierające szereg informacji z nim związanych.";
+$l['show_referrers'] = "Pokaż zaproszonych";
+$l['show_referrers_desc'] = "Przeglądaj listę osób zaproszonych na to forum przez wybranego użytkownika. Pamiętaj o możliwości wyboru widoku listy.";
+$l['show_ip_addresses'] = "Pokaż adresy IP";
+$l['show_ip_addresses_desc'] = "Przeglądaj informacje o adresach IP użytych przez tego użytkownika do rejestracji i do pisania postów.";
+$l['manage_users'] = "Zarządzaj użytkownikami";
+$l['manage_users_desc'] = "Masowe zarządzanie użytkownikami ułatwia wykonywanie popularnych zadań.";
+$l['inline_edit'] = "Zaznaczonych użytkowników:";
+$l['inline_activate'] = "Aktywuj";
+$l['inline_ban'] = "Zbanuj";
+$l['inline_usergroup'] = "Zmień grupę użytkowników";
+$l['inline_delete'] = "Usuń";
+$l['inline_prune'] = "Usuń posty użytkowników";
+$l['inline_activated'] = "{1} użytkowników zostało aktywowanych.";
+$l['inline_activated_more'] = "{1} z zaznaczonych użytkowników aktywowało już swoje konto. ";
+$l['inline_activated_failed'] = "Wszyscy zaznaczeni użytkownicy zostali aktywowani.";
+$l['ban_time'] = "ZnieÅ› bana po* ";
+$l['ban_reason'] = "Powód";
+$l['mass_ban'] = "Masowe banowanie użytkowników";
+$l['important'] = "Ważne";
+$l['mass_ban_info'] = "Ta akcja zostanie zastosowana na {1} użytkownikach. Kontynuuj tylko wtedy, jeżeli na pewno chcesz zbanować tych użytkowników.";
+$l['ban_users'] = "Zbanuj użytkowników";
+$l['users_banned'] = "{1} użytkowników zostało zbanowanych.";
+$l['confirm_multilift'] = "Czy na pewno chcesz usunąć bany dla zaznaczonych użytkowników?";
+$l['success_ban_lifted'] = "Bany dla {1} użytkowników zostały usunięte.";
+$l['edit_ban'] = "Edytuj bana";
+$l['lift_ban'] = "Usuń bana";
+$l['lift_bans'] = "Usuń bany";
+$l['confirm_multidelete'] = "Czy na pewno chcesz usunąć {1} zaznaczonych użytkowników? Ta czynność nie może zostać cofnięta.";
+$l['users_deleted'] = "{1} użytkowników zostało usuniętych.";
+$l['mass_prune_info'] = "Ta akcja zostanie zastosowana na {1} użytkownikach. Jeżeli będziesz kontynuować, opcja ta usunie wszystkie posty użytkownika starsze niż okres wybrany z listy poniżej.Miej na uwadze fakt, że jeżeli użytkownik napisał pierwszy post w wątku, cały wątek zostanie usunięty. ";
+$l['mass_prune_posts'] = "Masowe czyszczenie postów";
+$l['manual_date'] = "Podaj własną datę";
+$l['relative_date'] = "lub wybierz z listy";
+$l['multi_selected_dates'] = "Wybrano własną datę i datę z listy. Wybierz jedną z nich i spróbuj ponownie.";
+$l['incorrect_date'] = "Podana data jest niepoprawna. Podaj właściwą datę lub pozostaw pole puste i wybierz okres z listy.";
+$l['prune_complete'] = "Czyszczenie zakończone.";
+$l['prune_fail'] = "Nie znaleziono postów dla wybranych użytkowników. Żadne posty nie zostały usunięte.";
+$l['no_prune_option'] = "Podaj datę lub wybierz opcję aby kontynuować.";
+$l['prune_posts'] = "Wyczyść posty";
+$l['delete_posts'] = "Usuń posty";
+$l['usergroup_info'] = "Ta akcja zostanie zastosowana na {1} użytkownikach. Poprzez wybranie opcji poniżej główna / dodatkowa / wyświetlana grupa użytkownika zostanie nadpisana.";
+$l['mass_usergroups'] = "Masowa zmiana grup użytkowników";
+$l['success_mass_usergroups'] = "Użytkownicy zostali zaktualizowani.";
+$l['alter_usergroups'] = "Zapisz zmiany";
+$l['no_usergroup_changed'] = "Żadnemu z zaznaczonych użytkowników grupa nie została zmieniona.";
+$l['no_set_option'] = "Nie wybrano poprawnej daty. Wybierz opcję z listy lub wprowadź poprawną datę.";
+$l['select_an_option'] = "wybierz";
+
+$l['month_1'] = "Styczeń";
+$l['month_2'] = "Luty";
+$l['month_3'] = "Marzec";
+$l['month_4'] = "Kwiecień";
+$l['month_5'] = "Maj";
+$l['month_6'] = "Czerwiec";
+$l['month_7'] = "Lipiec";
+$l['month_8'] = "Sierpień";
+$l['month_9'] = "Wrzesień";
+$l['month_10'] = "Październik";
+$l['month_11'] = "Listopad";
+$l['month_12'] = "Grudzień";
+
+$l['option_1'] = "starsze niż miesiąc";
+$l['option_2'] = "starsze niż 3 miesiące";
+$l['option_3'] = "starsze niż 6 miesięcy";
+$l['option_4'] = "starsze niż rok";
+$l['option_5'] = "starsze niż półtora roku";
+$l['option_6'] = "starsze niż 2 lata";
+
+$l['error_avatartoobig'] = "Wybrany awatar jest zbyt duży. Maksymalne rozmiary to {1}x{2} (szer. x wys.)";
+$l['error_invalidavatarurl'] = "Podano nieprawidłowy adres URL do awatara. Podaj poprawny adres.";
+$l['error_invalid_user'] = "Wybrano niepoprawnego użytkownika.";
+$l['error_no_perms_super_admin'] = "Nie masz uprawnień do edycji tego konta, bo nie jesteś super administratorem.";
+$l['error_invalid_user_source'] = "Podane konto źródłowe nie istnieje";
+$l['error_invalid_user_destination'] = "Podane konto docelowe nie istnieje";
+$l['error_cannot_merge_same_account'] = "Konto źródłowe nie może być jednocześnie docelowym";
+$l['error_no_users_found'] = "Nie znaleziono użytkowników spełniających podane kryteria. Zmień kryteria wyszukiwania i spróbuj ponownie.";
+$l['error_invalid_admin_view'] = "Wybrano nieprawidłowy widok.";
+$l['error_missing_view_title'] = "Nie podano nazwy dla widoku.";
+$l['error_no_view_fields'] = "Nie wybrano pól, które mają być wyświetlane w tym widoku";
+$l['error_invalid_view_perpage'] = "Podano nieprawidłową liczbę wyników na stronę";
+$l['error_invalid_view_sortby'] = "Podano nieprawidłowe pole, wg którego lista ma być sortowana";
+$l['error_invalid_view_sortorder'] = "Wybrano nieprawidłowy porządek sortowania";
+$l['error_invalid_view_delete'] = "Wybrano nieprawidłowy widok do usunięcia";
+$l['error_cannot_delete_view'] = "Musisz posiadać przynajmniej jeden widok.";
+$l['error_inline_no_users_selected'] = "Nie zaznaczono użytkowników. Wybierz kilku użytkowników i spróbuj ponownie.";
+$l['error_cannot_delete_user'] = "Nie można usunąć tego użytkownika.";
+$l['error_no_referred_users'] = "Wybrany użytkownik nie posiada żadnych poleconych użytkowników.";
+
+$l['user_deletion_confirmation'] = "Czy na pewno usunąć tego użytkownika?";
+
+$l['success_coppa_activated'] = "Użytkownik wymagający weryfikacji COPPA został aktywowany.";
+$l['success_activated'] = "Użytkownik został aktywowany.";
+$l['success_user_created'] = "Konto użytkownika zostało utworzone.";
+$l['success_user_updated'] = "Konto użytkownika zostało zaktualizowane.";
+$l['success_user_deleted'] = "Konto użytkownika zostało usunięte.";
+$l['success_merged'] = "został połączony z";
+$l['succuss_view_set_as_default'] = "Widok został ustawiony jako domyślny";
+$l['success_view_created'] = "Widok został utworzony";
+$l['success_view_updated'] = "Widok został zaktualizowany";
+$l['success_view_deleted'] = "Widok został usunięty";
+
+$l['confirm_view_deletion'] = "Czy na pewno usunąć ten widok?";
+
+$l['warning_coppa_user'] = "Ostrzeżenie: Ten użytkownik wymaga weryfikacji COPAA. Kliknij, by aktywować konto
";
+
+$l['required_profile_info'] = "Wymagane informacje";
+$l['password'] = "Hasło";
+$l['confirm_password'] = "Potwierdź hasło";
+$l['email_address'] = "Adres e-mail";
+$l['use_primary_user_group'] = "Używaj głównej grupy";
+$l['primary_user_group'] = "Główna grupa użytkowników";
+$l['additional_user_groups'] = "Dodatkowe grupy użytkowników";
+$l['additional_user_groups_desc'] = "Przytrzymaj CTRL klikając, by wybrać wiele pozycji";
+$l['display_user_group'] = "Wyświetlana grupa użytkowników";
+$l['save_user'] = "Zapisz użytkownika";
+
+$l['overview'] = "Ogólne";
+$l['profile'] = "Profil";
+$l['account_settings'] = "Ustawienia";
+$l['signature'] = "Sygnatura";
+$l['avatar'] = "Awatar";
+$l['mod_options'] = "Opcje moderatora";
+$l['general_account_stats'] = "Ogólne informacje";
+$l['local_time'] = "Czas lokalny";
+$l['local_time_format'] = "{1}, {2}";
+$l['posts'] = "Postów";
+$l['age'] = "Wiek";
+$l['posts_per_day'] = "Postów na dzień";
+$l['percent_of_total_posts'] = "Procent ogólnej liczby postów";
+$l['user_overview'] = "Ogólne informacje";
+
+$l['new_password'] = "Nowe hasło";
+$l['new_password_desc'] = "wypełnij tylko w przypadku zmiany";
+$l['confirm_new_password'] = "Potwierdź nowe hasło";
+
+$l['optional_profile_info'] = "Dodatkowe informacje";
+$l['custom_user_title'] = "Własny tytuł użytkownika";
+$l['custom_user_title_desc'] = "Jeżeli to pole pozostanie puste, użyty zostanie domyślny tytuł grupy";
+$l['website'] = "Strona WWW";
+$l['icq_number'] = "Numer ICQ";
+$l['aim_handle'] = "Nazwa użytkownika AIM";
+$l['yahoo_messanger_handle'] = "Identyfikator Yahoo";
+$l['skype_handle'] = "Identyfikator Skyp:";
+$l['google_handle'] = "Identyfikator Google Talk";
+$l['birthday'] = "Data urodzenia";
+
+$l['away_information'] = "Dostępność";
+$l['away_status'] = "Status:";
+$l['away_status_desc'] = "Pozwala na wpisanie wiadomości informującej o nieobecności.";
+$l['im_away'] = "Niedostępny";
+$l['im_here'] = "Dostępny";
+$l['away_reason'] = "Powód nieobecności:";
+$l['away_reason_desc'] = "Pozwala Ci na wpisanie krótkiego powodu nieobecności (maksymalnie 200 znaków).";
+$l['return_date'] = "Data powrotu:";
+$l['return_date_desc'] = "Wpisz tu datÄ™ powrotu, o ile jÄ… znasz.";
+$l['error_acp_return_date_past'] = "Nie możesz się cofnąć w czasie!";
+
+$l['hide_from_whos_online'] = "Ukryj na liście Kto jest online";
+$l['login_cookies_privacy'] = "Logowanie, cookies i prywatność";
+$l['recieve_admin_emails'] = "Otrzymuj e-maile od administracji";
+$l['hide_email_from_others'] = "Ukryj adres e-mail przed innymi użytkownikami";
+$l['recieve_pms_from_others'] = "Otrzymuj prywatne wiadomości od innych użytkowników";
+$l['recieve_pms_from_buddy'] = "Otrzymuj prywatne wiadomości tylko od osób z listy znajomych";
+$l['alert_new_pms'] = "Informuj o nowych prywatnych wiadomościach";
+$l['email_notify_new_pms'] = "Informuj e-mailem o nowych prywatnych wiadomościach";
+$l['default_thread_subscription_mode'] = "Domyślny sposób subskrypcji tematów";
+$l['do_not_subscribe'] = "Nie subskrybuj";
+$l['no_email_notification'] = "Bez powiadamiania e-mailem";
+$l['instant_email_notification'] = "Powiadomienie e-mail";
+$l['messaging_and_notification'] = "Prywatne wiadomości i e-maile";
+$l['use_default'] = "Użyj domyślnego";
+$l['date_format'] = "Formatowanie daty";
+$l['time_format'] = "Formatowanie czasu";
+$l['time_zone'] = "Strefa czasowa";
+$l['daylight_savings_time_correction'] = "Zmiany czasu";
+$l['automatically_detect'] = "Automatycznie wykryj zmiany czasu";
+$l['always_use_dst_correction'] = "Używaj czasu letniego";
+$l['never_use_dst_correction'] = "Używaj czasu zimowego";
+$l['date_and_time_options'] = "Opcje daty i czasu";
+$l['show_threads_last_day'] = "Pokazuj wÄ…tki z ostatniego dnia";
+$l['show_threads_last_5_days'] = "Pokazuj wÄ…tki z ostatnich 5 dni";
+$l['show_threads_last_10_days'] = "Pokazuj wÄ…tki z ostatnich 10 dni";
+$l['show_threads_last_20_days'] = "Pokazuj wÄ…tki z ostatnich 20 dni";
+$l['show_threads_last_50_days'] = "Pokazuj wÄ…tki z ostatnich 50 dni";
+$l['show_threads_last_75_days'] = "Pokazuj wÄ…tki z ostatnich 75 dni";
+$l['show_threads_last_100_days'] = "Pokazuj wÄ…tki z ostatnich 100 dni";
+$l['show_threads_last_year'] = "Pokazuj wÄ…tki z ostatniego roku";
+$l['show_all_threads'] = "Pokazuj wszystkie wÄ…tki";
+$l['threads_per_page'] = "Wątków na stronę";
+$l['default_thread_age_view'] = "Wyświetlanie wątków";
+$l['forum_display_options'] = "Opcje wyświetlania działów";
+$l['show_classic_postbit'] = "Pokazuj posty w układzie klasycznym";
+$l['display_images'] = "Pokazuj obrazki w postach";
+$l['display_videos'] = "Pokazuj wideo w postach";
+$l['display_users_sigs'] = "Pokazuj sygnatury użytkowników";
+$l['display_users_avatars'] = "Pokazuj awatary użytkowników";
+$l['show_quick_reply'] = "Wyświetl pole szybkiej odpowiedzi na końcu wątku";
+$l['posts_per_page'] = "Postów na stronę";
+$l['default_thread_view_mode'] = "Domyślny tryb wyświetlania wątków";
+$l['linear_mode'] = "Standardowy";
+$l['threaded_mode'] = "Drzewo";
+$l['thread_view_options'] = "Opcje wyświetlania wątków";
+$l['show_redirect'] = "Pokazuj strony przekierowań";
+$l['show_code_buttons'] = "Wyświetlaj przyciski formatowania MyCode";
+$l['source_editor'] = "Edytor powinien domyślnie pracować w trybie edycji kodu";
+$l['theme'] = "Styl";
+$l['board_language'] = "Język forum";
+$l['other_options'] = "Inne opcje";
+$l['signature_desc'] = "Opcje formatowania: MyCode {1}, emotikony {2}, kod IMG {3}, HTML {4}";
+$l['enable_sig_in_all_posts'] = "Wyświetlaj sygnaturę przy wszystkich postach";
+$l['disable_sig_in_all_posts'] = "Nie wyświetlaj sygnatury przy żadnych postach";
+$l['do_nothing'] = "Nie zmieniaj ustawień wyświetlania sygnatury";
+$l['signature_preferences'] = "Ustawienia sygnatury";
+$l['suspend_sig'] = "Wyłącz sygnaturę";
+$l['suspend_sig_box'] = "Wyłącz sygnaturę tego użytkownika";
+$l['suspend_sig_perm'] = "Wyłączona na zawsze. ";
+$l['suspend_sig_info'] = "Jeżeli sygnatura użytkownika zostanie wyłączona, użytkownik nie będzie mógł jej edytować ani nie będzie ona pokazywana pod postami i w profilu użytkownika";
+$l['suspend_sig_extend'] = "Podaj nowy czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie. ";
+$l['suspend_expire_info'] = "Wygasa {1} ";
+$l['suspend_never_expire'] = "Wyłączenie sygnatury użytkownika {1} nie zostanie nigdy wyłączone. ";
+$l['suspend_sig_error'] = "Podano nieprawidłowy okres wyłączenia sygnatury użytkownika. Podaj prawidłową datę.";
+
+$l['moderate_posts'] = "Moderuj posty użytkownika";
+$l['moderate_posts_info'] = "Moderuj nowe posty użytkownika {1}.";
+$l['moderate_for'] = "Moderuj przez:";
+$l['moderated_perm'] = "Posty tego użytkownika będą cały czas moderowane. Podaj nowy czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.
";
+$l['moderate_length'] = "Posty będą moderowane do {1}. Podaj nowy czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.
";
+
+$l['suspend_posts'] = "Odbierz możliwość pisania";
+$l['suspend_posts_info'] = "Odbierz użytkownikowi {1} możliwość pisania postów.";
+$l['suspend_for'] = "Odbierz na:";
+$l['suspended_perm'] = "Użytkownik na zawsze nie może pisać postów. Podaj nowy czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.
";
+$l['suspend_length'] = "Użytkownik nie będzie mógł pisać postów do {1}. Podaj nowy czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.
";
+
+$l['suspendsignature_error'] = "Wybrano wyłączenie użytkownikowi sygnatury, ale nie podano poprawnego okresu czasowego. Podaj poprawny czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.";
+$l['moderateposting_error'] = "Wybrano włączenie moderowania postów użytkownika, ale nie podano poprawnego okresu czasowego. Podaj poprawny czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.";
+$l['suspendposting_error'] = "Wybrano odebranie użytkownikowi możliwości pisania postów, ale nie podano poprawnego okresu czasowego. Podaj poprawny czas, aby zmienić datę wyłączenia ograniczenia bądź odznacz tę opcję aby teraz wyłączyć ograniczenie.";
+$l['suspendmoderate_error'] = "Wybrano odebranie użytkownikowi możliwości pisania postów lub włączenia ich moderowania. Wybierz tylko jeden z typów kary.";
+
+$l['expire_length'] = "Długość ograniczenia:";
+$l['expire_hours'] = "godzin(y)";
+$l['expire_days'] = "dni)";
+$l['expire_weeks'] = "tygodnie";
+$l['expire_months'] = "miesiÄ…ce";
+$l['expire_never'] = "nigdy";
+$l['expire_permanent'] = "na zawsze";
+
+$l['username'] = "Login";
+$l['email'] = "E-mail";
+$l['primary_group'] = "Główna grupa";
+$l['additional_groups'] = "Dodatkowe grupy";
+$l['registered'] = "Zarejestrowany";
+$l['last_active'] = "Ostatnio aktywny";
+$l['post_count'] = "Liczba postów";
+$l['thread_count'] = "Liczba wątków";
+$l['reputation'] = "Reputacja";
+$l['warning_level'] = "Poziom ostrzeżeń";
+$l['registration_ip'] = "IP rejestracji";
+$l['last_known_ip'] = "Ostatnio używane IP";
+$l['registration_date'] = "Data rejestracji";
+$l['info_on_ip'] = "Informacje o tym adresie IP";
+
+$l['current_avatar'] = "Aktualny awatar";
+$l['user_current_using_uploaded_avatar'] = "Ten użytkownik aktualnie korzysta z awatara wysłanego na serwer.";
+$l['user_currently_using_remote_avatar'] = "Ten użytkownik aktualnie korzysta ze zdalnie podlinkowanego awatara.";
+$l['max_dimensions_are'] = "Maksymalne rozmiary awatara to";
+$l['avatar_max_size'] = "Awatar nie może być większy niż";
+$l['remove_avatar'] = "Usunąć aktualny awatar?";
+$l['avatar_desc'] = "Zarządzaj awatarem tego użytkownika. Awatary to małe obrazki, które - umieszczone pod loginami użytkowników - pozwalają na ich szybką identyfikację.";
+$l['avatar_auto_resize'] = "Jeśli awatar jest zbyt duży, zostanie on automatycznie pomniejszony";
+$l['attempt_to_auto_resize'] = "Pomniejszyć, jeżeli awatar okaże się zbyt duży?";
+$l['specify_custom_avatar'] = "Wybierz własny awatar";
+$l['upload_avatar'] = "Wyślij awatar na serwer";
+$l['or_specify_avatar_url'] = "lub podaj jego adres URL/Gravatara";
+
+$l['user_notes'] = "Notatki użytkownika";
+
+$l['ip_addresses'] = "Adresy IP";
+$l['ip_address'] = "Adres IP";
+$l['show_users_regged_with_ip'] = "Wyświetl użytkowników, którzy zarejestrowali się z tego IP";
+$l['show_users_posted_with_ip'] = "Wyświetl użytkowników, którzy pisali z tego IP";
+$l['ban_ip'] = "Zbanuj ten adres IP";
+$l['ip_address_for'] = "Adresy IP użytkownika";
+
+$l['source_account'] = "Konto źródłowe";
+$l['source_account_desc'] = "Jest to konto, które zostanie dołączone do konta docelowego. W wyniku procesu łączenia to konto przestanie istnieć.";
+$l['destination_account'] = "Konto docelowe";
+$l['destination_account_desc'] = "Jest to konto, do którego zostanie dołączone konto źródłowe. Będzie istnieć nadal po przeprowadzeniu tego procesu.";
+$l['merge_user_accounts'] = "Połącz konta";
+
+$l['display_options'] = "Opcje wyświetlania";
+$l['ascending'] = "RosnÄ…co";
+$l['descending'] = "MalejÄ…ca";
+$l['sort_results_by'] = "Sortuj wyniki wg";
+$l['in'] = "w";
+$l['results_per_page'] = "Wyników na stronę";
+$l['display_results_as'] = "Wyświetl wyniki jako";
+$l['business_card'] = "Wizytówki";
+$l['views'] = "Widoki";
+$l['views_desc'] = "Zarządzaj istniejącymi i twórz nowe tryby wyświetlania (widoki), dzięki czemu uzyskasz łatwiejszy dostęp do interesujących Cię danych.";
+$l['manage_views'] = "ZarzÄ…dzaj widokami";
+$l['none'] = "brak";
+$l['search'] = "Znajdź";
+
+$l['view_profile'] = "Zobacz profil";
+$l['edit_profile_and_settings'] = "Edytuj profil i ustawienia";
+$l['ban_user'] = "Zbanuj użytkownika";
+$l['approve_coppa_user'] = "Aktywacja COPPA";
+$l['approve_user'] = "Aktywuj użytkownika";
+$l['delete_user'] = "Usuń użytkownika";
+$l['show_referred_users'] = "Pokaż zaproszonych";
+$l['show_attachments'] = "Pokaż załączniki";
+$l['table_view'] = "Widok tabelaryczny";
+$l['card_view'] = "Widok wizytówek";
+
+$l['find_users_where'] = "Znajdź użytkowników, których...";
+$l['username_contains'] = "Login zawiera";
+$l['email_address_contains'] = "Adres e-mail zawiera";
+$l['is_member_of_groups'] = "Grupa użytkowników to";
+$l['website_contains'] = "Strona WWW zawiera";
+$l['icq_number_contains'] = "Numer ICQ zawiera";
+$l['aim_handle_contains'] = "Identyfikator AIM zawiera";
+$l['yahoo_contains'] = "Identyfikator Yahoo! zawiera";
+$l['skype_contains'] = "Identyfikator Skype zawiera";
+$l['google_contains'] = "Identyfikator Google Talk zawiera";
+$l['signature_contains'] = "Sygnatura zawiera";
+$l['user_title_contains'] = "Własny tytuł użytkownika zawiera";
+$l['greater_than'] = "większa niż";
+$l['is_exactly'] = "równa";
+$l['less_than'] = "mniejsza niż";
+$l['post_count_is'] = "Liczba postów";
+$l['thread_count_is'] = "Liczba wątków";
+$l['reg_ip_matches'] = "Adres IP rejestracji to";
+$l['wildcard'] = "użyj * by zastąpić dowolny oktet adresu IP, np. 1.2.*.*";
+$l['posted_with_ip'] = "Jednym z adresów IP postowania jest";
+$l['custom_profile_fields_match'] = "Gdzie jedno z dodatkowych pól jest równe";
+$l['is_not_blank'] = " nie jest puste";
+$l['or'] = "lub";
+$l['reg_in_x_days'] = "Zarejestrował się w ciągu ostatnich";
+$l['days'] = "dni";
+
+$l['view'] = "Widok";
+$l['create_new_view'] = "Nowy widok";
+$l['create_new_view_desc'] = "Utwórz nowy tryb wyświetlania (widok), dzięki czemu uzyskasz łatwiejszy dostęp do interesujących Cię danych.";
+$l['view_manager'] = "Menedżer widoków";
+$l['set_as_default_view'] = "Ustawić jako domyślny?";
+$l['enabled'] = "Wyświetlane";
+$l['disabled'] = "Ukryte";
+$l['fields_to_show'] = "Wyświetlane pola";
+$l['fields_to_show_desc'] = "Wybierz pola, które mają być wyświetlane w tym widoku";
+$l['edit_view'] = "Edytuj widok";
+$l['edit_view_desc'] = "Zmodyfikuj listę pól do pokazania, kryteria wyszukiwania oraz opcje sortowania.";
+$l['private'] = "Prywatny";
+$l['private_desc'] = "Ten widok będzie dostępny tylko dla Ciebie";
+$l['public'] = "Publiczny";
+$l['public_desc'] = "Wszyscy inni administratorzy będą mogli korzystać z tego widoku";
+$l['visibility'] = "Widoczność";
+$l['save_view'] = "Zapisz widok";
+$l['created_by'] = "Utworzony przez";
+$l['default'] = "Domyślny";
+$l['this_is_a_view'] = "To jest widok {1}";
+$l['set_as_default'] = "Ustaw jako domyślny";
+$l['delete_view'] = "Usuń widok";
+$l['default_view_desc'] = "Standardowy widok MyBB. Nie może zostać usunięty ani zmodyfikowany.";
+$l['public_view_desc'] = "Publiczny widok dostępny dla wszystkich administratorów.";
+$l['private_view_desc'] = "Prywatny widok dostępny tylko dla Ciebie.";
+$l['table'] = "Tabela";
+$l['title'] = "Nazwa";
+
+$l['view_title_1'] = "Wszyscy użytkownicy";
+
+$l['emailsubject_activateaccount'] = "Account Activation at {1}";
+$l['email_adminactivateaccount'] = "{1},
+
+Administrator aktywował Twoje konto na forum \"{2}\".
+
+Aby kontynuować, przejdź do:
+
+{3}
+
+Możesz się teraz zalogować, używając danych podanych podczas rejestracji.
+
+Dziękujemy,
+Ekipa {2}";
+
+$l['ipaddress_misc_info'] = "Informacje dot. adresu IP: '{1}'";
+$l['ipaddress_host_name'] = "Nazwa hosta:";
+$l['ipaddress_location'] = "Lokalizacja (na podstawie danych z bazy GeoIP):";
diff --git a/Upload/inc/languages/polish/announcements.lang.php b/Upload/inc/languages/polish/announcements.lang.php
new file mode 100644
index 0000000..cf888ac
--- /dev/null
+++ b/Upload/inc/languages/polish/announcements.lang.php
@@ -0,0 +1,16 @@
+Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.";
+$l['archive_nopermission'] = "Nie masz uprawnień do przeglądania tego zasobu.";
+$l['error_nothreads'] = "Aktualnie nie ma wątków w tym dziale.";
+$l['error_unapproved_thread'] = "Ten wątek nie został zatwierdzony. Odwiedź wersję z pełnym formatowaniem aby zobaczyć jego treść.";
+$l['archive_not_found'] = "Błąd 404 Określony dokument (plik) nie został znaleziony na serwerze.";
+$l['error_mustlogin'] = "To forum wymaga zalogowania od wszystkich swoich użytkowników.";
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/calendar.lang.php b/Upload/inc/languages/polish/calendar.lang.php
new file mode 100644
index 0000000..dcae967
--- /dev/null
+++ b/Upload/inc/languages/polish/calendar.lang.php
@@ -0,0 +1,144 @@
+Prywatne: tylko Ty będziesz widzieć wydarzenie (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['delete_option'] = "Usuń: wydarzenie zostanie usunięte.";
+$l['post_event'] = "Nowe wydarzenie";
+$l['day_view'] = "PodglÄ…d dnia";
+$l['birthday'] = "osoba ma urodziny";
+$l['birthdays'] = "osób ma urodziny";
+$l['event_author'] = "Autor:";
+$l['edit_event'] = "Aktualizuj wydarzenie";
+$l['view_event'] = "Pokaż wydarzenie";
+$l['no_events'] = "Z tym dniem nie są związane żadne wydarzenia.
Kliknij, by dodać wydarzenie .
";
+$l['years_old'] = "{1} l.";
+$l['alt_edit'] = "Edytuj to wydarzenie";
+$l['alt_delete'] = "Usuń to wydarzenie";
+$l['moderator_options'] = "Opcje moderatora";
+$l['approve_event'] = "Zatwierdź wydarzenie";
+$l['unapprove_event'] = "Ukryj wydarzenie";
+$l['move_event'] = "PrzenieÅ› wydarzenie";
+$l['repeats_every_day'] = "Powtarza siÄ™ codziennie";
+$l['repeats_every_x_days'] = "Powtarza siÄ™ co {1} dni";
+$l['repeats_on_weekdays'] = "Powtarza się od poniedziałku do piątku";
+$l['every_week_on_days'] = "Powtarza się co tydzień w {1}";
+$l['every_week'] = "Powtarza się co tydzień";
+$l['every_x_weeks_on_days'] = "Powtarza siÄ™ co {1} tygodni(e) w {2}";
+$l['every_x_weeks'] = "Powtarza siÄ™ co {1} tygodni(e)";
+$l['every_month_on_day'] = "Powtarza się {1} dnia każdego miesiąca";
+$l['every_x_months_on_day'] = "Powtarza się {1} dnia miesiąca co {2} miesięcy";
+$l['every_month_on_weekday'] = "Powtarza się w: {1} {2} każdego miesiąca";
+$l['every_x_months_on_weekday'] = "Powtarza się w: {1} {2} co {3} miesięcy";
+$l['weekday_occurance_1'] = "1.";
+$l['weekday_occurance_2'] = "2.";
+$l['weekday_occurance_3'] = "3.";
+$l['weekday_occurance_4'] = "4.";
+$l['weekday_occurance_last'] = "ost.";
+$l['every_year_on_day'] = "Powtarza siÄ™ co roku w{1} {2}";
+$l['every_x_years_on_day'] = "Powtarza siÄ™ co {3} lat(a) w {1} {2}";
+$l['every_year_on_weekday'] = "Powtarza się każdego roku ({1} {2} w {3}).";
+$l['every_x_year_on_weekday'] = "Powtarza siÄ™ co {4} lat(a) ({1} {2} w {3})";
+$l['delete_event'] = "Usuń wydarzenie";
+$l['delete_q'] = "Usunąć?";
+$l['delete_1'] = "By usunąć to wydarzenie, zaznacz pole po lewej i kliknij przycisk po prawej.";
+$l['delete_2'] = "Uwaga: ta decyzja będzie nieodwracalna.";
+$l['delete_now'] = "Usuń teraz";
+$l['jump_to_calendar'] = "Przejdź do kalendarza:";
+$l['select_calendar'] = "Kalendarz:";
+$l['type_single'] = "Jednodniowe wydarzenie";
+$l['type_ranged'] = "Kilkudniowe lub powtarzajÄ…ce siÄ™ wydarzenie";
+$l['enter_time'] = "Godzina:";
+$l['start_time'] = "PoczÄ…tek:";
+$l['end_time'] = "Koniec:";
+$l['timezone'] = "Strefa czasowa:";
+$l['ignore_timezone'] = "Ignoruj strefę czasową: wydarzenie zostanie wyświetlone przy użyciu ustawień strefy czasowej przeglądającego.";
+$l['repeats'] = "Powtarzanie:";
+$l['does_not_repeat'] = "nie powtarza siÄ™";
+$l['repeats_daily'] = "codziennie / co kilka dni";
+$l['repeats_weekdays'] = "od poniedziałku do piątku";
+$l['repeats_weekly'] = "co tydzień / kilka tygodni";
+$l['repeats_every'] = "Powtarza siÄ™ co";
+$l['day_or_days'] = "dni";
+$l['week_or_weeks_on'] = "tygodni w";
+$l['repeats_monthly'] = "co miesiąc / kilka miesięcy";
+$l['repeats_yearly'] = "co roku / kilka lat";
+$l['repeats_on_day'] = "Powtarza siÄ™ w dniu numer ";
+$l['of_every'] = "co";
+$l['month_or_months'] = "miesięcy";
+$l['repeats_on_the'] = "Powtarza siÄ™ w ";
+$l['day_of_every'] = "dzień co";
+$l['repeats_on'] = "Powtarza siÄ™ ";
+$l['every'] = "co";
+$l['year_or_years'] = "lat";
+$l['of'] = "";
+$l['move_to_calendar'] = "PrzenieÅ› do kalendarza:";
+$l['weekly_overview'] = "PodglÄ…d tygodnia";
+$l['previous_week'] = "Poprzedni tydzień";
+$l['next_week'] = "Następny tydzień";
+$l['first'] = "1.";
+$l['second'] = "2.";
+$l['third'] = "3.";
+$l['fourth'] = "4.";
+$l['last'] = "ost.";
+$l['all_day'] = "cały dzień";
+$l['starts'] = "PoczÄ…tek: ";
+$l['finishes'] = "Koniec: ";
+
+$l['error_incorrectday'] = "Podana data jest niepoprawna. Wprowadź inną datę.";
+$l['error_invalidevent'] = "Wybrane wydarzenie nie istnieje.";
+$l['invalid_calendar'] = "Wybrany kalendarz nie istnieje. Czy na pewno adres jest poprawny?";
+$l['redirect_eventdeleted'] = "Wydarzenie zostało usunięte. Teraz nastąpi przeniesienie do kalendarza.";
+$l['redirect_eventupdated'] = "Wydarzenie zostało zaktualizowane. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_eventadded'] = "Wydarzenie zostało dodane. Teraz nastąpi przeniesienie do tego wydarzenia.";
+$l['redirect_eventadded_moderation'] = "Wydarzenie zostało dodane, ale wymaga zatwierdzenia przez moderatora zanim zostanie opublikowane. Teraz nastąpi przeniesienie do kalendarza.";
+$l['redirect_eventunapproved'] = "Wydarzenie zostało ukryte. Teraz nastąpi przeniesienie do tego wydarzenia.";
+$l['redirect_eventapproved'] = "Wydarzenie zostało zaakceptowane. Teraz nastąpi przeniesienie do tego wydarzenia.";
+$l['redirect_eventmoved'] = "Wydarzenie zostało przeniesione. Teraz nastąpi przeniesienie do tego wydarzenia.";
diff --git a/Upload/inc/languages/polish/contact.lang.php b/Upload/inc/languages/polish/contact.lang.php
new file mode 100644
index 0000000..341fba2
--- /dev/null
+++ b/Upload/inc/languages/polish/contact.lang.php
@@ -0,0 +1,30 @@
+ Jeżeli nie pamiętasz swojego hasła, kliknij tutaj , by wygenerować nowe.";
+$l['logindata_invalidpwordusernameemail'] = "Wprowadzono nieprawidłowy adres e-mail i/lub hasło. Jeżeli nie pamiętasz swojego hasła, kliknij tutaj , by wygenerować nowe.";
+$l['logindata_invalidpwordusernamecombo'] = "Wprowadzono nieprawidłowy login i/lub hasło albo adres e-mail i/lub hasło. Jeżeli nie pamiętasz swojego hasła, kliknij tutaj , by wygenerować nowe.";
+
+$l['logindata_regimageinvalid'] = "Wprowadzony kod z obrazka jest nieprawidłowy. Przepisz kod identyczny jak ten na obrazku.";
+$l['logindata_regimagerequired'] = "Uzupełnij kod weryfikujący aby kontynuować proces logowania. Przepisz kod identyczny jak ten na obrazku.";
diff --git a/Upload/inc/languages/polish/datahandler_pm.lang.php b/Upload/inc/languages/polish/datahandler_pm.lang.php
new file mode 100644
index 0000000..c55fe6d
--- /dev/null
+++ b/Upload/inc/languages/polish/datahandler_pm.lang.php
@@ -0,0 +1,22 @@
+ Możesz dodać maksymalnie {1} ostrzeżeń dziennie.';
+$l['warnings_error_invalid_user'] = "Wybrany użytkownik nie istnieje.";
+$l['warnings_error_invalid_post'] = "Wybrany post nie istnieje.";
+$l['warnings_error_cannot_warn_self'] = "Nie możesz przyznać ostrzeżenia sam sobie.";
+$l['warnings_error_user_reached_max_warning'] = "Nie można przyznać ostrzeżenia temu użytkownikowi, ponieważ osiągnął już ich maksymalny poziom.";
+$l['warnings_error_no_note'] = "Nie wpisano żadnych notatek administracyjnych.";
+$l['warnings_error_invalid_type'] = "Wybrano nieprawidłowy typ ostrzeżenia.";
+$l['warnings_error_cant_custom_warn'] = "Nie posiadasz uprawnień do przyznawania użytkownikom własnych ostrzeżeń.";
+$l['warnings_error_no_custom_reason'] = "Nie wpisano powodu własnego ostrzeżenia.";
+$l['warnings_error_invalid_custom_points'] = "Wpisano nieprawidłową liczbę punktów ostrzeżeń dla użytkownika. Wybrana liczba musi być większa od 0 i mniejsza niż {1}.";
+$l['warnings_error_invalid_expires_period'] = "Wpisano nieprawidłowy okres przedawnienia.";
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/editpost.lang.php b/Upload/inc/languages/polish/editpost.lang.php
new file mode 100644
index 0000000..7bb1430
--- /dev/null
+++ b/Upload/inc/languages/polish/editpost.lang.php
@@ -0,0 +1,55 @@
+Uwaga: jeśli ten post jest pierwszym w wątku, to wraz z nim zostanie usunięty cały wątek!";
+$l['subject'] = "Temat";
+$l['your_message'] = "Treść";
+$l['post_options'] = "Opcje posta:";
+$l['editreason'] = "Powód edycji:";
+$l['options_sig'] = "Sygnatura: pod postem pojawi się Twoja sygnatura (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['options_emailnotify'] = "Powiadomienie: kiedy ktoś odpowie, otrzymasz powiadomienie e-mailem (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['options_disablesmilies'] = "Wyłącz emotikony: w tym poście emotikony nie będą widoczne.";
+$l['preview_post'] = "PodglÄ…d";
+$l['update_post'] = "Aktualizuj post";
+$l['poll'] = "Ankieta";
+$l['poll_desc'] = "Możesz dodać ankietę do wątku.";
+$l['poll_check'] = "Chcę dodać ankietę";
+$l['num_options'] = "Liczba odpowiedzi:";
+$l['max_options'] = "(maksymalnie {1})";
+$l['delete_now'] = "Usuń";
+$l['edit_time_limit'] = "Nie możesz edytować tego posta. Możesz edytować posty tylko przez pierwsze {1} minut po ich napisaniu.";
+$l['no_prefix'] = "Bez prefiksu";
+
+$l['redirect_nodelete'] = "Post nie został usunięty - nie zaznaczono pola \"Usunąć?\".";
+$l['redirect_norestore'] = "Post nie został przywrócony - nie zaznaczono pola \"Przywrócić\".";
+$l['redirect_postedited'] = "Post został wyedytowany. ";
+$l['redirect_postedited_redirect'] = "Teraz nastÄ…pi przeniesienie do wÄ…tku.";
+$l['redirect_postedited_poll'] = "Post został wyedytowany. Postanowiono dodać ankietę do tego posta, więc teraz nastąpi przeniesienie do strony tworzenia ankiety.";
+$l['error_invalidpost'] = "Post nie istnieje. Sprawdź czy post istnieje i spróbuj ponownie.";
+$l['redirect_threaddeleted'] = "Wątek został usunięty. Teraz nastąpi przeniesienie na forum.";
+$l['redirect_postdeleted'] = "Post został usunięty. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_threadrestored'] = "Wątek został przywrócony. Teraz nastąpi przeniesienie do działu.";
+$l['redirect_postrestored'] = "Post został przywrócony. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_threadclosed'] = "Nie możesz edytować postów - wątek został zamknięty przez moderatora.";
+$l['redirect_post_moderation'] = "Każda edycja posta przed publikacją musi zostać zatwierdzona przez moderatora. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_thread_moderation'] = "Każda edycja wątku przed publikacją musi zostać zatwierdzona przez moderatora. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['error_already_delete'] = "Wybrany post został już usunięty.";
+
+$l['thread_deleted'] = "Usunięto wątek";
+$l['post_deleted'] = "Usunięto post";
+$l['thread_soft_deleted'] = "Nietrwale usunięto wątek";
+$l['post_soft_deleted'] = "Nietrwale usunięto post";
+$l['thread_restored'] = "Przywrócono wątek";
+$l['post_restored'] = "Przywrócono post";
+
+$l['error_already_deleted'] = 'Wybrany post został już usunięty.';
diff --git a/Upload/inc/languages/polish/forumdisplay.lang.php b/Upload/inc/languages/polish/forumdisplay.lang.php
new file mode 100644
index 0000000..1283eb9
--- /dev/null
+++ b/Upload/inc/languages/polish/forumdisplay.lang.php
@@ -0,0 +1,100 @@
+Poddziały:";
+$l['asc'] = "rosn.";
+$l['desc'] = "mal.";
+$l['forum_announcements'] = "Ogłoszenia";
+$l['sticky_threads'] = "Przypięte wątki";
+$l['normal_threads'] = "Zwykłe wątki";
+$l['icon_dot'] = "Zawiera posty napisane przez Ciebie.";
+$l['icon_no_new'] = "Brak nowych postów.";
+$l['icon_new'] = "Nowe posty.";
+$l['icon_hot'] = " Popularny wÄ…tek";
+$l['icon_lock'] = " Zamknięty wątek";
+$l['attachment_count'] = "Ten wątek zawiera 1 załącznik.";
+$l['attachment_count_multiple'] = "Ten wątek zawiera {1} załączników.";
+$l['rss_discovery_forum'] = "Ostatnie wÄ…tki w {1}";
+$l['forum_unapproved_posts_count'] = "Aktualnie jest {1} ukrytych postów w tym dziale.";
+$l['forum_unapproved_post_count'] = "Aktualnie jest 1 ukryty post w tym dziale.";
+$l['forum_unapproved_threads_count'] = "Aktualnie jest {1} ukrytych wątków w tym dziale.";
+$l['forum_unapproved_thread_count'] = "Aktualnie jest 1 ukryty wÄ…tek w tym dziale.";
+$l['thread_unapproved_posts_count'] = "Aktualnie jest {1} ukrytych postów w tym wątku.";
+$l['thread_unapproved_post_count'] = "Aktualnie jest 1 ukryty post w tym wÄ…tku.";
+$l['page_selected'] = "Wybrano wszystkie {1} wÄ…tki na tej stronie.";
+$l['all_selected'] = "Wybrano wszystkie {1} wÄ…tki w tym dziale.";
+$l['select_all'] = "Zaznacz wszystkie {1} wÄ…tki w tym dziale.";
+$l['clear_selection'] = "Wyczyść zaznaczenie.";
+
+$l['error_containsnoforums'] = "Dział, który aktualnie przeglądasz, nie zawiera poddziałów.";
+
+$l['inline_edit_description'] = '(Kliknij i przytrzymaj, aby edytować)';
diff --git a/Upload/inc/languages/polish/global.lang.php b/Upload/inc/languages/polish/global.lang.php
new file mode 100644
index 0000000..d463442
--- /dev/null
+++ b/Upload/inc/languages/polish/global.lang.php
@@ -0,0 +1,553 @@
+Witaj, {1}. Ostatnia wizyta: {2}";
+$l['welcome_guest'] = "Witaj!";
+$l['welcome_current_time'] = "Aktualny czas: {1}";
+
+$l['moved_prefix'] = "Przeniesiony:";
+$l['poll_prefix'] = "Ankieta:";
+
+$l['forumbit_announcements'] = "Ogłoszenia";
+$l['forumbit_stickies'] = "Przypięte wątki";
+$l['forumbit_forum'] = "Dział";
+$l['forumbit_threads'] = "Wątków";
+$l['forumbit_posts'] = "Postów";
+$l['forumbit_lastpost'] = "Ostatni post";
+$l['forumbit_moderated_by'] = "Moderowane przez:";
+$l['new_posts'] = "Dział zawiera nowe posty";
+$l['no_new_posts'] = "Dział nie zawiera nowych postów";
+$l['click_mark_read'] = "Kliknij, aby zaznaczyć ten dział jako przeczytany";
+$l['forum_locked'] = "Dział jest zablokowany";
+$l['forum_redirect'] = "Dział zawierający przekierowanie";
+$l['lastpost_never'] = "Nigdy";
+$l['viewing_one'] = " (1 przeglÄ…dajÄ…cy)";
+$l['viewing_multiple'] = " ({1} przeglÄ…dajÄ…cych)";
+$l['by'] = "przez";
+$l['more_subforums'] = "i {1} więcej.";
+
+$l['password_required'] = "Wymagane hasło";
+$l['forum_password_note'] = "Aby dostać się do tego działu należy podać hasło.";
+$l['enter_password_below'] = "Wpisz hasło w poniższe pole:";
+$l['verify_forum_password'] = "Sprawdź hasło";
+$l['wrong_forum_password'] = "Wprowadzone hasło jest niepoprawne. Spróbuj ponownie.";
+
+$l['reset_button'] = "Wyczyść";
+$l['username'] = "Login:";
+$l['username1'] = "Adres e-mail:";
+$l['username2'] = "Login/Adres e-mail:";
+$l['password'] = "Hasło:";
+$l['login_username'] = "Login";
+$l['login_username1'] = "Adres e-mail";
+$l['login_username2'] = "Login/Adres e-mail";
+$l['login_password'] = "Hasło";
+$l['lost_password'] = "Nie pamiętam hasła";
+$l['remember_me'] = "Zapamiętaj mnie";
+$l['remember_me_desc'] = "Jeżeli to pole zostanie zaznaczone, wszystkie wpisane dane zostaną zapamiętane na tym komputerze. W przeciwnym wypadku dane te zostaną wyczyszczone po zamknięciu przeglądarki.";
+
+$l['month_1'] = "Styczeń";
+$l['month_2'] = "Luty";
+$l['month_3'] = "Marzec";
+$l['month_4'] = "Kwiecień";
+$l['month_5'] = "Maj";
+$l['month_6'] = "Czerwiec";
+$l['month_7'] = "Lipiec";
+$l['month_8'] = "Sierpień";
+$l['month_9'] = "Wrzesień";
+$l['month_10'] = "Październik";
+$l['month_11'] = "Listopad";
+$l['month_12'] = "Grudzień";
+
+$l['sunday'] = "Niedziela";
+$l['monday'] = "Poniedziałek";
+$l['tuesday'] = "Wtorek";
+$l['wednesday'] = "Åšroda";
+$l['thursday'] = "Czwartek";
+$l['friday'] = "PiÄ…tek";
+$l['saturday'] = "Sobota";
+$l['short_monday'] = "Pon";
+$l['short_tuesday'] = "Wt";
+$l['short_wednesday'] = "Åšr";
+$l['short_thursday'] = "Czw";
+$l['short_friday'] = "Pt";
+$l['short_saturday'] = "So";
+$l['short_sunday'] = "N";
+
+$l['yes'] = "Tak";
+$l['no'] = "Nie";
+
+$l['and'] = "i";
+$l['date'] = "Data";
+
+$l['nobody'] = "Nikt";
+
+$l['attachments'] = "Załączniki";
+$l['attachments_desc'] = "Możesz załączyć jeden lub więcej załączników. Wybierz plik i kliknij \"Dodaj załącznik\", aby wysłać go na serwer.";
+$l['remove_attachment'] = "Usuń";
+$l['approve_attachment'] = "Zatwierdź";
+$l['unapprove_attachment'] = "Ukryj";
+$l['insert_attachment_post'] = "Wstaw do posta";
+$l['new_attachment'] = "Nowy załącznik:";
+$l['add_attachment'] = "Dodaj załącznik";
+$l['update_attachment'] = "Aktualizuj załącznik";
+$l['post_preview'] = "PodglÄ…d posta";
+$l['change_user'] = "zmień użytkownika";
+$l['post_icon'] = "Ikona posta";
+$l['no_post_icon'] = "bez ikony";
+$l['thread_subscription_method'] = "Subskrypcja wÄ…tku:";
+$l['thread_subscription_method_desc'] = "Wybierz sposób powiadamiania i subskrypcji tego wątku. (tylko dla zarejestrowanych)";
+$l['no_subscribe'] = "Nie subskrybuj wÄ…tku";
+$l['no_subscribe_notification'] = "Subskrybuj wątek, ale nie wysyłaj powiadomień o nowej odpowiedzi";
+$l['instant_email_subscribe'] = "Subskrybuj wątek i wysyłaj powiadomienia e-mail o nowej odpowiedzi";
+$l['instant_pm_subscribe'] = "Subskrybuj wątek i wysyłaj powiadomienia poprzez prywatną wiadomość o nowej odpowiedzi";
+
+$l['today'] = "Dzisiaj";
+$l['yesterday'] = "Wczoraj";
+$l['error'] = "Informacja";
+
+$l['multipage_pages'] = "Strony ({1}):";
+$l['multipage_last'] = "Ostatnia";
+$l['multipage_first'] = "Pierwsza";
+$l['multipage_next'] = "Następna";
+$l['multipage_previous'] = "Poprzednia";
+$l['multipage_link_start'] = " ...";
+$l['multipage_link_end'] = "... ";
+$l['multipage_jump'] = "Idź do strony";
+
+$l['editor_bold'] = "Pogrubienie";
+$l['editor_italic'] = "Kursywa";
+$l['editor_underline'] = "Podkreślenie";
+$l['editor_strikethrough'] = "Przekreślenie";
+$l['editor_subscript'] = "Indeks dolny";
+$l['editor_superscript'] = "Indeks górny";
+$l['editor_alignleft'] = "Wyrównaj do lewej";
+$l['editor_center'] = "Wyśrodkuj";
+$l['editor_alignright'] = "Wyrównaj do prawej";
+$l['editor_justify'] = "Wyjustuj";
+$l['editor_fontname'] = "Nazwa czcionki";
+$l['editor_fontsize'] = "Rozmiar czcionki";
+$l['editor_fontcolor'] = "Kolor czcionki";
+$l['editor_removeformatting'] = "Usuń formatowanie";
+$l['editor_cut'] = "Wytnij";
+$l['editor_copy'] = "Kopiuj";
+$l['editor_paste'] = "Wklej";
+$l['editor_cutnosupport'] = "Twoja przeglądarka nie obsługuje wycinania. Skorzystaj ze skrótu klawiszowego Ctrl/Cmd+X.";
+$l['editor_copynosupport'] = "Twoja przeglądarka nie obsługuje kopiowania. Skorzystaj ze skrótu klawiszowego Ctrl/Cmd+C.";
+$l['editor_pastenosupport'] = "Twoja przeglądarka nie obsługuje wklejania. Skorzystaj ze skrótu klawiszowego Ctrl/Cmd+V.";
+$l['editor_pasteentertext'] = "Wklej swój tekst do poniższego pola:";
+$l['editor_pastetext'] = "Wklej tekst";
+$l['editor_numlist'] = "Lista numerowana";
+$l['editor_bullist'] = "Lista punktowana";
+$l['editor_undo'] = "Cofnij";
+$l['editor_redo'] = "Ponów";
+$l['editor_rows'] = "Wierszy:";
+$l['editor_cols'] = "Kolumn:";
+$l['editor_inserttable'] = "Wstaw tabelÄ™";
+$l['editor_inserthr'] = "Wstaw poziomÄ… liniÄ™";
+$l['editor_code'] = "Kod";
+$l['editor_php'] = "Kod PHP";
+$l['editor_width'] = "Szerokość (opcjonalnie):";
+$l['editor_height'] = "Wysokość (opcjonalnie):";
+$l['editor_insertimg'] = "Wstaw obrazek";
+$l['editor_email'] = "Adres e-mail:";
+$l['editor_insertemail'] = "Wstaw adres e-mail";
+$l['editor_url'] = "Adres URL:";
+$l['editor_insertlink'] = "Wstaw link";
+$l['editor_unlink'] = "Usuń link";
+$l['editor_more'] = "Więcej";
+$l['editor_insertemoticon'] = "Wstaw emotikon";
+$l['editor_videourl'] = "Adres URL wideo:";
+$l['editor_videotype'] = "Typ wideo:";
+$l['editor_insert'] = "Wstaw";
+$l['editor_insertyoutubevideo'] = "Wstaw wideo z serwisu YouTube";
+$l['editor_currentdate'] = "Wstaw aktualnÄ… datÄ™";
+$l['editor_currenttime'] = "Wstaw aktualny godzinÄ™";
+$l['editor_print'] = "Drukuj";
+$l['editor_viewsource'] = "Pokaż źródło";
+$l['editor_description'] = "Opis (opcjonalnie):";
+$l['editor_enterimgurl'] = "Wprowadź adres URL obrazka:";
+$l['editor_enteremail'] = "Wprowadź adres e-mail:";
+$l['editor_enterdisplayedtext'] = "Wpisz tekst z obrazka:";
+$l['editor_enterurl'] = "Wprowadź adres URL:";
+$l['editor_enteryoutubeurl'] = "Wprowadź adres URL wideo lub jego ID:";
+$l['editor_insertquote'] = "Wstaw cytat";
+$l['editor_invalidyoutube'] = "Nieprawidłowe wideo";
+$l['editor_dailymotion'] = "Dailymotion";
+$l['editor_metacafe'] = "MetaCafe";
+$l['editor_veoh'] = "Veoh";
+$l['editor_vimeo'] = "Vimeo";
+$l['editor_youtube'] = "Youtube";
+$l['editor_facebook'] = "Facebook";
+$l['editor_liveleak'] = "LiveLeak";
+$l['editor_insertvideo'] = "Wstaw wideo";
+$l['editor_maximize'] = "Maksymalizuj";
+
+
+$l['quote'] = "Cytat:";
+$l['wrote'] = "napisał(a):";
+$l['code'] = "Kod:";
+$l['php_code'] = "Kod PHP:";
+$l['posted_image'] = "[Obrazek: {1}]";
+$l['posted_video'] = "[Wideo: {1}]";
+$l['linkback'] = "Cytowany post";
+
+$l['at'] = "na";
+$l['na'] = "N/A";
+$l['guest'] = "Gość";
+$l['unknown'] = "Nieznany";
+$l['never'] = "Nigdy";
+$l['postbit_posts'] = "Liczba postów:";
+$l['postbit_threads'] = "Liczba wątków:";
+$l['postbit_group'] = "Grupa:";
+$l['postbit_joined'] = "Dołączył:";
+$l['postbit_status'] = "Status:";
+$l['postbit_attachments'] = "Załączone pliki";
+$l['postbit_attachment_size'] = "Rozmiar:";
+$l['postbit_attachment_downloads'] = "Pobrań:";
+$l['postbit_attachments_images'] = "Obrazki";
+$l['postbit_attachments_thumbnails'] = "Miniatury";
+$l['postbit_unapproved_attachments'] = "{1} ukrytych załączników.";
+$l['postbit_unapproved_attachment'] = "1 ukryty załącznik.";
+$l['postbit_status_online'] = "Online";
+$l['postbit_status_offline'] = "Offline";
+$l['postbit_status_away'] = "Niedostępny";
+$l['postbit_edited'] = "Ten post był ostatnio modyfikowany: {1} przez";
+$l['postbit_editreason'] = "Powód edycji";
+$l['postbit_ipaddress'] = "Adres IP:";
+$l['postbit_ipaddress_logged'] = "zapisano";
+$l['postbit_post'] = "Post:";
+$l['postbit_reputation'] = "Reputacja:";
+$l['postbit_reputation_add'] = "Przyznaj punkt reputacji za ten post";
+$l['postbit_website'] = "Odwiedź stronę użytkownika";
+$l['postbit_email'] = "Wyślij wiadomość do użytkownika";
+$l['postbit_find'] = "Znajdź wszystkie posty użytkownika";
+$l['postbit_report'] = "Zgłoś post do moderatora";
+$l['postbit_quote'] = "Odpowiedz cytujÄ…c ten post";
+$l['postbit_qdelete_post'] = "Usuń ten post";
+$l['postbit_qdelete_thread'] = "Usuń ten wątek";
+$l['postbit_qrestore_post'] = "Przywróć ten post";
+$l['postbit_qrestore_thread'] = "Przywróć ten wątek";
+$l['postbit_profile'] = "Pokaż profil użytkownika";
+$l['postbit_pm'] = "Wyślij prywatną wiadomość";
+$l['postbit_edit'] = "Edytuj ten post";
+$l['postbit_multiquote'] = "Dodaj do odpowiedzi jako cytat";
+$l['postbit_quick_edit'] = "Szybka edycja";
+$l['postbit_full_edit'] = "Pełna edycja";
+$l['postbit_show_ignored_post'] = "Pokaż post";
+$l['postbit_currently_ignoring_user'] = "Zawartość posta została ukryta, ponieważ {1} jest na liście ignorowanych .";
+$l['postbit_warning_level'] = "Poziom ostrzeżeń:";
+$l['postbit_warn'] = "Dodaj ostrzeżenie za ten post";
+$l['postbit_purgespammer'] = "Usuń spamera";
+
+$l['postbit_button_reputation_add'] = 'Dodaj punkt reputacji';
+$l['postbit_button_website'] = 'Strona WWW';
+$l['postbit_button_email'] = 'E‑mail';
+$l['postbit_button_find'] = 'Szukaj';
+$l['postbit_button_report'] = 'Zgłoś';
+$l['postbit_button_quote'] = 'Odpowiedz';
+$l['postbit_button_qdelete'] = 'Usuń';
+$l['postbit_button_qrestore'] = 'Przywróć';
+$l['postbit_button_profile'] = 'Profil';
+$l['postbit_button_pm'] = 'PW';
+$l['postbit_button_warn'] = 'Ostrzeż';
+$l['postbit_button_edit'] = 'Edytuj';
+$l['postbit_button_multiquote'] = 'Cytuj';
+$l['postbit_button_reply_pm'] = 'Odpowiedz';
+$l['postbit_button_reply_all'] = 'Odpowiedz wszystkim';
+$l['postbit_button_forward'] = 'Prześlij dalej';
+$l['postbit_button_delete_pm'] = 'Usuń';
+$l['postbit_button_purgespammer'] = "Usuń spamera";
+
+$l['forumjump'] = "Skocz do:";
+$l['forumjump_select'] = "Wybierz:";
+$l['forumjump_pms'] = "Prywatne wiadomości";
+$l['forumjump_usercp'] = "Panel użytkownika";
+$l['forumjump_wol'] = "Kto jest online";
+$l['forumjump_search'] = "Szukaj...";
+$l['forumjump_home'] = "Strona główna forum";
+
+$l['redirect'] = "Teraz nastÄ…pi przeniesienie";
+$l['unknown_error'] = "Wystąpił nieznany błąd.";
+$l['post_fetch_error'] = 'Wystąpił błąd podczas wczytywania postów.';
+
+$l['smilieinsert'] = "Emotikony";
+$l['smilieinsert_getmore'] = "więcej";
+$l['on'] = "włączone";
+$l['off'] = "wyłączone";
+$l['unread_report'] = "Notatka dla moderatora: jest jeden nowy raportowany post.";
+$l['unread_reports'] = "Notatka dla moderatora: sÄ… nowe raportowane posty ({1}).";
+$l['pending_joinrequest'] = "Notatka dla lidera grupy: jest jedno zgłoszenie do grupy, której jesteś liderem.";
+$l['pending_joinrequests'] = "Notatka dla lidera grupy: jest {1} zgłoszeń do grupy, której jesteś liderem.";
+
+$l['year'] = "Rok";
+$l['year_short'] = "r";
+$l['years'] = "Lat";
+$l['years_short'] = "l";
+$l['month'] = "MiesiÄ…c";
+$l['month_short'] = "m-c";
+$l['months'] = "Miesięcy";
+$l['months_short'] = "m-cy";
+$l['week'] = "Tydzień";
+$l['week_short'] = "tydz";
+$l['weeks'] = "Tygodni";
+$l['weeks_short'] = "tyg";
+$l['day'] = "Dzień";
+$l['day_short'] = "d";
+$l['days'] = "Dni";
+$l['days_short'] = "d";
+$l['hour'] = "Godzina";
+$l['hour_short'] = "godz";
+$l['hours'] = "Godzin";
+$l['hours_short'] ="godz";
+$l['minute'] = "Minuta";
+$l['minute_short'] ="min";
+$l['minutes'] = "Minut";
+$l['minutes_short'] = "min";
+$l['second'] = "Sekunda";
+$l['second_short'] ="s";
+$l['seconds'] = "Sekund";
+$l['seconds_short'] = "s";
+
+$l['rel_in'] = "W ciÄ…gu ";
+$l['rel_ago'] = "temu";
+$l['rel_less_than'] = "Mniej niż ";
+$l['rel_time'] = "{1} {2} {3} {4}";
+$l['rel_minutes_single'] = "minutÄ™";
+$l['rel_minutes_plural'] = "minut(y)";
+$l['rel_hours_single'] = "godzinÄ™";
+$l['rel_hours_plural'] = "godzin(y)";
+
+$l['permanent'] = "Na zawsze";
+$l['save_draft'] = "Zapisz szkic";
+$l['go'] = "OK";
+$l['bbclosed_warning'] = "Forum jest aktualnie zamknięte.";
+$l['banned_warning'] = "Twoje konto jest zbanowane.";
+$l['banned_warning2'] = "Powód bana";
+$l['banned_warning3'] = "Ban zostanie zniesiony";
+$l['banned_lifted_never'] = "nigdy";
+$l['banned_email_warning'] = "Używasz adresu email, który nie został dozwolony na tym forum. Zmień adres email, aby móc kontynuować.";
+$l['powered_by'] = "Polskie tÅ‚umaczenie © 2007-".date("Y")." Polski Support MyBB Silnik forum";
+$l['copyright'] = "Copyright";
+$l['attach_quota'] = "Aktualnie używasz {1} (przydzielone miejsce: {2})";
+$l['view_attachments'] = "[Pokaż moje załączniki]";
+$l['unlimited'] = "nieograniczone";
+
+$l['click_hold_edit'] = "(Kliknij i przytrzymaj, aby edytować)";
+
+$l['guest_count'] = "1 gość";
+$l['guest_count_multiple'] = "{1} gości";
+
+$l['size_yb'] = "YB";
+$l['size_zb'] = "ZB";
+$l['size_eb'] = "EB";
+$l['size_pb'] = "PB";
+$l['size_tb'] = "TB";
+$l['size_gb'] = "GB";
+$l['size_mb'] = "MB";
+$l['size_kb'] = "KB";
+$l['size_bytes'] = "bajtów";
+
+$l['slaps'] = "rzuca w";
+$l['with_trout'] = "zgniłymi jajami.";
+
+$l['mybb_engine'] = "Silnik MyBB";
+$l['quickdelete_confirm'] = "Czy na pewno chcesz usunąć ten post?";
+$l['quickrestore_confirm'] = "Czy na pewno chcesz przywrócić ten post?";
+$l['newpm_notice_one'] = "Masz jedną nieprzeczytaną prywatną wiadomość od {1}, zatytułowaną {4} ";
+$l['newpm_notice_multiple'] = "Liczba nowych nieprzeczytanych prywatnych wiadomości: {1}. Ostatnia z nich to wiadomość od {2}, zatytułowana {5} ";
+$l['deleteevent_confirm'] = "Czy na pewno chcesz usunąć to wydarzenie?";
+$l['removeattach_confirm'] = "Czy na pewno chcesz usunąć zaznaczone załączniki?";
+
+$l['latest_threads'] = "Najnowsze wÄ…tki";
+
+$l['folder_inbox'] = "Odebrane";
+$l['folder_sent_items'] = "Wysłane";
+$l['folder_drafts'] = "Szkice";
+$l['folder_trash'] = "Usunięte";
+$l['folder_untitled'] = "Bez nazwy";
+
+$l['standard_mod_tools'] = "Standardowe narzędzia";
+$l['custom_mod_tools'] = "Niestandardowe narzędzia";
+
+$l['error_loadlimit'] = "Serwer jest zbyt obciążony. Wróć później, gdy serwer będzie mniej obciążony.";
+$l['error_boardclosed'] = "Forum jest aktualnie zamknięte. Poniżej znajduje się powód podany przez administratora.";
+$l['error_banned'] = "Twoje konto zostało zbanowane. Nie możesz pisać postów ani czytać wątków. Skontaktuj się z administratorem.";
+$l['error_cannot_upload_php_post'] = "Wysyłanie pliku nie powiodło się - rozmiar pliku przekracza limit określony w konfiguracji PHP (post_max_size). Kliknij przycisk \"Wstecz\".";
+$l['error_database_repair'] = "MyBB automatycznie naprawia uszkodzonÄ… tabelÄ™ bazy danych.";
+
+$l['unknown_user_trigger'] = "Wystąpił nieznany błąd.";
+$l['warnings'] = "Wystąpiły następujące problemy:";
+
+$l['ajax_loading'] = "Wczytywanie Proszę czekać...";
+$l['saving_changes'] = "Zapisywanie zmian...";
+$l['refresh'] = "Odśwież";
+$l['select_language'] = "Wybierz język";
+$l['select_theme'] = "Wybierz styl";
+
+$l['invalid_post_code'] = "Niepoprawny kod autoryzacji. Czy na pewno próbujesz uruchomić tę funkcję w poprawny sposób? Spróbuj ponownie.";
+$l['invalid_captcha'] = "Aby kontynuować, przepisz dokładnie kod z obrazka.";
+$l['invalid_captcha_verify'] = "Wprowadzony kod z obrazka jest nieprawidłowy. Spróbuj ponownie.";
+$l['invalid_captcha_transmit'] = "Wystąpił błąd. Spróbuj ponownie.";
+$l['captcha_fetch_failure'] = 'Wystąpił błąd podczas wczytywania nowego kodu.';
+$l['question_fetch_failure'] = 'Wystąpił błąd podczas wczytywania nowego pytania';
+$l['invalid_ayah_result'] = "Test \"Are you Human\" nie został ukończony. Spróbuj ponownie.";
+
+$l['timezone_gmt_minus_1200'] = "(GMT -12:00) Wyspy Marshalla";
+$l['timezone_gmt_minus_1100'] = "(GMT -11:00) Wyspa Midway, Nome";
+$l['timezone_gmt_minus_1000'] = "(GMT -10:00) Hawaje, Papeete";
+$l['timezone_gmt_minus_950'] = "(GMT -9:30) Markizy";
+$l['timezone_gmt_minus_900'] = "(GMT -9:00) Alaska";
+$l['timezone_gmt_minus_800'] = "(GMT -8:00) Czas pacyficzny (USA i Kanada)";
+$l['timezone_gmt_minus_700'] = "(GMT -7:00) Czas górski (USA i Kanada)";
+$l['timezone_gmt_minus_600'] = "(GMT -6:00) Czas środkowy (USA i Kanada)";
+$l['timezone_gmt_minus_500'] = "(GMT -5:00) Czas wschodni (USA i Kanada)";
+$l['timezone_gmt_minus_450'] = "(GMT -4:30) Caracas";
+$l['timezone_gmt_minus_400'] = "(GMT -4:00) Czas atlantycki (Kanada), La Paz, Halifax";
+$l['timezone_gmt_minus_350'] = "(GMT -3:30) Nowa Funlandia";
+$l['timezone_gmt_minus_300'] = "(GMT -3:00) Brazylia, Buenos Aires, Georgetown";
+$l['timezone_gmt_minus_200'] = "(GMT -2:00) Środkowy Atlantyk, Georgia Południowa i Sandwich Południowy";
+$l['timezone_gmt_minus_100'] = "(GMT -1:00) Azory, Wyspy Zielonego PrzylÄ…dka";
+$l['timezone_gmt'] = "(GMT) Casablanca, Dublin, Edinburgh, Londyn, Lizbona, Monrovia";
+$l['timezone_gmt_100'] = "(GMT +1:00) Berlin, Bruksela, Kopenhaga, Madryt, Paryż, Rzym, Warszawa";
+$l['timezone_gmt_200'] = "(GMT +2:00) Ateny, Stambuł, Kair, Jerozolima, Południowa Afryka";
+$l['timezone_gmt_300'] = "(GMT +3:00) Kaliningrad, Mińsk, Bagdad, Riad, Moskwa, Nairobi";
+$l['timezone_gmt_350'] = "(GMT +3:30) Teheran";
+$l['timezone_gmt_400'] = "(GMT +4:00) Moskwa, Abu Dhabi, Baku, Maskat, Tbilisi";
+$l['timezone_gmt_450'] = "(GMT +4:30) Kabul";
+$l['timezone_gmt_500'] = "(GMT +5:00) Islamabad, Karaczi, Taszkient";
+$l['timezone_gmt_550'] = "(GMT +5:30) Bombaj, Kalkuta, Madras, Nowe Delhi";
+$l['timezone_gmt_575'] = "(GMT +5:45) Katmandu";
+$l['timezone_gmt_600'] = "(GMT +6:00) AÅ‚ma-ata, Dhakra, Jekaterinburg";
+$l['timezone_gmt_650'] = "(GMT +6:30) Rangun";
+$l['timezone_gmt_700'] = "(GMT +7:00) Bangkok, Hanoi, Dżakarta";
+$l['timezone_gmt_800'] = "(GMT +8:00) Pekin, Hongkong, Perth, Singapur, Taipei";
+$l['timezone_gmt_900'] = "(GMT +9:00) Osaka, Sapporo, Seul, Tokio, Irkuck";
+$l['timezone_gmt_950'] = "(GMT +9:30) Adelajda, Darwin";
+$l['timezone_gmt_1000'] = "(GMT +10:00) Melbourne, Papua Nowa Gwinea, Sydney, Jakuck";
+$l['timezone_gmt_1050'] = "(GMT +10:30) Wyspa Lord Howe";
+$l['timezone_gmt_1100'] = "(GMT +11:00) Magadan, Nowa Kaledonia, Wyspy Salomona, WÅ‚adywostok";
+$l['timezone_gmt_1150'] = "(GMT +11:30) Wyspa Norfolk";
+$l['timezone_gmt_1200'] = "(GMT +12:00) Auckland, Wellington, Fidżi, Wyspa Marshalla";
+$l['timezone_gmt_1275'] = "(GMT +12:45) Wyspy Chatham";
+$l['timezone_gmt_1300'] = "(GMT +13:00) Samoa, Tonga, Tokelau";
+$l['timezone_gmt_1400'] = "(GMT +14:00) Wyspy Line";
+$l['timezone_gmt_short'] = "GMT {1}({2})";
+
+$l['missing_task'] = "Błąd: plik zadań nie istnieje";
+$l['task_backup_cannot_write_backup'] = "Błąd: zadanie tworzenia kopii zapasowej bazy danych nie może zostać wykonane - nie ma uprawnień do zapisywania w katalogu kopii zapasowych.";
+$l['task_backup_ran'] = "Zadanie tworzenia kopii zapasowej bazy danych zostało wykonane.";
+$l['task_checktables_ran'] = "Zadanie sprawdzania tabel zostało wykonane. Nie znaleziono żadnych uszkodzonych tabel.";
+$l['task_checktables_ran_found'] = "Uwaga: Zadanie sprawdzania tabel bazy danych zostało wykonane. Naprawiono {1} tabel.";
+$l['task_dailycleanup_ran'] = "Zadanie codziennego oczyszczania zostało wykonane.";
+$l['task_hourlycleanup_ran'] = "Zadanie cogodzinnego oczyszczania zostało wykonane.";
+$l['task_logcleanup_ran'] = "Zadanie czyszczenia logów zostało wykonane. Usunięto wszystkie przestarzałe wpisy.";
+$l['task_promotions_ran'] = "Zadanie przydzielania awansów zostało wykonane.";
+$l['task_threadviews_ran'] = "Zadanie przeliczania wyświetleń wątków zostało wykonane.";
+$l['task_usercleanup_ran'] = "Zadanie oczyszczania statusu użytkowników zostało wykonane.";
+$l['task_massmail_ran'] = "Zadanie masowego wysyłania wiadomości e-mail zostało wykonane.";
+$l['task_userpruning_ran'] = "Zadanie czyszczenia użytkowników zostało wykonane.";
+$l['task_delayedmoderation_ran'] = "Zadanie opóźnionej moderacji zostało wykonane.";
+$l['task_massmail_ran_errors'] = "Wystąpił jeden lub kilka błędów podczas wysyłania wiadomości do \"{1}\":
+{2}";
+$l['task_versioncheck_ran'] = "Sprawdzenie nowej wersji zostało wykonane pomyślnie.";
+$l['task_versioncheck_ran_errors'] = "Nie można połączyć się z serwerami MyBB, aby sprawdzić dostępność nowej wersji.";
+$l['task_recachestylesheets_ran'] = 'Zaktualizowano pamięć podręczną {1} arkuszy stylów kaskadowych.';
+
+$l['dismiss_notice'] = "Usuń tę notatkę";
+
+$l['next'] = "Dalej";
+$l['previous'] = "Wstecz";
+$l['delete'] = "Usuń";
+
+$l['massmail_username'] = "Nick";
+$l['email_addr'] = "Adres email";
+$l['board_name'] = "Nazwa forum";
+$l['board_url'] = "Adres forum";
+
+$l['comma'] = ", ";
+
+$l['debug_generated_in'] = "Wygenerowano w ciÄ…gu {1}";
+$l['debug_weight'] = "({1}% PHP / {2}% {3})";
+$l['debug_sql_queries'] = "Liczba zapytań SQL: {1}";
+$l['debug_server_load'] = "Obciążenie serwera: {1}";
+$l['debug_memory_usage'] = "Zużycie pamięci: {1}";
+$l['debug_advanced_details'] = "Szczegóły";
+
+$l['error_emailflooding_1_second'] = "Przed wysłaniem kolejnej wiadomości e-mail musisz odczekać następującą liczbę minut: {1}. Odczekaj 1 sekundę i spróbuj ponownie.";
+$l['error_emailflooding_seconds'] = "Przed wysłaniem kolejnej wiadomości e-mail musisz odczekać następującą liczbę minut: {1}. Odczekaj {2} sekund(y) i spróbuj ponownie.";
+$l['error_emailflooding_1_minute'] = "Przed wysłaniem kolejnej wiadomości e-mail musisz odczekać następującą liczbę minut: {1}. Odczekaj 1 minutę i spróbuj ponownie.";
+$l['error_emailflooding_minutes'] = "Przed wysłaniem kolejnej wiadomości e-mail musisz odczekać następującą liczbę minut: {1}. Odczekaj {2} minut(y) i spróbuj ponownie.";
+$l['error_invalidfromemail'] = "Nie wprowadzono prawidłowego adresu e-mail nadawcy.";
+$l['error_noname'] = "Nie wprowadzono prawidłowej nazwy nadawcy.";
+$l['your_email'] = "Twój adres e-mail:";
+$l['email_note'] = "Wprowadź tu swój adres e-mail.";
+$l['your_name'] = "Twoje imiÄ™:";
+$l['name_note'] = "Wprowadź tu swoje imię lub pseudonim.";
+
+$l['january'] = "styczeń";
+$l['february'] = "luty";
+$l['march'] = "marzec";
+$l['april'] = "kwiecień";
+$l['may'] = "maj";
+$l['june'] = "czerwiec";
+$l['july'] = "lipiec";
+$l['august'] = "sierpień";
+$l['september'] = "wrzesień";
+$l['october'] = "październik";
+$l['november'] = "listopad";
+$l['december'] = "grudzień";
+
+$l['moderation_forum_attachments'] = "Nowe załaczniki z tego działu muszą zostać zaakceptowane przed moderatora.";
+$l['moderation_forum_posts'] = "Nowe posty z tego działu muszą zostać zaakceptowane przed moderatora.";
+$l['moderation_user_posts'] = "Nowe posty twojego autorstwa muszą zostać zaakceptowane przed moderatora.";
+$l['moderation_forum_thread'] = "Nowe wątki z tego działu muszą zostać zaakceptowane przed moderatora.";
+$l['moderation_forum_edits'] = "Edycje postów z tego działu muszą zostać zaakceptowane przed moderatora.";
+$l['moderation_forum_edits_quick'] = "Nowe wątki z tego działu muszą zostać zaakceptowane przed moderatora.";
+$l['awaiting_message_single'] = "Użytkownik oczekuje na aktywację. Aby przeprowadzić aktywację, przejdź do ACP.";
+$l['awaiting_message_plural'] = "Użytkowników oczekujących na aktywację: {1}. Aby przeprowadzić aktywację, przejdź do ACP.";
+
+$l['select2_match'] = "Dostępny jest jeden wynik. Wciśnij enter, aby go wybrać.";
+$l['select2_matches'] = "Dostępnych wyników: {1}. Użyj strzałek w dół i w górę, aby nawigować.";
+$l['select2_nomatches'] = "Nic nie znaleziono";
+$l['select2_inputtooshort_single'] = "Wpisz co najmniej jeden znak";
+$l['select2_inputtooshort_plural'] = "Wpisz {1} lub więcej znaków";
+$l['select2_inputtoolong_single'] = "Usuń jeden znak";
+$l['select2_inputtoolong_plural'] = "Usuń {1} znaki/znaków";
+$l['select2_selectiontoobig_single'] = "Możesz wybrać tylko jednen wynik";
+$l['select2_selectiontoobig_plural'] = "Możesz wybrać tylko {1} wyniki/wyników";
+$l['select2_loadmore'] = "Wczytywanie większej ilości wyników";
+$l['select2_searching'] = "Wyszukiwanie";
+
+$l['stopforumspam_error_decoding'] = 'Wystąpił błąd podczas przetwarzania danych z StopForumSpam.com.';
+$l['stopforumspam_error_retrieving'] = 'Wystąpił błąd podczas pobierania danych z StopForumSpam.com.';
diff --git a/Upload/inc/languages/polish/helpdocs.lang.php b/Upload/inc/languages/polish/helpdocs.lang.php
new file mode 100644
index 0000000..05a5974
--- /dev/null
+++ b/Upload/inc/languages/polish/helpdocs.lang.php
@@ -0,0 +1,71 @@
+ Po rejestracji możesz pisać wiadomości, ustawiać opcje dotyczące wyglądu i zarządzać swoim profilem.
+ Do korzystania z niektórych funkcji wymagana jest rejestracja - są to: subskrypcje, zmienianie stylów, dostęp do prywatnego notatnika, pisanie prywatnych wiadomości do innych użytkowników.";
+
+// Help Document 2
+$l['d2_name'] = "Aktualizowanie profilu";
+$l['d2_desc'] = "Zmienianie ustawień w profilu";
+$l['d2_document'] = "Po rejestracji na forum, możesz zmieniać informacje osobiste w profilu, takie jak: komunikatory, hasło, lub - jeśli potrzeba - adres e-mail. Wszystkie z tych informacji i ustawień można ustawić w [panelu użytkownika] znajdującym się u góry po prawej. Następnie kliknij [Edytuj profil] i aktualizuj swoje ustawienia. Pamiętaj o kliknięciu w przycisk [Zatwierdź], aby zmiany zostały zachowane.";
+
+// Help Document 3
+$l['d3_name'] = "Ciasteczka w MyBB";
+$l['d3_desc'] = "MyBB używa ciasteczek do przechowywania Twoich informacji o zalogowaniu";
+$l['d3_document'] = "MyBulletinBoard tworzy ciasteczka (cookies), w których przechowuje informacje o zalogowaniu.
+ Ciasteczka to małe pliki przechowywane na Twoim komputerze; ciasteczka utworzone przez daną stronę działają tylko na tej stronie.
+ Ciasteczka MyBB sprawdzają kiedy ostatnio i czy w ogóle przeczytano poszczególne wątki.
+ Aby wyczyścić wszystkie ciasteczka, kliknij tutaj .";
+
+// Help Document 4
+$l['d4_name'] = "Logowanie i wylogowywanie";
+$l['d4_desc'] = "Jak się zalogować i wylogować";
+$l['d4_document'] = "Gdy się zalogujesz, ciasteczka na komputerze zostaną ustawione tak, aby można było przeglądać forum jako zalogowany użytkownik bez ciągłej potrzeby logowania. Wylogowanie czyści ciasteczka dotyczące logowania.
+ Aby się zalogować, kliknij [Logowanie] u góry, pod nawigacją. Aby się wylogować, kliknij [Wyloguj] w tym samym miejscu. Wyczyszczenie ciasteczek w Twojej przeglądarce da ten sam efekt.";
+
+// Help Document 5
+$l['d5_name'] = "Pisanie nowego wÄ…tku";
+$l['d5_desc'] = "Rozpoczynanie wÄ…tku na forum";
+$l['d5_document'] = "Jeśli chcesz utworzyć nowy wątek na forum, wybierz dział w którym chcesz go napisać, a następnie kliknij na przycisk [Nowy wątek]. Jeśli zobaczysz komunikat \"Nie masz uprawnień\" oznacza to, że nie masz uprawnień do pisania w danym dziale.";
+
+// Help Document 6
+$l['d6_name'] = "Odpowiadanie w wÄ…tku";
+$l['d6_desc'] = "Odpowiadanie na forum";
+$l['d6_document'] = "Wybierz wątek, w którym chcesz odpowiedzieć. Kliknij na przycisk [Odpowiedz] znajdujący się u góry ekranu. Pamiętaj również, że administrator mógł nałożyć restrykcje, więc możliwe, że nie będziesz mieć możliwości odpowiadania w niektórych działach.
+ Moderator może usunąć wątek, w którym przez określony czas nie będzie odpowiedzi.";
+
+
+// Help Document 7
+$l['d7_name'] = "MyCode";
+$l['d7_desc'] = "Wszystko o MyCode";
+$l['d7_document'] = "Możesz używać MyCode - to uproszczona wersja HTML.
+ [b]Pogrubiony tekst[/b] Pogrubiony tekst
+
[i]Kursywa[/i] Kursywa
+
[u]Podkreślenie[/u] Podkreślenie
+
[s]Przekreślenie[/s] Przekreślenie
+
[url]http://www.przykladowy.adres.pl/[/url] http://www.przykladowy.adres.pl/
+
[url=http://www.strona.pl/]Tytuł[/url] Tytuł
+
[email]mojemail@serwer.pl[/email] mojemail@serwer.pl
+
[email=mojemail@serwer.pl]Napisz do mnie![/email] Napisz do mnie!
+
[email=mojemail@serwer.pl?subject=temat]e-mail z tematem[/email] email z tematem
+
[quote]Cytat[/quote] Cytat
+
[code]kod[/code] kod
+
[img]http://www.php.net/images/php.gif[/img]
+
[img=50x50]http://www.php.net/images/php.gif[/img]
+
[color=red]Czerwony kolor[/color] Czerwony kolor
+
[size=medium]Rozmiar medium[/size] Rozmiar medium
+
[font=Tahoma]Czcionka Tahoma[/font] Czcionka Tahoma
+
[align=center]Wycentrowany[/align]
Wycentrowany
+[align=right]Wyrównany do prawej[/align]
Wyrównany do prawej
+ [list] [*]Punkt #1 [*]Punkt #2 [*]Punkt #3 [/list]
Punkt #1 Punkt #2 Punkt #3
+
+Możesz również ustalić typ punktowania - dostępne typy: liczbowy [list=1] i alfabetyczny [list=a].
";
diff --git a/Upload/inc/languages/polish/helpsections.lang.php b/Upload/inc/languages/polish/helpsections.lang.php
new file mode 100644
index 0000000..f9c6e4a
--- /dev/null
+++ b/Upload/inc/languages/polish/helpsections.lang.php
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/index.lang.php b/Upload/inc/languages/polish/index.lang.php
new file mode 100644
index 0000000..79aa5ee
--- /dev/null
+++ b/Upload/inc/languages/polish/index.lang.php
@@ -0,0 +1,42 @@
+{1}.";
+$l['stats_mostonline'] = "Najwięcej użytkowników online - {1} - było {2} o {3}.";
+$l['whos_online'] = "Kto jest online";
+$l['complete_list'] = "Szczegóły";
+$l['online_online_plural'] = "użytkowników aktywnych";
+$l['online_online_singular'] = "użytkownik aktywny";
+$l['online_member_plural'] = "zarejestrowanych";
+$l['online_member_singular'] = "zarejestrowany";
+$l['online_anon_plural'] = "niewidocznych";
+$l['online_anon_singular'] = "niewidoczny";
+$l['online_guest_plural'] = "gości";
+$l['online_guest_singular'] = "gość";
+$l['online_note'] = "{1} {2} w ciÄ…gu ostatnich {3} minut: {4} {5} (w tym {6} {7}) oraz {8} {9}.";
+$l['subforums'] = "Poddziały: ";
diff --git a/Upload/inc/languages/polish/mailhandler.lang.php b/Upload/inc/languages/polish/mailhandler.lang.php
new file mode 100644
index 0000000..d796ce0
--- /dev/null
+++ b/Upload/inc/languages/polish/mailhandler.lang.php
@@ -0,0 +1,17 @@
+';
diff --git a/Upload/inc/languages/polish/managegroup.lang.php b/Upload/inc/languages/polish/managegroup.lang.php
new file mode 100644
index 0000000..88d2cd8
--- /dev/null
+++ b/Upload/inc/languages/polish/managegroup.lang.php
@@ -0,0 +1,65 @@
+{1} nierozpatrzonych próśb o przyjęcie.";
+$l['group_management'] = "ZarzÄ…dzanie grupami";
+$l['members_of'] = "Członek \"{1}\"";
+$l['user_name'] = "Użytkownik";
+$l['contact'] = "Kontakt";
+$l['reg_date'] = "Zarejestrowany";
+$l['post_count'] = "Postów";
+$l['remove_selected'] = "Usuń zaznaczonych użytkowników z grupy";
+$l['add_member'] = "Dodaj użytkownika do \"{1}\"";
+$l['add_member_submit'] = "Dodaj użytkownika do grupy";
+$l['invite_member'] = "Zaproś użytkownika do \"{1}\"";
+$l['invite_member_submit'] = "Zaproś użytkownika do grupy";
+$l['join_requests'] = "Prośby o przyjęcie";
+$l['join_requests_title'] = "Prośby o przyjęcie do \"{1}\"";
+$l['leader'] = "(lider)";
+$l['reason'] = "Powód";
+$l['accept'] = "Akceptuj";
+$l['ignore'] = "Ignoruj";
+$l['decline'] = "Odrzuć";
+$l['action_requests'] = "Wykonaj";
+$l['join_requests_moderated'] = "Prośby o przyjęcie zostały rozpatrzone. Nastąpi przeniesienie do listy próśb.";
+$l['no_requests'] = "Aktualnie brak próśb o przyjęcie.";
+$l['no_users'] = "W tej grupie nie ma użytkowników.";
+$l['user_added'] = "Użytkownik został dodany do grupy.";
+$l['users_removed'] = "Zaznaczeni użytkownicy zostali usunięci z grupy.";
+$l['group_no_members'] = "Aktualnie w tej grupie nie ma użytkowników. Aby powrócić do zarządzania grupami, kliknij tutaj .";
+$l['group_public_moderated'] = "Ta grupa jest grupą publiczną, więc każdy może do niej dołączyć. Wszystkie prośby o dołączenie są rozpatrywane przez lidera.";
+$l['group_public_not_moderated'] = "Ta grupa jest publiczna. Każdy może do niej dołączyć.";
+$l['group_public_invite'] = "Ta grupa jest publiczna. Dołączenie do niej wymaga zaproszenia od lidera.";
+$l['group_private'] = "To jest prywatna grupa. By do niej dołączyć, użytkownik musi zostać dodany przez lidera.";
+$l['group_default'] = "To jest grupa główna.";
+$l['group_leaders'] = "Liderzy grup";
+$l['search_user'] = "Szukaj użytkownika";
+$l['no_users_selected'] = "Nie zaznaczono użytkowników do usunięcia. Wróć i usuń użytkowników do usunięcia z grupy.";
+
+$l['error_alreadyingroup'] = "Wybrany użytkownik już należy do tej grupy.";
+$l['error_alreadyinvited'] = "Wybrany użytkownik został już zaproszony do tej grupy.";
+
+$l['user_invited'] = "Użytkownik został zaproszony do dołączenia do grupy.";
+$l['invite_pm_subject'] = "Nowe zaproszenie do grupy \"{1}\"";
+$l['invite_pm_message'] = "Masz nowe zaproszenie do dołączenia do grupy \"{1}\".
+
+Aby do niej dołączyć, przejdź do sekcji [url={2}/usercp.php?action=usergroups]Grupy użytkowników[/url] w panelu użytkownika i kliknij \"Akceptuj\".
+
+To zaproszenie jest ważne bezterminowo.";
+$l['invite_pm_message_expires'] = "Masz nowe zaproszenie do dołączenia do grupy \"{1}\".
+
+Aby do niej dołączyć, przejdź do sekcji [url={2}/usercp.php?action=usergroups]Grupy użytkowników[/url] w panelu użytkownika i kliknij \"Akceptuj\".
+
+To zaproszenie wygaśnie za {3} dni.";
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/member.lang.php b/Upload/inc/languages/polish/member.lang.php
new file mode 100644
index 0000000..9d54842
--- /dev/null
+++ b/Upload/inc/languages/polish/member.lang.php
@@ -0,0 +1,258 @@
+NIE WOLNO Ci pisać postów łamiących te zasady.";
+$l['agreement_3'] = "Jeśli złamiesz któreś z tych postanowień, narazisz się na możliwość usunięcia konta lub zbanowania używanego przez Ciebie adresu IP.";
+$l['agreement_4'] = "Żadne z Twoich danych podanych podczas rejestracji na forum nie będą wykorzystywane w celach niezwiązanych z działalnością forum ani przekazywane osobom trzecim.";
+$l['agreement_5'] = "Kontynuując rejestrację oświadczasz, że zgadzasz się ze wszystkimi wymienionymi powyżej postanowieniami oraz innymi regułami ustalonymi przez administratorów tego forum. W celu poznania pełnych reguł obowiązujących na forum, skontaktuj się z administratorem.";
+$l['registration'] = "Rejestracja";
+$l['required_fields'] = "Wymagane pola";
+$l['complex_password'] = "Złożone hasło:";
+$l['confirm_email'] = "Potwierdź e-mail:";
+$l['optional_fields'] = "Opcjonalne pola";
+$l['website_url'] = "Strona WWW:";
+$l['birthdate'] = "Urodziny:";
+$l['additional_info'] = "Dodatkowe informacje";
+$l['required_info'] = "Wymagane informacje";
+$l['i_agree'] = "Zgadzam siÄ™";
+$l['account_details'] = "Szczegóły konta";
+$l['account_prefs'] = "Ustawienia konta:";
+$l['invisible_mode'] = "Nie pokazuj mnie na liście osób online.";
+$l['allow_notices'] = "Dostarczaj mi e-maile od administratorów.";
+$l['hide_email'] = "Ukryj mój adres e-mail przed innymi użytkownikami.";
+$l['email_notify'] = "Automatycznie subskrybuj wątek, w którym napiszę.";
+$l['receive_pms'] = "Dostarczaj mi prywatne wiadomości od innych użytkowników.";
+$l['pm_notice'] = "Powiadom mnie, gdy dostanę nową prywatną wiadomość.";
+$l['email_notify_newpm'] = "Powiadamiaj mnie e-mailem o każdej nowej prywatnej wiadomości.";
+$l['time_offset'] = "Strefa czasowa (czas letni):";
+$l['time_offset_desc'] = "Jeżeli mieszkasz w innej strefie czasowej niż domyślna, wybierz ją z listy poniżej.";
+$l['dst_correction'] = "Ustawienia DST (czasu letniego):";
+$l['dst_correction_auto'] = "Automatycznie wykryj DST";
+$l['dst_correction_enabled'] = "Zawsze używaj DST";
+$l['dst_correction_disabled'] = "Nigdy nie używaj DST";
+$l['redirect_registered_coppa_activate'] = "Dziękujemy za rejestrację w {1}, {2}. Konto zostało utworzone, ale ponieważ nie spełniasz wymogu ukończenia 13 roku życia, musisz dostarczyć zgodę rodziców na używanie tego konta. Twój rodzic lub prawny opiekun musi pobrać, wypełnić i wysłać nam kopię formularza COPPA . Gdy dotrze do nas wypełniony formularz, Twoje konto zostanie aktywowane.";
+$l['coppa_compliance'] = "COPPA";
+$l['coppa_desc'] = "Aby zarejestrować Cię na tym forum, musimy sprawdzić, czy spełniasz warunki COPPA . Podaj swoją datę urodzenia. Jeżeli masz mniej niż 13 lat, do rejestracji będzie wymagana zgoda rodziców. Twój rodzic lub prawny opiekun będzie musiał pobrać, wypełnić i wysłać nam kopię formularza COPPA .";
+$l['hide_dob'] = "Edytując swój profil po zarejestrowaniu będziesz mieć możliwość ukrycia swojej daty urodzenia.";
+$l['signature'] = "Sygnatura:";
+$l['continue_registration'] = "Kontynuuj rejestracjÄ™";
+$l['birthdayprivacy'] = "Wyświetlanie daty urodzenia:";
+$l['birthdayprivacyall'] = "Wyświetl wiek i datę urodzenia";
+$l['birthdayprivacynone'] = "Ukryj wiek i datÄ™ urodzenia";
+$l['birthdayprivacyage'] = "Wyświetl tylko wiek";
+$l['leave_this_field_empty'] = "Pozostaw to pole puste:";
+$l['error_need_to_be_thirteen'] = "Musisz mieć ukończone 13 lat by zarejestrować się na tym forum.";
+$l['coppa_registration'] = "Formularz COPPA";
+$l['coppa_form_instructions'] = "Wydrukuj ten formularz, wypełnij go i wyślij faksem na podany poniżej numer lub pocztą pod poniższy adres.";
+$l['fax_number'] = "Fax:";
+$l['mailing_address'] = "Adres korespondencyjny:";
+$l['account_information'] = "Informacje o koncie";
+$l['parent_details'] = "Dane rodzica / opiekuna";
+$l['full_name'] = "Pełne nazwisko:";
+$l['relation'] = "Pokrewieństwo:";
+$l['phone_no'] = "Nr telefonu:";
+$l['coppa_parent_agreement'] = "Potwierdzam prawdziwość podanych przeze mnie informacji. Rozumiem, że będą one mogły być zmienione po podaniu przeze mnie poprawnego hasła, a także że istnieje możliwość usunięcia mojego konta na żądanie.";
+
+$l['coppa_agreement_1'] = "Użytkownicy poniżej 13 roku życia muszą otrzymać zezwolenie rodzica lub prawnego opiekuna na rejestrację w {1}.";
+$l['coppa_agreement_2'] = "Rodzic lub prawny opiekun będzie musiał pobrać, wypełnić i wysłać nam kopię formularza COPPA przed dokonaniem rejestracji.";
+$l['coppa_agreement_3'] = "Jeżeli chcesz, możesz teraz rozpocząć proces rejestracji, ale konto będzie dostępne dopiero po spełnieniu wyżej wymienionych warunków.";
+
+$l['error_invalid_birthday'] = 'Podana data urodzin jest niepoprawna. Wybierz poprawnÄ… datÄ™.';
+$l['error_awaitingcoppa'] = "Nie możesz zalogować się na to konto, bo nie otrzymaliśmy jeszcze wypełnionego formularza COPPA od Twojego rodzica lub prawnego opiekuna. Twój rodzic lub prawny opiekun musi pobrać, wypełnić i wysłać nam kopię formularza COPPA . Gdy dotrze do nas wypełniony formularz, Twoje konto zostanie aktywowane.";
+
+$l['lang_select'] = "Ustawienia językowe:";
+$l['lang_select_desc'] = "Wybierz jedną z paczek językowych.";
+$l['lang_select_default'] = "Użyj domyślnego";
+
+$l['submit_registration'] = "Zakończ rejestrację!";
+$l['confirm_password'] = "Potwierdź hasło:";
+$l['referrer'] = "PolecajÄ…cy:";
+$l['referrer_desc'] = "Jeśli ktoś polecił Ci forum, wpisz tutaj jego login. Jeśli nie - pozostaw to pole puste.";
+$l['search_user'] = "Szukaj użytkownika";
+$l['resend_activation'] = "Prześlij kod aktywacyjny";
+$l['request_activation'] = "PoproÅ› o kod aktywacyjny";
+$l['ppp'] = "Postów na stronę:";
+$l['ppp_desc'] = "Pozwala Ci na wybranie maksymalnej liczby postów wyświetlanych na jednej stronie.";
+$l['tpp'] = "Wątków na stronę:";
+$l['tpp_desc'] = "Pozwala Ci na wybranie maksymalnej liczby wątków wyświetlanych na jednej stronie.";
+$l['reset_password'] = "Resetuj hasło";
+$l['send_password'] = "Wyślij nowe hasło!";
+$l['image_verification'] = "Potwierdzenie kodem";
+$l['verification_note'] = "Przepisz do poniższego pola ciąg znaków z obrazka. Taki proces jest niezbędny, by zapobiec rejestracjom automatów.";
+$l['verification_subnote'] = "(wielkość znaków nie ma znaczenia)";
+$l['registration_errors'] = "Przy rejestracji wystąpiły następujące błędy:";
+$l['timeonline'] = "Spędzony czas online:";
+$l['timeonline_hidden'] = "(ukryte)";
+$l['registrations_disabled'] = "Rejestracja kont jest aktualnie wyłączona. Zapraszamy później.";
+$l['error_username_length'] = "Login jest nieprawidłowy - musi on zawierać od {1} do {2} znaków.";
+$l['error_stop_forum_spam_spammer'] = 'Twój adres IP lub e-mail znajduje się w bazie znanych spamerów. Jeżeli uważasz, że jest to błąd, skontaktuj się z administratorem.';
+$l['error_stop_forum_spam_fetching'] = 'Nie mogliśmy upewnić sie, że nie jesteś spamerem. Prawdopodobnie jest to spowodowane problemami z połączeniem z bazą danych. Spróbuj ponownie później.';
+
+$l['none_registered'] = "Niezarejestrowany";
+$l['not_specified'] = "Nie określono";
+$l['membdayage'] = "({1} lat)";
+$l['mod_options'] = "Opcje moderatora";
+$l['edit_in_mcp'] = "Edytuj tego użytkownika w panelu moderatora";
+$l['ban_in_mcp'] = "Zbanuj tego użytkownika w panelu moderatora";
+$l['purgespammer'] = "Usuń spamera";
+$l['edit_usernotes'] = "Edytuj notatki o użytkowniku w panelu moderatora";
+$l['no_usernotes'] = "Nie ma notatek o tym użytkowniku";
+$l['view_all_notes'] = "PrzeglÄ…daj wszystkie notatki";
+$l['view_notes_for'] = "Przeglądaj notatki o użytkowniku {1}";
+$l['reputation'] = "Reputacja:";
+$l['reputation_vote'] = "Oceń";
+$l['reputation_details'] = "Szczegóły";
+$l['already_logged_in'] = "Uwaga: jesteś już zalogowany jako {1}.";
+$l['admin_edit_in_acp'] = "Edytuj tego użytkownika w panelu administratora";
+$l['admin_ban_in_acp'] = "Zbanuj tego użytkownika w panelu administratora";
+$l['admin_options'] = "Opcje administratora";
+
+$l['redirect_registered_activation'] = "Dziękujemy za rejestrację na {1}, {2}.Aby zakończyć rejestrację, sprawdź swoją skrzynkę e-mail w celu aktywacji konta. Przed aktywacją konta nie możesz pisać na forum";
+$l['redirect_emailupdated'] = "Adres e-mail został zmieniony. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_accountactivated'] = "Konto zostało aktywowane. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_accountactivated_admin'] = "Adres email został zweryfikowany. Twoje konto musi zostać aktywowane przez administratora. Przed aktywacją konta nie możesz pisać na forum. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_registered'] = "Dziękujemy za rejestrację na {1}, {2}. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_registered_admin_activate'] = "Dziękujemy za rejestrację na {1}, {2}. Twoje konto musi zostać aktywowane przez administratora. Przed aktywacją konta nie możesz pisać na forum.";
+$l['redirect_loggedout'] = "Wylogowano z forum. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_alreadyloggedout'] = "Już wcześniej wylogowano z forum. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_lostpwsent'] = "Na Twój adres został wysłany e-mail z instrukcją dotyczącą resetowania hasła. Teraz nastąpi przeniesienie na stronę główną forum.";
+$l['redirect_activationresent'] = "E-mail aktywacyjny został wysłany.";
+$l['redirect_passwordreset'] = "Hasło zostało zresetowane. Nowe hasło zostało wysłane na Twój adres e-mail.";
+$l['redirect_memberrated'] = "Użytkownik został oceniony.";
+$l['redirect_registered_passwordsent'] = "Wygenerowane hasło zostało wysłane na Twój adres e-mail. Zanim zaczniesz korzystać z forum, musisz sprawdzić skrzynkę e-mail w celu zdobycia hasła.";
+$l['redirect_validated'] = "Twoje konto zostało aktywowane. Teraz nastąpi przeniesienie na forum.";
+
+$l['error_activated_by_admin'] = "Nie możesz przesłać ponownie kodu aktywacyjnego, gdyż administrator musi aktywować Twoje konto.";
+$l['error_alreadyregistered'] = "Prawdopodobnie jesteś już zarejestrowanym użytkownikiem forum. Nie możesz zarejestrować kilku kont, gdyż administrator zablokował taką możliwość.";
+$l['error_alreadyregisteredtime'] = "Nie możesz się zarejestrować, gdyż dokonano już {1} rejestracji z Twojego adresu IP w przeciągu {2} godzin. Spróbuj później.";
+$l['error_badlostpwcode'] = "Wprowadzono nieprawidłowy kod resetowania hasła. Przeczytaj uważnie e-mail lub skontaktuj się z administratorem.";
+$l['error_badactivationcode'] = "Wprowadzono nieprawidłowy kod aktywacyjny. Aby ponownie przesłać e-mail aktywacyjny, kliknij tutaj .";
+$l['error_alreadyactivated'] = "Może to być spowodowane tym, że posiadasz już aktywowane konto lub forum nie wymaga aktywacji.";
+$l['error_alreadyvalidated'] = "Twój adres e-mail został już zweryfikowany.";
+$l['error_nothreadurl'] = "ID wątku nieznane. Użyj przycisku \"Powiadom znajomego\".";
+$l['error_bannedusername'] = "Wybrano zabroniony login. Użyj innego loginu.";
+$l['error_notloggedout'] = "Wystąpił błąd przy wylogowaniu. Może to być spowodowane szkodliwym Javascriptem, który próbuje wylogowywać Cię automatycznie. Jeśli chcesz się wylogować, kliknij na \"Wyloguj\".";
+$l['error_regimageinvalid'] = "Wprowadzony kod z obrazka jest nieprawidłowy. Spróbuj ponownie.";
+$l['error_regimagerequired'] = "Uzupełnij kod weryfikujący aby kontynuować proces logowania. Przepisz kod identyczny jak ten na obrazku.";
+$l['error_spam_deny'] = "Możliwość rejestracji została zablokowana ze względu na podejrzenie, że jesteś spamerem. Jeżeli uważasz, że jest to błędem, skontaktuj się z administratorem.";
+$l['error_spam_deny_time'] = "Możliwość rejestracji została zablokowana ze względu na podejrzenie, że jesteś spamerem. Aby zapobiec automatycznym rejestracjom ustalono minimalny czas potrzebny na wypełnienie formularza, który wynosi {1} sekund(y); ta rejestracja trwała {2} sekund(y). Jeżeli uważasz, że jest to błędem, skontaktuj się z administratorem..";
+
+$l['js_validator_no_username'] = "Musisz podać login";
+$l['js_validator_invalid_email'] = "Musisz podać prawidłowy adres e-mail";
+$l['js_validator_email_match'] = "Podane adresy e-mail nie zgadzajÄ… siÄ™";
+$l['js_validator_no_image_text'] = "Musisz tutaj przepisać tekst z obrazka obok";
+$l['js_validator_no_security_question'] = "Musisz odpowiedzieć na powyższe pytanie";
+$l['js_validator_password_matches'] = "Podane hasła nie zgadzają się";
+$l['js_validator_password_complexity'] = "Sprawdzanie złożoności hasła";
+$l['js_validator_password_length'] = "Hasło musi zawierać przynajmniej {1} znaków";
+$l['js_validator_not_empty'] = "Nie możesz pozostawić tego pola pustego";
+$l['js_validator_checking_username'] = "Sprawdzam czy login jest dostępny...";
+$l['js_validator_username_length'] = "Login musi zawierać od {1} do {2} znaków";
+$l['js_validator_checking_referrer'] = "Sprawdzam czy istnieje taki użytkownik...";
+$l['js_validator_captcha_valid'] = "Sprawdzam czy poprawnie przepisano kod...";
+
+$l['security_question'] = "Pytanie zabezpieczajÄ…ce";
+$l['question_note'] = "Udziel odpowiedzi na pytanie. Proces ten ma na celu zapobieżenie automatycznym rejestracjom.";
+$l['error_question_wrong'] = "Podana odpowiedź na pytanie jest niepoprawna. Spróbuj ponownie.";
+
+$l['subscription_method'] = "Domyślny sposób subskrypcji wątków:";
+$l['no_auto_subscribe'] = "Nie subskrybuj";
+$l['no_subscribe'] = "Subskrybuj bez powiadamiania";
+$l['instant_email_subscribe'] = "Subskrybuj i powiadamiaj e-mailem";
+$l['instant_pm_subscribe'] = "Subskrybuj i powiadamiaj poprzez prywatną wiadomość";
+
+$l['remove_from_buddy_list'] = "Usuń z listy znajomych";
+$l['add_to_buddy_list'] = "Dodaj do listy znajomych";
+$l['remove_from_ignore_list'] = "Usuń z listy ignorowanych";
+$l['add_to_ignore_list'] = "Dodaj do listy ignorowanych";
+$l['report_user'] = "Zgłoś użytkownika";
+
+$l['newregistration_subject'] = "Nowa rejestracja na {1}";
+$l['newregistration_message'] = "{1},
+
+Nowy użytkownik zarejestrował się na {2} i oczekuje na aktywację swojego konta przez administratora.
+
+Nazwa użytkownika: {3}
+
+Dziękujemy,
+Ekipa {2}";
diff --git a/Upload/inc/languages/polish/memberlist.lang.php b/Upload/inc/languages/polish/memberlist.lang.php
new file mode 100644
index 0000000..daccd8b
--- /dev/null
+++ b/Upload/inc/languages/polish/memberlist.lang.php
@@ -0,0 +1,80 @@
+Nie znaleziono żadnych użytkowników spełniających kryteria wyszukiwania.
Podaj inne kryteria i spróbuj jeszcze raz.
";
+
+$l['a'] = 'A';
+$l['b'] = 'B';
+$l['c'] = 'C';
+$l['d'] = 'D';
+$l['e'] = 'E';
+$l['f'] = 'F';
+$l['g'] = 'G';
+$l['h'] = 'H';
+$l['i'] = 'I';
+$l['j'] = 'J';
+$l['k'] = 'K';
+$l['l'] = 'L';
+$l['m'] = 'M';
+$l['n'] = 'N';
+$l['o'] = 'O';
+$l['p'] = 'P';
+$l['q'] = 'Q';
+$l['r'] = 'R';
+$l['s'] = 'S';
+$l['t'] = 'T';
+$l['u'] = 'U';
+$l['v'] = 'V';
+$l['w'] = 'W';
+$l['x'] = 'X';
+$l['y'] = 'Y';
+$l['z'] = 'Z';
diff --git a/Upload/inc/languages/polish/messages.lang.php b/Upload/inc/languages/polish/messages.lang.php
new file mode 100644
index 0000000..2f3f984
--- /dev/null
+++ b/Upload/inc/languages/polish/messages.lang.php
@@ -0,0 +1,473 @@
+ Możesz też wrócić do działu .";
+$l['redirect_emailsent'] = "E-mail został wysłany.";
+$l['redirect_loggedin'] = "Zalogowano na forum. Teraz nastÄ…pi przeniesienie do poprzedniej lokalizacji.";
+
+$l['error_invalidpworusername'] = "Wprowadzono nieprawidłowy login i/lub hasło. Jeżeli nie pamiętasz swojego hasła, kliknij tutaj , by wygenerować nowe.";
+$l['error_invalidpworusername1'] = "Wprowadzono nieprawidłowy adres e-mail i/lub hasło. Jeżeli nie pamiętasz swojego hasła, kliknij tutaj , aby wygenerować nowe.";
+$l['error_invalidpworusername2'] = "Wprowadzono nieprawidłowy login lub adres e-mail i/lub hasło. Jeżeli nie pamiętasz swojego hasła, kliknij tutaj , aby wygenerować nowe.";
+$l['error_incompletefields'] = "Nie wypełniono któregoś z wymaganych pól. Wróć i wypełnij wszystkie wymagane pola.";
+$l['error_alreadyuploaded'] = "Plik o takiej nazwie został już raz wysłany. Zmień nazwę pliku i spróbuj ponownie. Alternatywnie możesz kliknąć na przycisk \"Aktualizuj załącznik\".";
+$l['error_alreadyuploaded_perm'] = "Ten post zawiera już plik o takiej samej nazwie. Usuń poprzedni plik lub zmień nazwę pliku, który próbujesz wysłać, i spróbuj ponownie.";
+$l['error_nomessage'] = "Nie podano treści wiadomości. Wróć i wpisz wiadomość.";
+$l['error_invalidemail'] = "Musisz wprowadzić prawidłowy adres e-mail.";
+$l['error_nomember'] = "Podany login jest nieprawidłowy albo nie istnieje.";
+$l['error_maxposts'] = "Przekroczono dzienny limit postów. Zapraszamy jutro. Maksymalna liczba postów dziennie to {1}";
+$l['error_nohostname'] = "Nie można znaleźć nazwy hosta dla wprowadzonego IP.";
+$l['error_invalidthread'] = "WÄ…tek nie istnieje.";
+$l['error_invalidpost'] = "Post nie istnieje.";
+$l['error_invalidannouncement'] = "Ogłoszenie nie istnieje.";
+$l['error_invalidattachment'] = "Załącznik nie istnieje.";
+$l['error_invalidforum'] = "Nieprawidłowy dział";
+$l['error_closedinvalidforum'] = "Nie możesz napisać wątku w zamkniętym dziale ani w zamkniętej kategorii.";
+$l['error_attachtype'] = "Typ pliku, który załączono, nie jest obsługiwany. Usuń załącznik i spróbuj ponownie.";
+$l['error_attachsize'] = "Plik załącznika jest za duży. Maksymalny rozmiar pliku to {1} kilobajtów.";
+$l['error_uploadempty'] = "Wybrany plik jest pusty.";
+$l['error_uploadsize'] = "Plik, który próbujesz załączyć jest za duży.";
+$l['error_uploadfailed'] = "Plik nie został załadowany. Wybierz prawidłowy plik i spróbuj ponownie. ";
+$l['error_uploadfailed_detail'] = "Szczegóły błędu: ";
+$l['error_uploadfailed_php1'] = "Błąd PHP: Wysyłany plik przekracza rozmiar upload_max_filesize podany w php.ini. Skontaktuj się z administratorem forum.";
+$l['error_uploadfailed_php2'] = "Plik przekracza maksymalny rozmiar.";
+$l['error_uploadfailed_php3'] = "Plik częściowo wysłany.";
+$l['error_uploadfailed_php4'] = "Nie wysłano pliku.";
+$l['error_uploadfailed_php6'] = "BÅ‚Ä…d PHP: Folder docelowy nie istnieje. Skontaktuj siÄ™ z administratorem forum.";
+$l['error_uploadfailed_php7'] = "BÅ‚Ä…d PHP: BÅ‚Ä…d zapisu. Skontaktuj siÄ™ z administratorem forum.";
+$l['error_uploadfailed_phpx'] = "PHP zwróciło numer błędu: {1}. Skontaktuj się z administratorem forum, podaj szczegóły i numer błędu.";
+$l['error_uploadfailed_nothingtomove'] = "Nieprawidłowy plik. Wysyłany plik nie może zostać przeniesiony do katalogu docelowego.";
+$l['error_uploadfailed_movefailed'] = "Wystąpił problem przy przenoszeniu pliku.";
+$l['error_uploadfailed_lost'] = "Załącznik nie mógł zostać znaleziony na serwerze.";
+$l['error_emailmismatch'] = "Wprowadzone adresy e-mail nie są identyczne. Wróć i spróbuj ponownie";
+$l['error_nopassword'] = "Musisz wprowadzić hasło.";
+$l['error_usernametaken'] = "Użytkownik o takim loginie już istnieje. Jeśli posiadasz już konto na tym forum, zaloguj się .";
+$l['error_nousername'] = "Musisz wprowadzić login.";
+$l['error_invalidusername'] = "Użytkownik z takim loginem nie istnieje.";
+$l['error_invalidpassword'] = "Wprowadzone hasło jest niepoprawne. Jeśli nie pamiętasz hasła, kliknij tutaj , albo wróć i spróbuj ponownie.";
+$l['error_postflooding'] = "Nie możesz teraz napisać posta, ponieważ od publikacji przez Ciebie ostatniego posta musi minąć {1} sekund.";
+$l['error_nopermission_guest_1'] = "Nie nastąpiło zalogowanie, lub nie masz dostępu do tej części forum. Możliwe powody takiej sytuacji:";
+$l['error_nopermission_guest_2'] = "Nie zalogowano lub nie zarejestrowano siÄ™ na forum. Zaloguj siÄ™ lub zarejestruj.";
+$l['error_nopermission_guest_3'] = "Możesz nie mieć uprawnień do oglądania tej strony.";
+$l['error_nopermission_guest_4'] = "Twoje konto może być nieaktywne albo zablokowane.";
+$l['error_nopermission_guest_5'] = "Odwiedzono tę stronę wpisując jej adres bezpośrednio w pasek adresu przeglądarki zamiast użyć odpowiedniego formularza lub odnośnika.";
+$l['login'] = "Zaloguj siÄ™";
+$l['need_reg'] = "Rejestracja";
+$l['forgot_password'] = "Nie pamiętam hasła";
+$l['error_nopermission_user_1'] = "Nie masz uprawnień, aby przeglądać tę stronę. Możliwe powody takiej sytuacji:";
+$l['error_nopermission_user_ajax'] = "Nie masz uprawnień do przeglądania tej strony.";
+$l['error_nopermission_user_2'] = "Twoje konto może być zawieszone lub zablokowane.";
+$l['error_nopermission_user_3'] = "Możesz nie mieć uprawnień do oglądania tej strony.";
+$l['error_nopermission_user_4'] = "Twoje konto może być nieaktywne lub moderowane.";
+$l['error_nopermission_user_5'] = "Odwiedzono tę stronę wpisując jej adres bezpośrednio w pasek adresu przeglądarki zamiast użyć odpowiedniego formularza lub odnośnika.";
+$l['error_nopermission_user_resendactivation'] = "Prześlij ponownie kod aktywacyjny";
+$l['error_nopermission_user_username'] = "Zalogowano jako: '{1}'";
+$l['logged_in_user'] = "Zalogowano jako";
+$l['error_too_many_images'] = "Za dużo obrazków";
+$l['error_too_many_images2'] = "Twoja wiadomość zawiera za dużo obrazków. Usuń niektóre obrazki i spróbuj ponownie.";
+$l['error_too_many_images3'] = "Uwaga: Maksymalna liczba obrazków w poście to";
+$l['error_attach_file'] = "Błąd podczas załączania pliku";
+$l['please_correct_errors'] = "Popraw następujące błędy:";
+$l['error_reachedattachquota'] = "Nie możesz załączyć plików - przekroczono limit {1}";
+$l['error_maxattachpost'] = "Nie można dodać kolejnego załącznika, ponieważ przekroczono liczbę dozwolonych załączników, która wynosi {1}";
+$l['error_invaliduser'] = "Określony użytkownik nie istnieje.";
+$l['error_invalidaction'] = "Nieprawidłowe polecenie";
+$l['error_messagelength'] = "Twoja wiadomość jest zbyt długa. Skróć wiadomość i spróbuj ponownie.";
+$l['error_message_too_short'] = "Twoja wiadomość jest za krótka.";
+$l['failed_login_wait'] = "Przekroczono limit błędnych logowań. Musisz odczekać {1} godz. {2} min. {3} sek. przed kolejną próbą logowania.";
+$l['failed_login_again'] = " Pozostało Ci jeszcze {1} prób logowania.";
+$l['error_max_emails_day'] = "Nie możesz użyć opcji \"Wyślij wątek do znajomego\" i \"E-mail do użytkownika\" - przekroczono limit {1} wiadomości na dobę.";
+$l['attachments_disabled'] = "Nie możesz dodać załącznika, ponieważ taka możliwość została wyłączona przez administratora.";
+
+$l['emailsubject_lostpw'] = "Zmiana hasła na forum {1}";
+$l['emailsubject_passwordreset'] = "Nowe hasło na forum {1}";
+$l['emailsubject_subscription'] = "Nowa odpowiedź na forum {1}";
+$l['emailsubject_randompassword'] = "Twoje hasło do {1}";
+$l['emailsubject_activateaccount'] = "Aktywacja konta na forum {1}";
+$l['emailsubject_forumsubscription'] = "Nowy wÄ…tek na forum {1}";
+$l['emailsubject_reportpost'] = "Zgłoszony post na forum {1}";
+$l['emailsubject_reachedpmquota'] = "Przekroczono limit ({1}) PW";
+$l['emailsubject_changeemail'] = "Zmiana e-maila na forum {1}";
+$l['emailsubject_newpm'] = "Nowa prywatna wiadomość na forum {1} - {2}";
+$l['emailsubject_newjoinrequest'] = "Nowa prośba o przyjęcie do grupy na forum {1}";
+$l['emailsubject_sendtofriend'] = "InteresujÄ…cy wÄ…tek na forum {1}";
+$l['emailsubject_changepassword'] = "Zmiana hasła na forum {1}";
+$l['emailbit_viewthread'] = "... (odwiedź ten wątek, by przeczytać pełną treść...)";
+
+$l['email_lostpw'] = "{1},
+
+Aby zakończyć proces resetowania hasła w {2}, odwiedź ten adres:
+
+{3}/member.php?action=resetpassword&uid={4}&code={5}
+
+W razie problemów z powyższym linkiem, odwiedź
+
+{3}/member.php?action=resetpassword
+
+i podaj poniższe dane, potrzebne do zresetowania hasła:
+Użytkownik: {1}
+Kod aktywacji: {5}
+
+Dziękujemy,
+Ekipa {2}";
+$l['email_lostpw1'] = "{1},
+
+Aby zakończyć proces resetowania hasła w {2}. odwiedź ten adres:
+
+{3}/member.php?action=resetpassword&uid={4}&code={5}
+
+W razie problemów z powyższym linkiem, odwiedź
+
+{3}/member.php?action=resetpassword
+
+i podaj poniższe dane, potrzebne do zresetowania hasła:
+Adres e-mail, na który została wysłana ta wiadomość
+Kod aktywacji: {5}
+
+Dziękujemy,
+Ekipa {2}";
+$l['email_lostpw2'] = "{1},
+
+Aby zakończyć proces resetowania hasła w {2}, odwiedź ten adres:
+
+{3}/member.php?action=resetpassword&uid={4}&code={5}
+
+W razie problemów z powyższym linkiem, odwiedź
+
+{3}/member.php?action=resetpassword
+
+i podaj poniższe dane, potrzebne do zresetowania hasła:
+Login: {1} (lub adres e-mail, na który wysłana została ta wiadomość)
+Kod aktywacji: {5}
+
+Dziękujemy,
+Ekipa {2}";
+
+
+$l['email_reportpost'] = "{1} z {2} zgłosił post:
+
+{3}
+{4}/{5}
+
+Powód zgłoszenia:
+{7}
+
+Ta wiadomość została wysłana do wszystkich moderatorów tego działu (jeśli dział nie ma moderatorów - poinformowani zostali globalni moderatorzy i administratorzy).
+
+Sprawdź ten post.";
+
+$l['email_passwordreset'] = "{1},
+
+Hasło na forum {2} zostało zresetowane.
+
+Nowe hasło: {3}
+
+Podaj to hasło podczas logowania na forum. Po zalogowaniu niezwłocznie zmień hasło w panelu użytkownika.
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_randompassword'] = "{1},
+
+Dziękujemy za rejestrację na forum {2}. Poniżej podane są Twój login i losowo wygenerowane hasło, które są Ci potrzebne do logowania na forum {2}.
+
+Login: {3}
+Hasło: {4}
+
+Zalecana jest zmiana hasła po zalogowaniu. Aby to zrobić przejdź do panelu użytkownika i kliknij Zmień hasło.
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_randompassword1'] = "{1},
+
+Dziękujemy za rejestrację na forum {2}. Poniżej podane są Twój login i losowo wygenerowane hasło, które są Ci potrzebne do logowania na forum {2}.
+
+Login: adres email, na który została wysłana ta wiadomość
+Hasło: {4}
+
+Zalecana jest zmiana hasła po zalogowaniu. Aby to zrobić przejdź do panelu użytkownika i kliknij Zmień hasło.
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_randompassword2'] = "{1},
+
+Dziękujemy za rejestrację na forum {2}. Poniżej podane są Twój login i losowo wygenerowane hasło, które są Ci potrzebne do logowania na forum {2}.
+
+Login: {3} (lub adres e-mail, na który wysłana została ta wiadomość)
+Hasło: {4}
+
+Zalecana jest zmiana hasła po zalogowaniu. Aby to zrobić przejdź do panelu użytkownika i kliknij Zmień hasło.
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_sendtofriend'] = "Witaj,
+
+{1} z {2} uważa, że zainteresuje Cię strona WWW:
+
+{3}
+
+{1} dołączył wiadomość:
+------------------------------------------
+{4}
+------------------------------------------
+
+Pozdrawiamy,
+Ekipa {2}
+";
+
+$l['email_forumsubscription'] = "{1},
+
+{2} napisał nowy wątek w dziale {3}. Jest to subskrybowany przez Ciebie dział w {4}.
+
+Temat wÄ…tku: {5}
+
+Streszczenie wÄ…tku:
+--
+{6}
+--
+
+Aby przeczytać ten wątek, przejdź pod adres:
+{7}/{8}
+
+Kolejne powiadomienia otrzymasz dopiero po odwiedzeniu forum.
+
+Pozdrawiamy,
+Ekipa {4}
+
+------------------------------------------
+Rezygnacja ze subskrypcji:
+
+Jeśli nie chcesz otrzymywać informacji o nowych wątkach, przejdź pod adres:
+{7}/usercp2.php?action=removesubscription&type=forum&fid={9}&my_post_key={10}
+
+------------------------------------------";
+
+$l['email_activateaccount'] = "{1},
+
+Aby zakończyć proces rejestracji na forum {2}, musisz odwiedzić poniższy adres:
+
+{3}/member.php?action=activate&uid={4}&code={5}
+
+Jeśli powyższy link nie działa, przejdź pod podany poniżej adres:
+
+{3}/member.php?action=activate
+
+i podaj poniższe dane potrzebne do aktywacji:
+Użytkownik: {1}
+Kod aktywacji: {5}
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_activateaccount1'] = "{1},
+
+Aby zakończyć proces rejestracji na forum {2}, musisz odwiedzić poniższy adres:
+
+{3}/member.php?action=activate&uid={4}&code={5}
+
+Jeśli powyższy link nie działa, przejdź pod podany poniżej adres:
+
+{3}/member.php?action=activate
+
+i podaj poniższe dane potrzebne do aktywacji:
+Adres e-mail, na który wysłana została ta wiadomość
+Kod aktywacji: {5}
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_activateaccount2'] = "{1},
+
+Aby zakończyć proces rejestracji na forum {2}, musisz odwiedzić poniższy adres:
+
+{3}/member.php?action=activate&uid={4}&code={5}
+
+Jeśli powyższy link nie działa, przejdź pod podany poniżej adres:
+
+{3}/member.php?action=activate
+
+i podaj poniższe dane potrzebne do aktywacji:
+Nazwa użytkownika: {1} (lub adres e-mail, na który wysłana została ta wiadomość)
+Kod aktywacji: {5}
+
+Pozdrawiamy,
+Ekipa {2}";
+
+$l['email_subscription'] = "{1},
+
+{2} odpowiedział w wątku, który subskrybujesz ({3}). Temat wątku: \"{4}\".
+
+Streszczenie odpowiedzi:
+------------------------------------------
+{5}
+------------------------------------------
+
+Aby przeczytać ten wątek, przejdź pod adres:
+{6}/{7}
+
+Kolejne powiadomienia otrzymasz dopiero po odwiedzeniu forum.
+
+Dziękujemy,
+Ekipa {3}
+
+------------------------------------------
+Rezygnacja ze subskrypcji:
+
+Jeśli nie chcesz otrzymywać informacji o nowych odpowiedziach w tym wątku, przejdź pod adres:
+{6}/usercp2.php?action=removesubscription&tid={8}&key={9}&my_post_key={10}
+
+------------------------------------------";
+$l['email_reachedpmquota'] = "{1},
+
+To jest automatycznie wysłana wiadomość z forum {2}. Informujemy Cię, że Twoja skrzynka prywatnych wiadomości jest pełna.
+
+Ktoś próbował wysłać do Ciebie prywatną wiadomość. Niestety, z powodu przekroczenia przez Ciebie limitu miejsca, nie było to możliwe.
+
+Odwiedź forum i usuń starsze prywatne wiadomości, pamiętając również o opróżnieniu \"Usuniętych\".
+
+Pozdrawiamy,
+Ekipa {2}
+{3}";
+$l['email_changeemail'] = "{1},
+
+Poproszono o zmianę adresu e-mail na stronie {2} (szczegóły poniżej).
+
+Stary e-mail: {3}
+Nowy e-mail: {4}
+
+Jeśli te zmiany są prawidłowe, dokończ proces aktywacji przechodząc na {2} pod adres:
+
+{5}/member.php?action=activate&uid={8}&code={6}
+
+Jeśli powyższy link nie działa, przejdź pod podany poniżej adres:
+
+{5}/member.php?action=activate
+
+i podaj poniższe dane aktywacji:
+Użytkownik: {7}
+Kod aktywacji: {6}
+
+Jeśli nie aktywujesz nowego adresu e-mail, w Twoim profilu nadal będzie widoczny stary adres e-mail.
+
+Pozdrawiamy,
+Ekipa {2}
+{5}";
+
+$l['email_changeemail_noactivation'] = "{1},
+
+Otrzymujesz tę wiadomość ponieważ na twoim profilu na forum {2} zmieniono adres email (szczegóły poniżej).
+
+Poprzedni adres email: {3}
+Nowy adres email: {4}
+
+Zmiana została wprowadzona natychmiast. Jeśli nie została ona dokonana przez ciebie, jak najszybciej skontaktuj się z administratorem.
+
+Pozdrawiamy,
+Ekipa {2}
+{5}";
+
+$l['email_changepassword'] = "{1},
+
+Otrzymujesz tę wiadomość ponieważ ty lub ktoś inny zmienił hasło na twoim koncie.
+
+Login: {1}
+Adres e-mail: {2}
+
+Jeśli zmiana hasła nie została dokonana przez ciebie, jak najszybciej skontaktuj się z administratorem.
+
+Pozdrawiamy,
+Ekipa {3}
+{4}";
+
+$l['email_newpm'] = "{1},
+
+Otrzymano prywatną wiadomość na forum {3} od {2}. Aby przeczytać tę wiadomość, przejdź pod adres:
+
+------------------------------------------
+{5}
+------------------------------------------
+
+Aby wyświetlić lub odpowiedzieć na tę wiadomość przechodząc pod adres:
+
+{4}/private.php
+
+Kolejne powiadomienia otrzymasz dopiero po odwiedzeniu {3}.
+
+Możesz wyłączyć powiadomienia o prywatnych wiadomościach pod adresem:
+
+{4}/usercp.php?action=options
+
+Pozdrawiamy,
+Ekipa {3}
+{4}";
+
+$l['email_emailuser'] = "{1},
+
+{2} z {3} wysłał do Ciebie następującą wiadomość:
+------------------------------------------
+{5}
+------------------------------------------
+
+Pozdrawiamy,
+{3}
+{4}
+
+------------------------------------------
+Nie chcesz otrzymywać e-maili od innych użytkowników?
+
+Jeżeli nie chcesz otrzymywać e-maili od innych użytkowników, odwiedź swój panel użytkownika i włącz opcję \"Ukryj mój adres e-mail.\":
+{4}/usercp.php?action=options
+
+------------------------------------------";
+
+$l['email_groupleader_joinrequest'] = "{1},
+
+{2} poprosił o przyjęcie do grupy {3} na forum {4} (szczegóły poniżej).
+
+Powód: {5}
+
+Aby zaakceptować lub odrzucić prośbę przejdź pod adres:
+
+{6}/managegroup.php?gid={7}
+
+Pozdrawiamy,
+Ekipa {4}";
+
+$l['email_contact_subject'] = "Formularz kontaktowy: {1}";
+$l['email_contact'] = "E-mail: {1}
+Profil na forum: {2}
+Adres IP: {3}
+Treść wiadomości:
+{4}";
+
+$l['pmsubject_subscription'] = "Nowa odpowiedź w wątku {1}";
+$l['pm_subscription'] = "{1},
+
+{2} odpowiedział w wątku, który subskrybujesz. Temat wątku: \"{3}\".
+
+Streszczenie odpowiedzi:
+------------------------------------------
+{4}
+------------------------------------------
+
+Aby przeczytać ten wątek, przejdź pod adres:
+[url]{5}/{6}[/url]
+
+Kolejne powiadomienia otrzymasz dopiero po odwiedzeniu forum.
+
+
+------------------------------------------
+Rezygnacja ze subskrypcji:
+
+Jeśli nie chcesz otrzymywać informacji o nowych odpowiedziach w tym wątku, przejdź pod adres:
+[url]{5}/usercp2.php?action=removesubscription&tid={7}&key={8}&my_post_key={9}[/url]
+
+------------------------------------------";
diff --git a/Upload/inc/languages/polish/misc.lang.php b/Upload/inc/languages/polish/misc.lang.php
new file mode 100644
index 0000000..fc4e5f0
--- /dev/null
+++ b/Upload/inc/languages/polish/misc.lang.php
@@ -0,0 +1,96 @@
+Nie ma znajomych w trybie online";
+$l['offline'] = "Offline";
+$l['offline_none'] = "Nie ma znajomych w trybie offline ";
+$l['delete_buddy'] = "X";
+$l['pm_buddy'] = "Wyślij prywatną wiadomość";
+$l['last_active'] = "Ostatnio aktywny: {1}";
+$l['close'] = "Zamknij";
+$l['no_buddies'] = "Lista znajomych jest pusta. Możesz ją edytować w panelu użytkownika. Dodawanie znajomych jest możliwe także w profilach użytkowników. ";
+
+$l['help_docs'] = "Dokumentacja";
+
+$l['search_help_documents'] = "Szukaj";
+$l['search_by_name'] = "Szukaj w nazwie";
+$l['search_by_document'] = "Szukaj w treści";
+$l['enter_keywords'] = "SÅ‚owa kluczowe";
+$l['search'] = "Przeszukaj dokumentacjÄ™";
+$l['redirect_searchresults'] = "Teraz nastąpi przeniesienie do wyników wyszukiwania.";
+$l['search_results'] = "Wyniki wyszukiwania";
+$l['help_doc_results'] = "Wyniki wyszukiwania w dokumentacji";
+$l['document'] = "Dokument";
+$l['error_nosearchresults'] = "Nic nie znaleziono. Zmień kryteria wyszukiwania i spróbuj ponownie.";
+$l['no_help_results'] = "Nic nie znaleziono.";
+$l['error_helpsearchdisabled'] = "Możliwość wyszukiwania w dokumentacji została zablokowana przez administratora.";
+
+$l['smilies_listing'] = "Emotikony";
+$l['name'] = "ImiÄ™";
+$l['abbreviation'] = "Skrót";
+$l['click_to_add'] = "Kliknij w emotikona, by umieścić go w wiadomości.";
+$l['close_window'] = "zamknij okno";
+
+$l['who_posted'] = "Kto napisał?";
+$l['total_posts'] = "Razem postów:";
+$l['user'] = "Użytkownik";
+$l['num_posts'] = "Liczba postów";
+
+$l['forum_rules'] = "{1} - Regulamin";
+
+$l['error_invalid_limit'] ="Podany limit jest nieprawidłowy. Wpisz poprawny limit.";
+
+$l['syndication'] = "RSS";
+$l['syndication_generated_url'] = "Twój wygenerowany URL:";
+$l['syndication_note'] = "Poniżej możesz wybrać działy, dla których chcesz wygenerować swój link RSS. Do odczytania nagłówków RSS będzie Ci potrzebny specjalny program, np. SharpReader . Dowiedz się więcej o RSS ";
+$l['syndication_forum'] = "Działy do subskrybowania (RSS):";
+$l['syndication_forum_desc'] = "Wybierz działy, które chcesz subskrybować przez RSS. By zaznaczyć kilka działów naraz, przytrzymaj klawisz CTRL i kliknij je.";
+$l['syndication_version'] = "Wersja RSS:";
+$l['syndication_version_desc'] = "Wybierz preferowanÄ… wersjÄ™ RSS.";
+$l['syndication_version_atom1'] = "Atom 1.0";
+$l['syndication_version_rss2'] = "RSS 2.00 (domyślnie)";
+$l['syndication_generate'] = "Generuj link do RSS";
+$l['syndication_limit'] = "Limit:";
+$l['syndication_limit_desc'] = "Liczba wątków do jednoczesnej subskrypcji (zalecana: poniżej 50).";
+$l['syndication_threads_time'] = "wątków naraz";
+$l['syndicate_all_forums'] = "Wszystkie działy";
+
+$l['redirect_markforumread'] = "Wybrany dział został oznaczony jako przeczytany.";
+$l['redirect_markforumsread'] = "Wybrane działy zostały oznaczone jako przeczytane.";
+$l['redirect_forumpasscleared'] = "Przechowywane hasła zostały wyczyszczone.";
+$l['redirect_cookiescleared'] = "Wszystkie ciasteczka zostały wyczyszczone.";
+
+$l['error_invalidimtype'] = "Ten użytkownik nie określił w profilu swoich danych dla tego komunikatora.";
+$l['error_invalidhelpdoc'] = "Wybrany dokument pomocy nie istnieje.";
+
+$l['dst_settings_updated'] = "Ustawienia dotyczące czasu zimowego zostały automatycznie zaktualizowane. Teraz nastąpi przeniesienie na stronę główną forum.";
diff --git a/Upload/inc/languages/polish/modcp.lang.php b/Upload/inc/languages/polish/modcp.lang.php
new file mode 100644
index 0000000..787d46b
--- /dev/null
+++ b/Upload/inc/languages/polish/modcp.lang.php
@@ -0,0 +1,330 @@
+Post napisany przez {2}";
+$l['report_info_post_thread'] = "W dziale {2} ";
+$l['report_info_profile'] = "Profil użytkownika {1}";
+$l['report_info_reputation'] = "Punkt reputacji od {2}";
+$l['report_info_rep_profile'] = "Dla użytkownika {1} ";
+$l['report_info_lastreporter'] = "{1} zgłoszony przez {2}";
+
+$l['moderator_notes'] = "Notatki moderatorów";
+$l['notes_public_all'] = "Te notatki widzÄ… wszyscy moderatorzy.";
+$l['save_notes'] = "Zapisz";
+$l['bans_ending_soon'] = "Bany, które zostaną wkrótce zniesione";
+$l['latest_5_modactions'] = "5 ostatnich akcji moderatorów";
+$l['awaiting_moderation'] = "OczekujÄ…ce na moderacjÄ™";
+$l['type'] = "Typ";
+$l['number_awaiting'] = "Liczba oczekujÄ…cych";
+$l['latest'] = "Ostatni";
+$l['ipsearch'] = "Wyszukiwanie IP";
+$l['ipsearch_results'] = "Wyniki wyszukiwania IP '{1}'";
+$l['ipaddress_search'] = "Szukaj adresu IP";
+$l['ipaddress_misc_info'] = "Inne informacje dla adresu '{1}'";
+$l['ipaddress_host_name'] = "Nazwa hosta:";
+$l['ipaddress_location'] = "Lokalizacja GeoIP:";
+$l['search_users'] = "Znajdź użytkowników";
+$l['search_posts'] = "Znajdź posty";
+$l['ip_address'] = "Adres IP:";
+$l['result'] = "Wyniki";
+$l['ipresult_regip'] = "IP rejestracji:";
+$l['ipresult_lastip'] = "Ostatnio używał tego IP:";
+$l['ipresult_post'] = "Post:";
+$l['subject'] = "Temat";
+$l['username'] = "Użytkownik";
+$l['ipaddress'] = "IP";
+$l['options'] = "Opcje:";
+$l['find'] = "Znajdź";
+$l['modlogs'] = "Logi moderatorów";
+$l['action'] = "Akcja";
+$l['all_moderators'] = "Wszyscy moderatorzy";
+$l['ip'] = "Adres IP";
+$l['info_on_ip'] = "Informacje dla tego adresu IP";
+$l['information'] = "Informacja";
+$l['filter_modlogs'] = "Filtruj logi moderatorów";
+$l['forum'] = "Dział";
+$l['post'] = "Post";
+$l['from_moderator'] = "Moderator:";
+$l['na_deleted'] = "Usunięto";
+$l['sort_by'] = "Sortuj wg:";
+$l['forum_name'] = "Nazwa działu";
+$l['thread_subject'] = "Temat wÄ…tku";
+$l['in'] = "w";
+$l['order'] = "kolejności";
+$l['asc'] = "rosnÄ…cej";
+$l['desc'] = "malejÄ…cej";
+$l['per_page'] = "Wyników na stronie:";
+$l['filter_logs'] = "Pokaż logi";
+$l['error_no_log_results'] = "Nie ma rezultatów dla podanych kryteriów wyszukiwania.";
+$l['find_users'] = "Szukaj użytkowników";
+$l['users'] = "Użytkownicy";
+$l['regdate'] = "Data rejestracji";
+$l['lastvisit'] = "Ostatnia wizyta";
+$l['postnum'] = "Liczba postów";
+$l['username_contains'] = "Których login zawiera";
+$l['no_user_results'] = "Nie ma rezultatów dla podanych kryteriów wyszukiwania.";
+$l['edit_profile'] = "Edycja profilu {1}";
+$l['birthday'] = "Data urodzenia:";
+$l['title'] = "Tytuł użytkownika:";
+$l['profile_required'] = "Wymagane pola";
+$l['remove_avatar'] = "Usunąć awatar?";
+$l['profile_optional'] = "Dodatkowe pola";
+$l['website_url'] = "Strona domowa:";
+$l['birthdate'] = "Urodziny:";
+$l['icq_number'] = "Numer ICQ:";
+$l['aim_screenname'] = "Nazwa użytkownika AIM:";
+$l['yahoo_id'] = "Identyfikator Yahoo:";
+$l['skype_id'] = "Identyfikator Skype:";
+$l['google_id'] = "Identyfikator Google Talk:";
+$l['away_notice'] = "Ta opcja pozwala na ustawienie statusu \"Nieobecny\".";
+$l['additional_information'] = "Dodatkowe informacje";
+$l['update_profile'] = "Aktualizuj profil";
+$l['custom_usertitle'] = "Tytuł użytkownika";
+$l['new_custom_usertitle'] = "Nowy tytuł użytkownika (zostaw puste, aby użyć już istniejącego):";
+$l['custom_usertitle_note'] = "Możesz przypisać sobie dowolny tytuł użytkownika. Zastąpi on tytuł właściwy dla grupy.";
+$l['default_usertitle'] = "Domyślny tytuł użytkownika:";
+$l['current_custom_usertitle'] = "Aktualny tytuł użytkownika:";
+$l['revert_usertitle'] = "Przywróć tytuł domyślny dla grupy";
+$l['additional_contact_details'] = "Dodatkowe informacje kontaktowe";
+$l['current_username'] = "Login:";
+$l['away_information'] = "Dostępność";
+$l['away_status'] = "Status:";
+$l['away_status_desc'] = "Pozwala pozostawić wiadomość jeśli nie będzie cię na forum przez jakiś czas.";
+$l['im_away'] = "Jestem niedostępny";
+$l['im_here'] = "Jestem dostępny";
+$l['away_reason'] = "Powód nieobecności:";
+$l['away_reason_desc'] = "Pozwala na wpisanie krótkiego powodu nieobecności (maksymalnie 200 znaków).";
+$l['return_date'] = "Data powrotu:";
+$l['return_date_desc'] = "Jeśli wiesz kiedy wrócisz, możesz wpisać datę powrotu.";
+$l['error_modcp_return_date_past'] = "Data powrotu nie może być datą w przeszłości.";
+$l['usergroup'] = "Główna grupa użytkowników";
+$l['redirect_user_updated'] = "Profil użytkownika został zaktualizowany.";
+$l['posts_awaiting_moderation'] = "Posty oczekujÄ…ce na moderacjÄ™";
+$l['threads_awaiting_moderation'] = "WÄ…tki oczekujÄ…ce na moderacjÄ™";
+$l['attachments_awaiting_moderation'] = "Załączniki oczekujące na moderację";
+$l['mod_queue'] = "OczekujÄ…ce na moderacjÄ™";
+$l['approve'] = "Zatwierdź";
+$l['ignore'] = "Ignoruj";
+$l['perform_actions'] = "Wykonaj czynności";
+$l['author'] = "Autor";
+$l['threads'] = "WÄ…tki";
+$l['posts'] = "Posty";
+$l['filename'] = "Nazwa pliku";
+$l['thread_post'] = "WÄ…tek / Post";
+$l['permanent'] = "Na zawsze";
+$l['ban_error'] = "BÅ‚Ä…d";
+$l['ban_banned'] = "Zbanowani użytkownicy";
+$l['ban_user'] = "Zbanuj użytkownika";
+$l['reason'] = "Powód";
+$l['ban_username'] = "Login:";
+$l['ban_reason'] = "Powód:";
+$l['ban_length'] = "Długość";
+$l['ban_remaining'] = "pozostało";
+$l['ban_ending_imminently'] = "Ban wkrótce zostanie zniesiony";
+$l['ban_bannedby'] = "Zbanowany przez";
+$l['ban_movegroup'] = "PrzenieÅ› do grupy:";
+$l['ban_liftafter'] = "ZnieÅ› bana po:";
+$l['no_banned'] = "Nie ma zbanowanych użytkowników.";
+$l['no_banned_group'] = "Nie ma zbanowanych grup użytkowników.";
+$l['redirect_banuser'] = "Użytkownik został zbanowany.";
+$l['redirect_banuser_updated'] = "Ustawienia dotyczące bana zostały zaktualizowane.";
+$l['invalid_username'] = "Nie istnieje użytkownik o podanym loginie. Upewnij się, że podajesz prawidłowy login.";
+$l['error_useralreadybanned'] = "Ten użytkownik jest już zbanowany. Nie możesz zbanować go dwukrotnie.";
+$l['error_cannotbanuser'] = "Nie możesz zbanować tego użytkownika, bo ma on wyższy poziom uprawnień od Ciebie. Skontaktuj się z administratorem by zbanować tego użytkownika.";
+$l['error_cannotbanself'] = "Nie możesz zbanować sam siebie. Podaj inny login.";
+$l['error_no_perm_to_ban'] = "Nie masz uprawnień by zbanować tego użytkownika.";
+$l['error_nobanreason'] = "Nie podano powodu bana. Wpisz poprawny powód poniżej.";
+$l['error_nobangroup'] = "Nie wybrano grupy, do której użytkownik ma zostać przeniesiony.";
+$l['edit_ban'] = "Edytuj bana";
+$l['lift_ban'] = "ZnieÅ› bana";
+$l['ban'] = "Banuj";
+$l['error_invalidban'] = "Wybrany ban nie istnieje.";
+$l['redirect_banlifted'] = "Ban został zdjęty.";
+$l['mark_all_ignored'] = "Oznacz wszystkie jako ignorowane";
+$l['mark_all_deletion'] = "Oznacz wszystkie do usunięcia";
+$l['mark_all_approved'] = "Oznacz wszystkie do zatwierdzenia";
+$l['meta_forum'] = "Dział:";
+$l['meta_thread'] = "WÄ…tek:";
+$l['mod_queue_empty'] = "Nie ma wątków, postów ani załączników oczekujących na moderację.";
+$l['mod_queue_threads_empty'] = "Nie ma wątków oczekujących na moderację.";
+$l['mod_queue_posts_empty'] = "Nie ma postów oczekujących na moderację";
+$l['mod_queue_attachments_empty'] = "Nie ma załączników oczekujących na moderację";
+$l['redirect_threadsmoderated'] = "Wybrane wątki zostały poddane moderacji.";
+$l['redirect_postsmoderated'] = "Wybrane posty zostały poddane moderacji.";
+$l['redirect_attachmentsmoderated'] = "Wybrane załączniki zostały poddane moderacji.";
+$l['multi_approve_posts'] = "Wybrane posty zostały zatwierdzone.";
+$l['multi_delete_posts'] = "Wybrane posty zostały trwale usunięte.";
+$l['multi_soft_delete_posts'] = "Wybrane posty zostały nietrwale usunięte.";
+$l['multi_approve_threads'] = "Wybrane wątki zostały zatwierdzone.";
+$l['multi_delete_threads'] = "Wybrane wątki zostały trwale usunięte.";
+$l['multi_soft_delete_threads'] = "Wybrane wątki zostały nietrwale usunięte.";
+$l['edited_user'] = "Wyedytowano profil użytkownika";
+$l['edited_user_info'] = "Użytkownik: {1} ";
+$l['edited_user_ban'] = "Wyedytowano bana użykownika";
+$l['banned_user'] = "Zbanowano użytkownika";
+$l['lifted_ban'] = "Zdjęto bana";
+$l['no_bans_ending'] = "W najbliższym czasie nie zostaną zdjęte żadne bany.";
+
+$l['warning_logs'] = "Logi ostrzeżeń";
+$l['warned_user'] = "Ostrzeżony użytkownik";
+$l['warning'] = "Ostrzeżenie";
+$l['date_issued'] = "Data wystawienia";
+$l['expires'] = "Przedawni siÄ™";
+$l['expiry_date'] = "Data przedawnienia";
+$l['issued_date'] = "Data wystawienia";
+$l['issued_by'] = "Wystawione przez";
+$l['details'] = "Szczegóły";
+$l['filter_warning_logs'] = "Filtruj logi ostrzeżeń";
+$l['filter_warned_user'] = "Ostrzeżony użytkownik:";
+$l['filter_issued_by'] = "Ostrzeżenie dodane przez:";
+$l['filter_reason'] = "Powód zawiera:";
+$l['view'] = "PodglÄ…d";
+$l['no_warning_logs'] = "Brak logów ostrzeżeń.";
+$l['revoked'] = "Zdjęto ";
+$l['signature'] = "Sygnatura";
+$l['suspend_signature'] = "Wyłącz sygnaturę użytkownika ";
+$l['suspend_length'] = "Czas blokady:";
+$l['mod_notes'] = "Notatki moderatora";
+$l['moderation'] = "Opcje moderatora";
+$l['moderate_posts'] = "Posty tego użytkownika będą moderowane";
+$l['suspend_posts'] = "Odbierz użytkownikowi możliwość pisania";
+$l['modpost_length'] = "Posty będą moderowane przez:";
+$l['suspost_length'] = "Odbierz użytkownikowi możliwość pisania na okres:";
+
+$l['moderateposts_for'] = "Posty moderowane do {1}. Odznacz tę opcję, aby anulować ograniczenie lub przedłuż je poniżej.";
+$l['suspendposting_for'] = "Odebrana możliwość pisania do {1}. Odznacz tę opcję, aby anulować ograniczenie lub przedłuż je poniżej.";
+$l['suspendsignature_for'] = "Sygnatura zawieszona do {1}. Odznacz tę opcję, aby anulować ograniczenie lub przedłuż je poniżej.";
+$l['suspendposting_perm'] = "Zawieszone na zawsze. Odznacz tę opcję, aby anulować ograniczenie lub przedłuż je poniżej.";
+$l['moderateposts_perm'] = "Moderowane na zawsze. Odznacz tę opcję, aby anulować ograniczenie lub przedłuż je poniżej.";
+$l['suspendsignature_perm'] = "Zawieszona na zawsze. Odznacz tę opcję, aby anulować ograniczenie lub przedłuż je poniżej.";
+$l['suspendsignature_error'] = "Wybrano, aby zawiesić użytkownikowi możliwość pokazywania sygnatury, ale nie podano prawidłowego okresu czasu. Podaj prawidłowy okres czasu lub odznacz tę opcję, aby anulować.";
+$l['moderateposting_error'] = "Wybrano, aby posty użytkownika były moderowane, ale nie podano prawidłowego okresu czasu. Podaj prawidłowy okres czasu lub odznacz tę opcję, aby anulować.";
+$l['suspendposting_error'] = "Wybrano, aby odebrać użytkownikowi możliwość pisania, ale nie podano prawidłowego okresu czasu. Podaj prawidłowy okres czasu lub odznacz tę opcję, aby anulować.";
+$l['suspendmoderate_error'] = "Wybrano zarówno opcję moderowania postów użytkownika, jak i jej anulowania. Wybierz tylko jedną z opcji.";
+
+$l['expire_hours'] = "godzin(y)";
+$l['expire_days'] = "dzień (dni)";
+$l['expire_weeks'] = "tydzień (tygodni)";
+$l['expire_months'] = "miesiąc (miesięcy)";
+$l['expire_permanent'] = "nigdy";
+
+$l['manage_announcement'] = "Zarządzanie ogłoszeniami";
+$l['forum_announcements'] = "Ogłoszenia w działach";
+$l['announcement'] = "Ogłoszenie";
+$l['controls'] = "Czynności";
+$l['expired_announcement'] = "Przedawnione ogłoszenie";
+$l['active_announcement'] = "Aktywne ogłoszenie";
+$l['active'] = "Aktywne";
+$l['expired'] = "Przedawnione";
+$l['edit'] = "Edytuj";
+$l['add_announcement'] = "Nowe ogłoszenie";
+$l['edit_announcement'] = "Edytuj ogłoszenie";
+$l['no_forum_announcements'] = "Brak ogłoszeń w działach na forum.";
+$l['no_global_announcements'] = "Brak globalnych ogłoszeń na forum.";
+$l['add_global_announcement'] = "Nowe globalne ogłoszenie";
+$l['global_announcements'] = "Globalne ogłoszenia";
+$l['title'] = "Tytuł";
+$l['start_date'] = "Data rozpoczęcia";
+$l['time'] = "Godzina:";
+$l['end_date'] = "Data zakończenia";
+$l['never'] = "Nigdy";
+$l['allow_html'] = "WÅ‚Ä…cz HTML";
+$l['allow_mycode'] = "WÅ‚Ä…cz MyCode";
+$l['allow_smilies'] = "WÅ‚Ä…cz emotikony";
+$l['reset'] = "Wyczyść";
+$l['january'] = "styczeń";
+$l['february'] = "luty";
+$l['march'] = "marzec";
+$l['april'] = "kwiecień";
+$l['may'] = "maj";
+$l['june'] = "czerwiec";
+$l['july'] = "lipiec";
+$l['august'] = "sierpień";
+$l['september'] = "wrzesień";
+$l['october'] = "październik";
+$l['november'] = "listopad";
+$l['december'] = "grudzień";
+$l['delete_announcement'] = "Usuń ogłoszenie";
+$l['confirm_delete_announcement'] = "Czy na pewno chcesz usunąć to ogłoszenie?";
+$l['redirect_add_announcement'] = "Ogłoszenie zostało dodane.";
+$l['redirect_edit_announcement'] = "Ogłoszenie zostało wyedytowane.";
+$l['redirect_delete_announcement'] = "Ogłoszenie zostało usunięte.";
+$l['error_missing_title'] = "Nie podano tytułu.";
+$l['error_missing_message'] = "Nie podano treści.";
+$l['error_missing_forum'] = "Nie wybrano działu.";
+$l['error_invalid_start_date'] = "Data rozpoczęcia wyświetlania ogłoszenia jest nieprawidłowa.";
+$l['error_invalid_end_date'] = "Data zakończenia wyświetlania ogłoszenia jest nieprawidłowa.";
+$l['error_end_before_start'] = "Data zakończenia wyświetlania ogłoszenia musi być późniejsza niż data rozpoczęcia.";
+$l['error_invalid_announcement'] = "Wybrane ogłoszenie jest nieprawidłowe.";
+
+$l['announcement_added'] = "Dodano ogłoszenie";
+$l['announcement_edited'] = "Wyedytowano ogłoszenie";
+$l['announcement_deleted'] = "Usunięto ogłoszenie Deleted";
+
+$l['preview'] = 'PodglÄ…d';
+
+$l['you_cannot_view_mod_logs'] = "Nie masz uprawnień do przeglądania logów moderatorów.";
+$l['you_cannot_view_reported_posts'] = "Nie masz uprawnień do przeglądania zgłoszonych postów.";
+$l['you_cannot_manage_announcements'] = "Nie masz uprawnień do zarządzania ogłoszeniami.";
+$l['you_cannot_moderate_threads'] = "Nie masz uprawnień do moderacji wątków.";
+$l['you_cannot_moderate_posts'] = "Nie masz uprawnień do moderacji postów.";
+$l['you_cannot_moderate_attachments'] = "Nie masz uprawnień do moderacji załączników.";
+$l['you_cannot_use_mod_queue'] = "Nie masz uprawnień do korzystania z kolejki moderacji.";
+
+$l['post'] = 'Post';
+$l['search_user'] = "Szukaj użytkownika";
diff --git a/Upload/inc/languages/polish/moderation.lang.php b/Upload/inc/languages/polish/moderation.lang.php
new file mode 100644
index 0000000..2836ce1
--- /dev/null
+++ b/Upload/inc/languages/polish/moderation.lang.php
@@ -0,0 +1,221 @@
+Wszystkie posty z wątku zostaną dołączone do nowego, a dołączany wątek zostanie usunięty.";
+$l['merge_posts'] = "ÅÄ…cz posty";
+$l['merge_posts_note'] = "Wszystkie zaznaczone posty zostaną dołączone do pierwszego zaznaczonego posta.";
+$l['move_copy_thread'] = "PrzenieÅ› / Kopiuj wÄ…tek";
+$l['new_forum'] = "Nowy dział:";
+$l['method'] = "Metoda";
+$l['method_move'] = "PrzenieÅ› wÄ…tek";
+$l['method_move_redirect'] = "PrzenieÅ› wÄ…tek i zostaw przekierowanie w aktualnym dziale na";
+$l['redirect_expire_note'] = "dni (zostaw to pole puste by pozostawić przekierowanie na zawsze)";
+$l['method_copy'] = "Skopiuj do nowego działu";
+$l['split_thread_subject'] = "[oddzielony]";
+$l['split_thread'] = "Podziel wÄ…tek";
+$l['move_posts'] = "PrzenieÅ› posty";
+$l['thread_to_move_to'] = "Wątek do którego mają być przeniesione posty:";
+$l['move_post_note'] = "Skopiuj link do wątku, do którego mają zostać przeniesione wybrane posty, do pola tekstowego.";
+$l['new_thread_info'] = "Informacja o nowym wÄ…tku";
+$l['posts_to_split'] = "Posty do wydzielenia";
+$l['thread_notes_editor'] = "Edytor notatek wÄ…tku";
+$l['below_notes'] = "Poniżej możesz edytować notatki tego wątku.";
+$l['update_notes'] = "Aktualizuj notatki wątków";
+$l['mod_logs'] = "Logi moderatorów (20 ostatnich akcji)";
+$l['mod_username'] = "Użytkownik";
+$l['mod_date'] = "Data";
+$l['mod_actions'] = "Akcja";
+$l['mod_information'] = "Informacja";
+$l['read'] = "Czytaj:";
+$l['thread'] = "WÄ…tek:";
+$l['post'] = "Post:";
+$l['forum'] = "Dział:";
+$l['confirm_execute_tool'] = "Wykonywanie czynności";
+$l['confirm_execute_tool_desc'] = "Czy na pewno chcesz wykonać czynność {1} ? Po wykonaniu jej nie będzie można cofnać wprowadzonych zmian.";
+$l['delete_threads'] = "Usuń wątki";
+$l['confirm_delete_threads'] = "Czy na pewno chcesz usunąć zaznaczone wątki?";
+$l['move_threads'] = "PrzenieÅ› wÄ…tki";
+$l['confirm_delete_posts'] = "Czy na pewno chcesz usunąć zaznaczone posty? Jeśli w wątku nie będzie żadnych postów, zostanie on usunięty.";
+$l['post_separator'] = "Separator postów";
+$l['new_line'] = "Wolna linijka";
+$l['horizontal_rule'] = "Pozioma linia";
+$l['resolve_fail'] = "(host nieznany)";
+
+$l['opened'] = "Otwarty";
+$l['closed'] = "Zamknięty";
+$l['stuck'] = "Przypięty";
+$l['unstuck'] = "Odpięty";
+$l['mod_process'] = "WÄ…tek {1}";
+$l['redirects_removed'] = "Usunięto przekierowanie";
+$l['thread_deleted'] = "Usunięto wątek: {1}";
+$l['poll_deleted'] = "Usunięto ankietę: {1}";
+$l['thread_approved'] = "Zatwierdzono wÄ…tek: {1}";
+$l['thread_unapproved'] = "Ukryto wÄ…tek: {1}";
+$l['thread_restored'] = "Przywrócono wątek: {1}";
+$l['thread_soft_deleted'] = "Nietrwale usunięto wątek: {1}";
+$l['deleted_selective_posts'] = "Usunięto zaznaczone posty ({1})";
+$l['merged_selective_posts'] = "Połączono zaznaczone posty";
+$l['split_selective_posts'] = "Wydzielono posty (ID postów: {1}) do wątku (ID wątku: {2})";
+$l['move_selective_posts'] = "Przeniesiono posty (ID postów: {1}) do wątku (ID wątku: {2}";
+$l['removed_subscriptions'] = "Usunięto wszystkie subskrypcje";
+$l['thread_moved'] = "Przeniesiono wÄ…tek";
+$l['thread_copied'] = "Skopiowano wÄ…tek";
+$l['thread_merged'] = "Połączono wątki";
+$l['thread_split'] = "Oddzielono wÄ…tki";
+$l['thread_notes_edited'] = "Wyedytowano notatki wątków";
+$l['multi_deleted_threads'] = "Usunięto wątki";
+$l['multi_opened_threads'] = "Otwarto wÄ…tki";
+$l['multi_closed_threads'] = "Zamknięto wątki";
+$l['multi_approved_threads'] = "Zatwierdzono wÄ…tki";
+$l['multi_unapproved_threads'] = "Ukryto wÄ…tki";
+$l['multi_restored_threads'] = "Przywrócono wątki";
+$l['multi_soft_deleted_threads'] = "Nietrwale usunięto wątki";
+$l['multi_approve_posts'] = "Zatwierdzono zaznaczone posty";
+$l['multi_unapprove_posts'] = "Ukryto zaznaczone posty";
+$l['multi_restore_posts'] = "Przywrócono zaznaczone posty";
+$l['multi_soft_delete_posts'] = "Nietrwale usunięto zaznaczone posty";
+$l['multi_stuck_threads'] = "Przypięto wątki";
+$l['multi_unstuck_threads'] = "Odpięto wątki";
+$l['multi_moved_threads'] = "Przeniesiono wÄ…tki";
+$l['multi_copied_threads'] = "Skopiowano wÄ…tki";
+$l['custom_tool'] = "Niestandardowe narzędzie moderatorskie: {1}";
+
+$l['delayed_moderation'] = "Opóźniona moderacja";
+$l['delayed_moderation_desc'] = "Opóźniaj akcje moderatorskie o określoną liczbę dni.";
+$l['threads'] = "WÄ…tki:";
+$l['threads_selected'] = "Zaznaczono {1} wątków";
+$l['run_moderation_time'] = "Przeprowadź akcje moderatorskie w dniu:";
+$l['days'] = "dni";
+$l['moderation_action'] = "Opóźniona moderacja:";
+$l['open_close_thread'] = "Zamknij/Otwórz wątek";
+$l['remove_redirects'] = "Usuń przekierowania";
+$l['remove_subscriptions'] = "Usuń subskrypcje";
+$l['approve_unapprove_thread'] = "Zatwierdź/Ukryj wątek";
+$l['softdelete_restore_thread'] = "Nietrwale usuń/Przywróć wątek";
+$l['stick_unstick_thread'] = "Przypnij/Odepnij wÄ…tek";
+$l['save_delayed_moderation'] = "Zapisz opóźnioną moderację";
+$l['custom'] = "inne";
+$l['delayed_mod_queue'] = "Kolejka opóźnionej moderacji";
+$l['days_to_perform_action'] = "Czas do wykonania akcji";
+$l['leave_redirect'] = "ProwadzÄ…ce przekierowanie:";
+$l['multiple_threads'] = "Wiele wątków";
+$l['actions'] = "Akcje";
+$l['cancel'] = "Anuluj";
+$l['leave_redirect_for'] = "Zostaw przekierowanie w aktualnym dziale na:";
+$l['redirect_forever'] = "zawsze";
+$l['view_notes_for'] = "Przegląda notatki użytkownika {1}";
+
+$l['purgespammer'] = "Usuń spamera";
+$l['purgespammer_purge'] = "Usuń spamera {1}";
+$l['purgespammer_purge_desc'] = "Wybranie opcji spowoduje usunięcie całej aktywności (postów, prywatnych wiadomości, wydarzeń, itp.) spamera oraz samego użytkownika {1}.";
+$l['purgespammer_ban'] = "zbanuj";
+$l['purgespammer_delete'] = "usuń";
+$l['purgespammer_submit'] = "Usuń spamera";
+$l['purgespammer_success'] = "Użytkownik został usunięty.";
+$l['purgespammer_invalid_user'] = "Wybrano nieprawidłowego użytkownika.";
+$l['purgespammer_modlog'] = "Usunięto spamera";
+
+$l['error_invalidpm'] = "Nieprawidłowa wiadomość";
+$l['error_nomergeposts'] = "Musisz wybrać 1 lub więcej postów do połączenia.";
+$l['error_cantsplitonepost'] = "Nie możesz wydzielić jedynego posta z wątku.";
+$l['error_badmergeurl'] = "Link do wątku jest nieprawidłowy. Wprowadź poprawny link. Wróć i spróbuj ponownie.";
+$l['error_badmovepostsurl'] = "Link do wątku jest nieprawidłowy. Wprowadź poprawny link. Wróć i spróbuj ponownie.";
+$l['error_inline_nothreadsselected'] = "Nie zaznaczono żadnego wątku lub twoja poprzednia sesja wygasła (automatycznie po 1 godzinie nieaktywności). Wybierz inne wątki i spróbuj ponownie.";
+$l['error_inline_nopostsselected'] = "Nie zaznaczono żadnego posta lub twoja poprzednia sesja minęła (automatycznie po 1 godzinie nieaktywności). Wybierz inne posty i spróbuj ponownie.";
+$l['error_movetocategory'] = "To narzędzie służy do przenoszenia wątków do kategorii. Zmień ustawienia wg swoich potrzeb i wskaż właściwy dział.";
+$l['error_cantsplitall'] = "Nie możesz wydzielić wszystkich postów - wątek nie może pozostać pusty!";
+$l['error_cantmoveall'] = "Nie możesz przenieść wszystkich postów - wątek nie może pozostać pusty!";
+$l['error_nosplitposts'] = "Nie możesz wydzielić postów, bo nic nie zaznaczono.";
+$l['error_movetosameforum'] = "Wskazany wątek istnieje już w tym dziale. Wybierz inny dział.";
+$l['error_mergewithself'] = "ÅÄ…czenie wÄ…tków nie powiodÅ‚o siÄ™. Wróć i wprowadź prawidÅ‚owy URL.";
+$l['error_movetoself'] = "Nie można przenieść postów do tego samego wątku. Wróć i wprowadź prawidłowy URL.";
+$l['error_delayedmoderation_unsupported_type'] = "Nie wybrano prawidłowego typu akcji dla opóźnionej moderacji.";
+$l['error_delayedmoderation_unsupported_method'] = "Nie wybrano prawidłowej metody przeniesienia dla tej akcji opóźnionej moderacji.";
+$l['error_delayedmoderation_invalid_date_day'] = "Nie wprowadzono prawidłowego dnia dla akcji opóźnionej moderacji.";
+$l['error_delayedmoderation_invalid_date_month'] = "Nie wprowadzono prawidłowego miesiąca dla akcji opóźnionej moderacji.";
+$l['error_delayedmoderation_invalid_date_year'] = "Nie wprowadzono prawidłowego roku dla akcji opóźnionej moderacji.";
+
+$l['redirect_pollnotdeleted'] = "Ankieta nie została usunięta, gdyż nie zaznaczono pola \"Usuń\". Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_polldeleted'] = "Ankieta została usunięta. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_mergeposts'] = "Zaznaczone posty zostały połączone. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_openthread'] = "Wątek został otwarty. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_closethread'] = "Wątek został zamknięty. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_stickthread'] = "Wątek został przypięty. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_unstickthread'] = "Wątek został odpięty. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_threaddeleted'] = "Wątek został trwale usunięty. Teraz nastąpi przeniesienie na forum.";
+$l['redirect_threadmoved'] = "Wątek został przeniesiony lub skopiowany do wybranego działu. Teraz nastąpi przeniesienie do tego wątku.";
+$l['redirect_redirectsremoved'] = "Wszystkie przekierowania prowadzące do tego wątku zostały usunięte. Teraz nastąpi przeniesienie do tego wątku.";
+$l['redirect_threadapproved'] = "Wątek został zatwierdzony.";
+$l['redirect_threadunapproved'] = "Wątek został ukryty.";
+$l['redirect_threadrestored'] = "Wątek został przywrócony.";
+$l['redirect_threadsoftdeleted'] = "Wątek został nietrwale usunięty.";
+$l['redirect_threadsplit'] = "Wątek został podzielony. Teraz nastąpi przeniesienie do wątku oddzielonego jako nowy.";
+$l['redirect_moveposts'] = "Posty zostały przeniesione do wybranego wątku. Teraz nastąpi przeniesienie do tego wątku.";
+$l['redirect_threadnotesupdated'] = "Notatki do tego wątku zostały zaktualizowane. Teraz nastąpi przeniesienie do tego wątku.";
+$l['redirect_threadsmerged'] = "Wybrane wątki zostały połączone. Teraz nastąpi przeniesienie do wątku, który powstał z połączenia.";
+$l['redirect_inline_threadsdeleted'] = "Wskazane wątki zostały trwale usunięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsopened'] = "Wskazane wątki zostały otwarte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsclosed'] = "Wskazane wątki zostały zamknięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsstuck'] = "Wskazane wątki zostały przypięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsunstuck'] = "Wskazane wątki zostały odpięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsmoved'] = "Wskazane wątki zostały przeniesione. Teraz nastąpi przeniesienie do działu, w którym je umieszczono.";
+$l['redirect_inline_threadsapproved'] = "Wskazane wątki zostały zatwierdzone. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsunapproved'] = "Wskazane wątki zostały ukryte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadsrestored'] = "Wskazane wątki zostały przywrócone. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_threadssoftdeleted'] = "Wskazane wątki zostały nietrwale usunięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_postsmerged'] = "Wskazane posty zostały połączone. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_postsapproved'] = "Wskazane posty zostały zatwierdzone. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_postsunapproved'] = "Wskazane posty zostały ukryte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_postsrestored'] = "Wskazane posty zostały przywrócone. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_inline_postssoftdeleted'] = "Wskazane posty zostały nietrwale usunięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_postsdeleted'] = "Wskazane posty zostały trwale usunięte. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_removed_subscriptions'] = "Wszystkie subskrypcje tego wątku zostały usunięte. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_customtool_thread'] = "Czynność \"{1}\" została wykonana. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_customtool_forum'] = "Czynność \"{1}\" została wykonana. Teraz nastąpi przeniesienie do działu.";
+$l['redirect_customtool_search'] = "Czynność \"{1}\" została wykonana. Teraz nastąpi przeniesienie do narzędzi wyszukiwania.";
+$l['redirect_delayed_moderation_thread'] = "Narzędzie moderowania zostało zapisane i opóźnione o {1} dzień (dni). Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_delayed_moderation_forum'] = "Narzędzie moderowania zostało zapisane i opóźnione o {1} dzień (dni). Teraz nastąpi przeniesienie do działu.";
+$l['redirect_delayed_moderation_search'] = "Narzędzie moderowania zostało zapisane i opóźnione o {1} dzień (dni). Teraz nastąpi przeniesienie do wyników wyszukiwania.";
+$l['redirect_delayed_moderation_cancelled'] = "Wybrane narzędzie moderacji zostało anulowane. Teraz nastąpi przekierowanie do strony opóźnionej moderacji.";
diff --git a/Upload/inc/languages/polish/newreply.lang.php b/Upload/inc/languages/polish/newreply.lang.php
new file mode 100644
index 0000000..34e3260
--- /dev/null
+++ b/Upload/inc/languages/polish/newreply.lang.php
@@ -0,0 +1,55 @@
+Sygnatura: pod postem pojawi się twoja sygnatura (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['options_emailnotify'] = "Powiadomienie: kiedy ktoś odpowie, otrzymasz powiadomienie w postaci wiadomości e-mail (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['options_disablesmilies'] = "Wyłącz emotikony: emotikony w tym poście nie będą widoczne.";
+$l['post_reply'] = "Odpowiedz";
+$l['preview_post'] = "PodglÄ…d";
+$l['mod_options'] = "Opcje moderatora:";
+$l['close_thread'] = "Zamknij wątek : nikt nie będzie mógł odpowiadać w tym wątku.";
+$l['stick_thread'] = "Przypnij wątek: wątek będzie widoczny na górze działu.";
+$l['forum_rules'] = "{1} - zasady działu";
+$l['thread_review'] = "PodglÄ…d wÄ…tku (od najnowszej odpowiedzi)";
+$l['thread_review_more'] = "Ten wątek ma jeszcze {1} odpowiedzi. Przeczytaj całość. ";
+$l['posted_by'] = "Napisane przez";
+$l['draft_saved'] = "Nowy szkic posta został zapisany. Teraz nastąpi przeniesienie do listy Twoich szkiców.";
+$l['image_verification'] = "Potwierdzenie kodem";
+$l['verification_note'] = "Przepisz tekst z obrazka po lewej do poniższego pola tekstowego. Taki proces jest niezbędny, by zapobiec wysyłaniu wiadomości przez automaty.";
+$l['verification_subnote'] = "(wielkość liter ma znaczenie)";
+$l['invalid_captcha'] = "Wprowadzony kod weryfikacji jest nieprawidłowy. Przepisz kod z obrazka dokładnie.";
+$l['error_post_already_submitted'] = "Napisano już wcześniej identyczną odpowiedź.";
+$l['multiquote_external_one'] = "Zaznaczono 1 post do zacytowania.";
+$l['multiquote_external'] = "Zaznaczono {1} postów do zacytowania.";
+$l['multiquote_external_one_deselect'] = "odznacz ten post";
+$l['multiquote_external_deselect'] = "odznacz te posty";
+$l['multiquote_external_one_quote'] = "Zacytuj ten post teraz";
+$l['multiquote_external_quote'] = "Zacytuj te posty teraz";
+
+$l['redirect_newreply'] = "Post został umieszczony na forum.";
+$l['redirect_newreply_moderation'] = " Twój post przed opublikowaniem zostanie sprawdzony przez moderatora. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_newreply_post'] = " Teraz nastÄ…pi przeniesienie do nowego posta.";
+$l['redirect_newreplyerror'] = "Twoja wiadomość nie zostanie opublikowana, gdyż posiada nieprawidłową zawartość. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_threadclosed'] = "Nie możesz odpowiedzieć w tym wątku, gdyż został zamknięty przez moderatora.";
+$l['error_post_noperms'] = "Nie masz uprawnień do edytowania tego szkicu.";
+
+$l['error_stop_forum_spam_spammer'] = 'Twój adres IP lub e-mail znajduje się w bazie znanych spamerów. Jeżeli uważasz, że jest to błąd, powiadom o tym administratora.';
+$l['error_stop_forum_spam_fetching'] = 'Nie mogliśmy upewnić sie, że nie jesteś spamerem. Prawdopodobnie jest to spowodowane problemami z połączeniem z bazą danych. Spróbuj ponownie później.';
+$l['error_suspendedposting'] = "Odebrano Ci możliwość pisania postów. Blokada {1}.
+
+Data nałożenia ograniczenia: {2}";
+$l['error_suspendedposting_temporal'] = "zostanie zniesiona {1}";
+$l['error_suspendedposting_permanent'] = "jest permanentna";
diff --git a/Upload/inc/languages/polish/newthread.lang.php b/Upload/inc/languages/polish/newthread.lang.php
new file mode 100644
index 0000000..ba4a17b
--- /dev/null
+++ b/Upload/inc/languages/polish/newthread.lang.php
@@ -0,0 +1,57 @@
+Sygnatura: pod postem pojawi się twoja sygnatura (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['options_emailnotify'] = "Powiadomienie: kiedy ktoś odpowie, otrzymasz powiadomienie e-mailem (o ile jesteś zarejestrowanym użytkownikiem).";
+$l['options_disablesmilies'] = "Wyłącz emotikony: emotikony w tym poście nie będą widoczne.";
+$l['post_thread'] = "Napisz wÄ…tek";
+$l['preview_post'] = "PodglÄ…d";
+$l['poll'] = "Ankieta:";
+$l['poll_desc'] = "Możesz dodać ankietę do wątku.";
+$l['poll_check'] = "Chcę dodać ankietę";
+$l['num_options'] = "Liczba odpowiedzi:";
+$l['max_options'] = "(maksymalnie {1})";
+$l['mod_options'] = "Opcje moderatora:";
+$l['close_thread'] = "Zamknij wątek : nie będzie możliwości odpowiadania.";
+$l['stick_thread'] = "Przypnij wątek: będzie widoczny na górze działu.";
+$l['draft_saved'] = "Nowy szkic wątku został zapisany. Teraz nastąpi przeniesienie do listy Twoich szkiców.";
+$l['image_verification'] = "Potwierdzenie kodem";
+$l['verification_note'] = "Przepisz tekst z obrazka po lewej do poniższego pola tekstowego. Taki proces jest niezbędny, by zapobiec wysyłaniu wiadomości przez automaty.";
+$l['verification_subnote'] = "(wielkość liter ma znaczenie)";
+$l['invalid_captcha'] = "Wprowadzony kod weryfikacji jest nieprawidłowy. Przepisz kod z obrazka dokładnie.";
+$l['error_post_already_submitted'] = "Już napisano identyczny wątek w tym dziale.";
+$l['no_prefix'] = "Bez prefiksu";
+$l['forum_rules'] = "{1} - zasady działu";
+
+$l['multiquote_external_one'] = "Wybrano 1 post z innego wÄ…tku.";
+$l['multiquote_external'] = "Wybrano {1} postów z innych wątków.";
+$l['multiquote_external_one_deselect'] = "odznacz ten post";
+$l['multiquote_external_deselect'] = "odznacz te posty";
+$l['multiquote_external_one_quote'] = "Zacytuj również ten post";
+$l['multiquote_external_quote'] = "Zacytuj również te posty";
+
+$l['redirect_newthread'] = "Wątek został umieszczony na forum.";
+$l['redirect_newthread_poll'] = " Teraz nastąpi przeniesienie do ustawień ankiety.";
+$l['redirect_newthread_moderation'] = " Twój wątek przed opublikowaniem zostanie zweryfikowany przez moderatora. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_newthread_thread'] = " Teraz nastÄ…pi przeniesienie do nowego wÄ…tku.";
+$l['invalidthread'] = "Nie masz uprawnień do edytowania wybranego szkicu.";
+
+$l['error_stop_forum_spam_spammer'] = 'Twój adres IP lub e-mail znajduje się w bazie znanych spamerów. Jeżeli uważasz, że jest to błąd, powiadom o tym administratora.';
+$l['error_stop_forum_spam_fetching'] = 'Nie mogliśmy upewnić sie, że nie jesteś spamerem. Prawdopodobnie jest to spowodowane problemami z połączeniem z bazą danych. Spróbuj ponownie później.';
+$l['error_suspendedposting'] = "Odebrano Ci możliwość pisania postów. Blokada {1}.
+
+Data nałożenia ograniczenia: {2}";
+$l['error_suspendedposting_temporal'] = "zostanie zniesiona {1}";
+$l['error_suspendedposting_permanent'] = "jest permanentna";
+?>
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/online.lang.php b/Upload/inc/languages/polish/online.lang.php
new file mode 100644
index 0000000..f2bcc48
--- /dev/null
+++ b/Upload/inc/languages/polish/online.lang.php
@@ -0,0 +1,136 @@
+{2}";
+$l['viewing_announcements2'] = "Przegląda ogłoszenie";
+$l['viewing_attachment'] = "Przegląda załącznik";
+$l['viewing_attachment2'] = "Przegląda załącznik w wątku {2} ";
+$l['viewing_calendar'] = "PrzeglÄ…da Kalendarz ";
+$l['viewing_event'] = "PrzeglÄ…da wydarzenie";
+$l['viewing_event2'] = "PrzeglÄ…da wydarzenie {2} ";
+$l['adding_event'] = "Dodaje wydarzenie ";
+$l['editing_event'] = "Edytuje wydarzenie";
+$l['viewing_contact_us'] = "PrzeglÄ…da stronÄ™ kontaktowÄ… ";
+$l['editing_post'] = "Edytuje post";
+$l['viewing_forum'] = "Przegląda dział";
+$l['viewing_forum2'] = "Przegląda dział {2} ";
+$l['forum_redirect_to'] = "Jest przekierowywany do: {2} ";
+$l['viewing_index'] = "Przegląda stronę główną forum ";
+$l['activating_account'] = "Aktywuje konto";
+$l['viewing_profile'] = "PrzeglÄ…da profil";
+$l['viewing_profile2'] = "PrzeglÄ…da profil {2} ";
+$l['registering'] = "Rejestruje siÄ™ ";
+$l['logging_in'] = "Loguje siÄ™ ";
+$l['logging_in_plain'] = "Loguje siÄ™";
+$l['logging_out'] = "Wylogowuje siÄ™";
+$l['emailing_user'] = "Pisze e-mail";
+$l['rating_user'] = "Ocenia użytkownika";
+$l['viewing_memberlist'] = "Przegląda listę użytkowników ";
+$l['viewing_whoposted'] = "Przegląda \"Kto napisał\"";
+$l['viewing_whoposted2'] = "Przegląda \"Kto napisał\" w wątku {2} ";
+$l['marking_read'] = "Oznacza działy jako przeczytane ";
+$l['viewing_helpdocs'] = "PrzeglÄ…da pomoc ";
+$l['viewing_buddylist'] = "PrzeglÄ…da listÄ™ znajomych ";
+$l['viewing_smilies'] = "Przegląda listę emotikonów ";
+$l['viewing_syndication'] = "PrzeglÄ…da stronÄ™ RSS ";
+$l['replying_thread'] = "Odpowiada w wÄ…tku";
+$l['replying_thread2'] = "Odpowiada w wÄ…tku {2} ";
+$l['posting_thread'] = "Pisze nowy wÄ…tek";
+$l['posting_thread2'] = "Pisze nowy wÄ…tek w {2} ";
+$l['viewing_wol'] = "PrzeglÄ…da \"Kto jest online\" ";
+$l['viewing_woltoday'] = "Przegląda \"Kto był dzisiaj online\" ";
+$l['creating_poll'] = "Tworzy nowÄ… ankietÄ™";
+$l['editing_poll'] = "Edytuje ankietÄ™";
+$l['viewing_pollresults'] = "PrzeglÄ…da wyniki ankiety";
+$l['voting_poll'] = "GÅ‚osuje w ankiecie";
+$l['using_modtools'] = "Używa narzędzi moderatorskich";
+$l['sending_pm'] = "Wysyła prywatną wiadomość";
+$l['reading_pm'] = "Czyta prywatną wiadomość";
+$l['editing_pmfolders'] = "Edytuje foldery PW";
+$l['using_pmsystem'] = "Używa systemu PW";
+$l['reporting_post'] = "Zgłasza post";
+$l['searching_forum'] = "Przeszukuje {1}";
+$l['reading_thread'] = "Czyta wÄ…tek";
+$l['reading_thread2'] = "Czyta wÄ…tek {2} {3}";
+$l['viewing_team'] = "PrzeglÄ…da ekipÄ™ forum";
+$l['viewing_stats'] = "PrzeglÄ…da statystyki forum";
+$l['updating_profile'] = "Aktualizuje profil ";
+$l['updating_options'] = "Aktualizuje opcje ";
+$l['editing_signature'] = "Edytuje sygnaturÄ™ ";
+$l['changing_avatar'] = "Zmienia awatar ";
+$l['viewing_subscriptions'] = "Przegląda subskrypcje wątków ";
+$l['viewing_favorites'] = "PrzeglÄ…da ulubione wÄ…tki ";
+$l['editing_pad'] = "Edytuje osobisty notatnik ";
+$l['editing_password'] = "Zmienia hasło ";
+$l['user_cp'] = "Przegląda panel użytkownika ";
+$l['viewing_portal'] = "PrzeglÄ…da Portal ";
+$l['viewing_noperms'] = "Przegląda informacje o braku dostępu";
+$l['unknown_location'] = "Nieznana lokalizacja ";
+$l['giving_reputation'] = "Przyznaje punkt reputacji użytkownikowi {2} ";
+$l['viewing_reputation_report'] = "Przegląda informacje o reputacji użytkownika {2} ";
+$l['viewing_reputation_report2'] = "PrzeglÄ…da informacje o reputacji";
+$l['member_resendactivation'] = "Przesyła sobie e-mail aktywujący";
+$l['member_lostpw'] = "Przywraca zapomniane hasło ";
+$l['sending_thread'] = "Wysyła wątek znajomemu";
+$l['guest'] = "Gość";
+$l['page'] = "Strona";
+$l['users_online'] = "Kto jest online";
+$l['on_username'] = "Użytkownik";
+$l['time'] = "Czas";
+$l['location'] = "Lokalizacja";
+$l['online_today'] = "Kto był online przez ostatnie 24 godziny";
+$l['refresh_page'] = "Odśwież";
+$l['online_online_plural'] = "użytkowników aktywnych";
+$l['online_online_singular'] = "użytkownik aktywny";
+$l['online_member_plural'] = "zarejestrowanych";
+$l['online_member_singular'] = "zarejestrowany";
+$l['online_anon_plural'] = "niewidocznych";
+$l['online_anon_singular'] = "niewidoczny";
+$l['online_guest_plural'] = "gości";
+$l['online_guest_singular'] = "gość";
+$l['online_count'] = "{1} {2} w ciÄ…gu ostatnich {3} minut ({4} {5}, {6} {7} i {8} {9}).";
+$l['ip'] = "IP:";
+$l['resolves_to'] = "Nazwa hosta:";
+$l['if_resolvable'] = "(jeśli możliwe)";
+$l['admin_options'] = "Opcje administratora:";
+$l['search_regip_users'] = "Szukaj użytkowników, którzy rejestrowali się z tego IP";
+$l['search_postip_users'] = "Szukaj użytkowników, którzy pisali z tego IP";
+$l['lookup'] = "[więcej]";
+$l['member_online_today'] = "1 użytkownik był dzisiaj online";
+$l['members_were_online_today'] = "W ciągu ostatnich 24 godzin było {1} użytkowników online";
+$l['member_online_hidden'] = " ({1} z nich był ukryty)";
+$l['members_online_hidden'] = " ({1} z nich było ukrytych)";
+$l['rating_thread'] = "Ocenia wÄ…tek";
+$l['viewing_imcenter'] = "PrzeglÄ…da centrum IM";
+$l['managing_favorites'] = "ZarzÄ…dza ulubionymi";
+$l['managing_subscriptions'] = "ZarzÄ…dza subskrybowanymi wÄ…tkami";
+$l['managing_group'] = "Zarządza grupą użytkowników";
+$l['viewing_modcp'] = "PrzeglÄ…da panel moderatora";
+$l['viewing_modlogs'] = "Przegląda logi moderatorów";
+$l['managing_announcements'] = "Zarządza ogłoszeniami";
+$l['search_for_user'] = "Wyszukuje użytkowników";
+$l['managing_warninglogs'] = "Zarządza logami ostrzeżeń";
+$l['searching_ips'] = "Wyszukuje IP";
+$l['viewing_reports'] = "Przegląda zgłoszone posty";
+$l['adding_announcement'] = "Dodaje ogłoszenie";
+$l['deleting_announcement'] = "Usuwa ogłoszenie";
+$l['editing_announcement'] = "Edytuje ogłoszenie";
+$l['managing_modqueue'] = "Moderuje oczekujące posty, wątki i załączniki";
+$l['editing_user_profiles'] = "Edytuje profile użytkowników";
+$l['managing_bans'] = "ZarzÄ…dza banami";
+$l['revoking_warning'] = "Cofa ostrzeżenie";
+$l['warning_user'] = "Ostrzega użytkownika";
+$l['viewing_warning'] = "Przegląda ostrzeżenie";
+$l['managing_warnings'] = "Zarządza ostrzeżeniami";
+$l['changing_dst'] = "Zmienia ustawienia czasu letniego";
+$l['printing_thread'] = "Drukuje wÄ…tek";
+$l['printing_thread2'] = "Drukuje wÄ…tek {2} ";
+$l['managing_buddyignorelist'] = "ZarzÄ…dza listÄ… znajomych/ignorowanych";
diff --git a/Upload/inc/languages/polish/polls.lang.php b/Upload/inc/languages/polish/polls.lang.php
new file mode 100644
index 0000000..03dde4b
--- /dev/null
+++ b/Upload/inc/languages/polish/polls.lang.php
@@ -0,0 +1,60 @@
+Uwaga: Po usunięciu ankiety nie będzie już możliwości jej przywrócenia.";
+$l['question'] = "Pytanie:";
+$l['num_options'] = "Liczba odpowiedzi:";
+$l['max_options'] = "Maksymalnie";
+$l['poll_options'] = "Odpowiedzi ankiety:";
+$l['update_options'] = "Aktualizuj liczbÄ™ odpowiedzi";
+$l['poll_options_note'] = "Odpowiedzi ankiety powinny być krótkie i zwięzłe.";
+$l['options'] = "Opcje:";
+$l['option_multiple'] = "Ankieta wielokrotnego wyboru: użytkownik będzie mógł wybrać wiele odpowiedzi.";
+$l['option_multiple_maxoptions'] = "Maksymalna licza możliwych do wyboru odpowiedzi dla użytkownika (jeśli wpiszesz 0, liczba odpowiedzi pozostanie nielimitowana):";
+$l['option_public'] = "Ankieta publiczna: użytkownicy będą mogli wzajemnie poznać swoje odpowiedzi.";
+$l['option_closed'] = "Ankieta zamknięta: użytkownicy nie będą mogli odpowiadać.";
+$l['poll_timeout'] = "Data wygaśnięcia:";
+$l['timeout_note'] = "Liczba dni do zakończenia głosowania. Jeśli wpiszesz 0, ankieta nigdy nie wygaśnie.";
+$l['days_after'] = "dni od";
+$l['update_poll'] = "Aktualizuj ankietÄ™";
+$l['option'] = "Odpowiedź";
+$l['votes'] = "Głosów:";
+$l['post_new_poll'] = "Zapisz ankietÄ™";
+$l['days'] = "dni";
+$l['poll_results'] = "Wyniki ankiety";
+$l['poll_total'] = "Razem:";
+$l['poll_votes'] = "głosów";
+
+$l['redirect_pollposted'] = "Twoja ankieta została utworzona. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_pollpostedmoderated'] = "Twoja ankieta została utworzona, jednak przed opublikowaniem musi być zweryfikowana przez moderatora. Teraz nastąpi przeniesienie na forum.";
+$l['redirect_pollupdated'] = "Ankieta została zaktualizowana. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_votethanks'] = "Dziękujemy za wypełnienie ankiety. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_unvoted'] = "Twój głos w ankiecie został usunięty. Teraz nastąpi przeniesienie do wątku.";
+$l['redirect_polldeleted'] = "Ankieta została usunięta z wątku. Teraz nastąpi przeniesienie do wątku.";
+
+$l['error_polloptiontoolong'] = "Jedna lub więcej odpowiedzi jest za długa. Wróć i skróć je.";
+$l['error_noquestionoptions'] = "Musisz wprowadzić pytanie do ankiety lub więcej odpowiedzi. Minimalna liczba odpowiedzi to 2. Wróć i popraw ten błąd.";
+$l['error_pollalready'] = "Ten wątek ma już ankietę!";
+$l['error_nopolloptions'] = "Wybrana odpowiedź ankiety jest nieprawidłowa lub nie istnieje.";
+$l['error_maxpolloptions'] = "Wybrano zbyt dużo odpowiedzi w ankiecie. Maksymalna liczba odpowiedzi do wyboru to {1}. Wróć i spróbu ponownie.";
+$l['error_alreadyvoted'] = "Wzięto już wcześniej udział w tej ankiecie.";
+$l['error_notvoted'] = "W tej ankiecie nie brano udziału.";
+$l['error_invalidpoll'] = "Wybrana ankieta nie istnieje lub jest nieprawidłowa.";
+$l['error_pollclosed'] = "Ta ankieta jest już zakończona.";
+$l['poll_time_limit'] = "Nie możesz dodać ankiety do swojego wątku. Administrator nałożył limit czasowy na dodawanie ankiet i można je dodawać tylko w ciągu pierwszych {1} godzin od zamieszczenia wątku.";
+
+$l['poll_deleted'] = "Usunięto ankietę";
+$l['poll_edited'] = "Wyedytowano ankietÄ™";
diff --git a/Upload/inc/languages/polish/portal.lang.php b/Upload/inc/languages/polish/portal.lang.php
new file mode 100644
index 0000000..5f39802
--- /dev/null
+++ b/Upload/inc/languages/polish/portal.lang.php
@@ -0,0 +1,53 @@
+{2} nieprzeczytanych wiadomości.";
+$l['pms_unread'] = "Nieprzeczytane wiadomości";
+$l['pms_total'] = "Razem wiadomości";
+$l['search_forums'] = "Szukaj na forum";
+$l['advanced_search'] = "Zaawansowane szukanie";
+$l['forum_stats'] = "Statystyki";
+$l['num_members'] = "Użytkownicy:";
+$l['latest_member'] = "Najnowszy użytkownik:";
+$l['num_threads'] = "Wątków na forum:";
+$l['num_posts'] = "Postów na forum:";
+$l['full_stats'] = "Pełne statystyki";
+$l['welcome'] = "Witaj, {1}";
+$l['guest'] = "Gość";
+$l['guest_welcome_registration'] = "Musisz się zarejestrować przed napisaniem posta.";
+$l['username'] = "Użytkownik";
+$l['password'] = "Hasło";
+$l['login'] = "Zaloguj!";
+$l['member_welcome_lastvisit'] = "Ostatnia wizyta:";
+$l['since_then'] = "Od Twojej ostatniej wizyty napisano:";
+$l['new_announcements'] = "{1} nowych ogłoszeń";
+$l['new_announcement'] = "1 nowe ogłoszenie";
+$l['new_threads'] = "{1} nowych wątków";
+$l['new_thread'] = "1 nowy wÄ…tek";
+$l['new_posts'] = "{1} nowych postów";
+$l['new_post'] = "1 nowy post";
+$l['view_new'] = "Pokaż nowe posty";
+$l['view_todays'] = "Pokaż dzisiejsze posty";
+$l['online'] = "Użytkownicy online";
+$l['online_user'] = "Aktualnie jest 1 użytkownik online.";
+$l['online_users'] = "Aktualnie jest {1} użytkowników online.";
+$l['online_counts'] = "{1} Użytkownik(ów) | {2} Gość(i)";
+$l['print_this_item'] = "Wydrukuj tę wiadomość";
+$l['send_to_friend'] = "Wyślij tę wiadomość znajomemu";
+$l['latest_announcements'] = "Ostatnie ogłoszenia";
+$l['portal_disabled'] = "Portal został wyłączony przez administratora.";
\ No newline at end of file
diff --git a/Upload/inc/languages/polish/printthread.lang.php b/Upload/inc/languages/polish/printthread.lang.php
new file mode 100644
index 0000000..b2ee427
--- /dev/null
+++ b/Upload/inc/languages/polish/printthread.lang.php
@@ -0,0 +1,12 @@
+Uwaga: usuniętych wiadomości nie będzie można przywrócić. ";
+$l['num_messages'] = "Liczba wiadomości:";
+$l['empty_q'] = "Opróżnić?";
+$l['keep_unread'] = "Nie usuwaj nieprzeczytanych wiadomości";
+$l['pm_folders'] = "Foldery prywatnych wiadomości";
+$l['existing_folders'] = "IstniejÄ…ce foldery";
+$l['edit_folder_note'] = "Tutaj możesz zmienić nazwy istniejących folderów. Aby usunąć folder, po prostu usuń jego nazwę. Podstawowych folderów nie można usunąć.Uwaga: Usuwając folder, usuwasz również wszystkie wiadomości znajdujące się w nim. ";
+$l['new_folders'] = "Nowe foldery";
+$l['add_folders_note'] = "Tutaj możesz utworzyć dodatkowe foldery. Nie musisz wypełniać wszystkich pól.";
+$l['update_folders'] = "Aktualizuj foldery";
+$l['cannot_be_removed'] = "Nie można usunąć";
+$l['reached_warning'] = "Uwaga: przekroczono limit wiadomości.";
+$l['reached_warning2'] = "Usuń stare prywatne wiadomości.";
+$l['deny_receipt'] = "[nie powiadamiaj]";
+$l['viewing_pm'] = "PrzeglÄ…da PW:";
+$l['reply'] = "Odpowiedz";
+$l['reply_to_all'] = "Odpowiedz na wszystkie";
+$l['forward'] = "Przekaż";
+$l['compose_pm'] = "Pisanie prywatnej wiadomości";
+$l['compose_to'] = "Odbiorcy:";
+$l['compose_bcc'] = "UDW:";
+$l['compose_bcc_show'] = "UDW";
+$l['compose_bcc_show_title'] = "Pokaż pole UDW pozwalające na dodanie odbiorców ukrytej kopii wiadomości.";
+$l['separate_names'] = "Oddzielaj loginy przecinkami.";
+$l['max_recipients'] = " Możesz wysłać jednorazowo wiadomość do maksymalnie {1} osób.";
+$l['compose_subject'] = "Temat:";
+$l['compose_message'] = "Wiadomość:";
+$l['compose_options'] = "Opcje:";
+$l['message_icon'] = "Ikona wiadomości:";
+$l['options_sig'] = "Sygnatura: dołączona zostanie Twoja sygnatura.";
+$l['options_disable_smilies'] = "Wyłącz emotikony: emotikony nie będą widoczne w tej wiadomości.";
+$l['options_save_copy'] = "Zapisz kopię: wiadomość po wysłaniu zostanie zapisana w folderze Wysłane.";
+$l['options_read_receipt'] = "Dostarcz potwierdzenie: otrzymasz je, gdy wiadomość zostanie przeczytana przez adresata.";
+$l['send_message'] = "Wyślij wiadomość";
+$l['save_draft'] = "Zapisz jako szkic";
+$l['preview'] = "PodglÄ…d";
+$l['select_buddy'] = "Lub wybierz znajomego:";
+$l['pm_tracking'] = "Śledzenie prywatnych wiadomości";
+$l['read_messages'] = "Przeczytane wiadomości";
+$l['unread_messages'] = "Nieprzeczytane wiadomości";
+$l['q'] = "?";
+$l['dateread'] = "Data przeczytania";
+$l['stop_tracking'] = "Zatrzymaj śledzenie";
+$l['datesent'] = "Data wysłania";
+$l['cancel'] = "Anuluj";
+$l['export_date_sent'] = "Data";
+$l['export_folder'] = "Folder";
+$l['export_subject'] = "Temat";
+$l['export_to'] = "Do";
+$l['export_from'] = "Od";
+$l['export_message'] = "Wiadomość";
+$l['not_sent'] = "(nie wysłano)";
+$l['at'] = "o";
+$l['nomessages'] = "W tym folderze nie ma wiadomości.";
+$l['details'] = "Szczegóły";
+$l['message'] = "Wiadomość";
+$l['buddy_list'] = "Lista znajomych";
+$l['multiple_recipients'] = "Wielu odbiorców ";
+$l['bcc'] = "UDW:";
+$l['reply_title'] = "Odpowiedz na tę prywatną wiadomość";
+$l['forward_title'] = "Prześlij tę prywatną wiadomość dalej";
+$l['delete_title'] = "Usuń tę prywatną wiadomość";
+$l['you_replied_on'] = "Odpowiedziano na tę wiadomość {1}";
+$l['you_forwarded_on'] = "Przesłano tę wiadomość dalej {1}";
+$l['you_replied'] = "Odpowiedziano na tę wiadomość {1}";
+$l['you_forwarded'] = "Przesłano tę wiadomość dalej {1}";
+$l['select_from_buddies'] = "Wybierz z listy znajomych";
+$l['no_readmessages'] = "Aktualnie nie ma żadnej przeczytanej śledzonej przez Ciebie wiadomości.";
+$l['no_unreadmessages'] = "Aktualnie nie ma żadnej nieprzeczytanej śledzonej przez Ciebie wiadomości.";
+$l['stop_tracking_all'] = "Przestań śledzić wszystkie wiadomości";
+
+$l['enter_keywords'] = "Wpisz słowa kluczowe";
+$l['advanced_search'] = "Zaawansowane wyszukiwanie";
+$l['search_pms'] = "Szukaj";
+$l['advanced_private_message_search'] = "Zaawansowane wyszukiwanie prywatnych wiadomości";
+$l['search_criteria'] = "Kryteria wyszukiwania";
+$l['keywords'] = "SÅ‚owa kluczowe";
+$l['search_in_subject'] = "Wyszukaj w temacie";
+$l['search_in_message'] = "Wyszukaj w treści wiadomości";
+$l['message_status'] = "Status wiadomości";
+$l['message_status_new'] = "Nowa";
+$l['message_status_replied_to'] = "Odpowiedziano na wiadomość";
+$l['message_status_forwarded'] = "Przesłano dalej";
+$l['message_status_read'] = "Przeczytano";
+$l['folder'] = "Folder";
+$l['search_options'] = "Opcje wyszukiwania";
+$l['sort_by'] = "Sortuj według";
+$l['sort_by_subject'] = "tematu";
+$l['sort_by_sender'] = "nadawcy";
+$l['sort_by_date'] = "daty";
+$l['ascending_order'] = "w kolejności rosnącej";
+$l['descending_order'] = "w kolejności malejącej";
+$l['search_private_messages'] = "Szukaj w prywatnych wiadomościach";
+$l['check_all'] = "Zaznacz wszystkie";
+$l['search_user'] = "Szukaj użytkownika";
+
+$l['error_nopmsarchive'] = "Nie znaleziono prywatnych wiadomości spełniających podane kryteria.";
+$l['error_invalidpmfoldername'] = "Wprowadzona nazwa folderu zawiera niedozwolone znaki.";
+$l['error_emptypmfoldername'] = "Wprowadzona nazwa folderu nie zawiera żadnego tekstu. Wpisz nazwę folderu, albo pozostaw ją zupełnie pustą by usunąć folder.";
+$l['error_invalidpmrecipient'] = "Wprowadzony odbiorca nie jest prawidłowy. Wróć i popraw ten błąd.";
+$l['error_invalidpm'] = "Nieprawidłowa PW";
+$l['error_pmrecipientreachedquota'] = "Nie możesz wysłać prywatnej wiadomości do {1}, gdyż ten użytkownik przekroczył limit miejsca na PW. Nie będzie mógł wysłać/odbierać żadnych wiadomości dopóki nie zostanie opróżniona jego skrzynka. Ten użytkownik został powiadomiony e-mailem o zaistniałej sytuacji. Spróbuj wysłać wiadomość później.";
+$l['error_recipientpmturnedoff'] = "{1} wyłączył prywatne wiadomości lub nie ma uprawnień do używania ich. Nie możesz wysłać PW do tego użytkownika.";
+$l['error_pmsturnedoff'] = "Prywatne wiadomości w ustawieniach profilu są wyłączone. Jeśli chcesz korzystać z systemu PW - musisz włączyć go z powrotem.";
+$l['error_recipientignoring'] = "Nie możesz zobaczyć prywatnych wiadomości {1}. Nie masz uprawnień, aby przeprowadzić taką akcję.";
+$l['error_pm_already_submitted'] = "Wysłano już identyczną PW do tego odbiorcy w ciągu ostatnich 5 minut";
+$l['error_nopms'] = "Aby skorzystać z tej funkcji musisz posiadać przynajmniej jedną prywatną wiadomość.";
+
+$l['error_minsearchlength'] = "Jedno lub więcej ze słów kluczowych było krótsze niż jego minimalna długość. Minimalna długość słowa kluczowego to {1} znaków. Jeżeli próbujesz wyszukać dokładną frazę, umieść ją w cudzysłowach. Na przykład \"Zażółć gęślą jaźń\".";
+$l['error_nosearchresults'] = "Wyszukiwanie z podanymi słowami kluczowymi nie zwróciło żadnych wyników. Zmień kryteria wyszukiwania i spróbuj ponownie.";
+$l['error_no_search_support'] = "Ten silnik bazy danych nie obsługuje wyszukiwania.";
+$l['error_nosearchterms'] = "Nie podano żadnych kryteriów wyszukiwania. Jako minimum należy wprowadzić kilka kryteriów wyszukiwania bądź nazwę użytkownika, który wysłał wiadomość.";
+$l['error_searchflooding_1'] = "Nie możesz przeprowadzić kolejnego wyszukiwania, gdyż można przeprowadzać je co {1} sekund. Odczekaj 1 sekundę i spróbuj ponownie.";
+$l['error_searchflooding'] = "Nie możesz przeprowadzić kolejnego wyszukiwania, gdyż można przeprowadzać je co {1} sekund. Odczekaj {2} sekund i spróbuj ponownie.";
+$l['error_invalidsearch'] = "Wpisano nieprawidłowe kryterium. Wróć i spróbuj ponownie.";
+
+$l['redirect_pmsaved'] = "Prywatna wiadomość została zapisana w folderze Szkice.";
+$l['redirect_pmstrackingstopped'] = "Śledzenie zaznaczonych PW zostało zatrzymane.";
+$l['redirect_allpmstrackingstopped'] = "Śledzenie wszystkich PW zostało zatrzymane.";
+$l['redirect_pmstrackingcanceled'] = "Zaznaczone nieprzeczytane PW zostały usunięte ze skrzynki odbiorczej.";
+$l['redirect_pmsmoved'] = "Zaznaczone prywatne wiadomości zostały przeniesione.";
+$l['redirect_pmsdeleted'] = "Zaznaczone prywatne wiadomości zostały usunięte.";
+$l['redirect_pmsent'] = "Prywatna wiadomość została wysłana. Teraz nastąpi przeniesienie do skrzynki odbiorczej.";
+$l['redirect_pmfoldersupdated'] = "Twoje foldery prywatnych wiadomości zostały zapisane. Teraz nastąpi przeniesienie do skrzynki odbiorczej.";
+$l['redirect_pmfoldersemptied'] = "Zaznaczone foldery prywatnych wiadomości zostały opróżnione. Teraz nastąpi przeniesienie do skrzynki odbiorczej.";
+$l['redirect_searchresults'] = "Wyszukiwanie zakończone. Teraz nastąpi przeniesienie do wyników wyszukiwania.";
+
+$l['quick_reply'] = "Szybka odpowiedź";
+$l['message_note'] = "Wprowadź tu swoją odpowiedź na tę wiadomość.";
+$l['send_reply'] = "Odpowiedz";
+$l['quickreply_signature'] = "Sygnatura";
+$l['quickreply_disable_smilies'] = "Wyłącz uśmieszki";
+$l['quickreply_save_copy'] = "Zapisz kopiÄ™";
+$l['quickreply_read_receipt'] = "Zażądaj potwierdzenia przeczytania ";
diff --git a/Upload/inc/languages/polish/ratethread.lang.php b/Upload/inc/languages/polish/ratethread.lang.php
new file mode 100644
index 0000000..ed6e094
--- /dev/null
+++ b/Upload/inc/languages/polish/ratethread.lang.php
@@ -0,0 +1,21 @@
+Zostanie wkrótce sprawdzone przez któregoś z członków ekipy forum.";
+
+$l['error_report_length'] = "Wybierz powód zgłoszenia.";
+$l['error_invalid_report'] = "Zawartość nie istnieje lub nie można jej zgłosić.";
+$l['error_report_duplicate'] = "Ta zawartość została już zgłoszona przez innego użytkownika. Możesz wysłać kolejne zgłoszenie, korzystając z poniższego formularza.";
+$l['report_reason_other_description'] = "Jeżeli wybrano opcję 'Inny powód', podaj powód zgłoszenia.";
diff --git a/Upload/inc/languages/polish/reputation.lang.php b/Upload/inc/languages/polish/reputation.lang.php
new file mode 100644
index 0000000..ae1dcdf
--- /dev/null
+++ b/Upload/inc/languages/polish/reputation.lang.php
@@ -0,0 +1,82 @@
+";
+$l['neg_rep_disabled'] = "* - Przyznawanie ujemnych punktów reputacji zostało wyłączone ";
+$l['pos_rep_disabled'] = "* - Przyznawanie dodatnich punktów reputacji zostało wyłączone ";
+$l['neu_rep_disabled'] = "* - Przyznawanie neutralnych punktów reputacji zostało wyłączone ";
+$l['no_comment_needed'] = "Wynagradzasz użytkownika punktem reputacji za konkretny post - link do tego posta będzie widoczny w jego profilu. Jeżeli chcesz oprócz tego dodać jakiś komentarz, wpisz go w polu poniżej. ";
+$l['no_comment'] = "[brak komentarza]";
+$l['vote_added'] = "Punkt dodany";
+$l['vote_updated'] = "Punkt zaktualizowany";
+$l['vote_deleted'] = "Punkt usunięty";
+$l['vote_added_message'] = "Punkt reputacji został dodany.";
+$l['vote_updated_message'] = "Punkt reputacji został zaktualizowany.";
+$l['vote_deleted_message'] = "Punkt reputacji został usunięty.";
+$l['update_reputation_vote'] = "Zaktualizuj swojÄ… ocenÄ™ dla: {1}";
+$l['positive'] = "Pozytywny";
+$l['negative'] = "Negatywny";
+$l['neutral'] = "Neutralny";
+$l['user_comments'] = "Twoje komentarze dla {1}:";
+$l['add_vote'] = "Dodaj punkt";
+$l['update_vote'] = "Aktualizuj punkt";
+$l['delete_vote'] = "Usuń punkt";
+$l['report_vote'] = "Zgłoś punkt";
+$l['power_positive'] = "Pozytywny ({1})";
+$l['power_neutral'] = "Neutralny";
+$l['power_negative'] = "Negatywny ({1})";
+$l['show_all'] = "Pokaż wszystkie oceny";
+$l['show_positive'] = "Pokaż pozytywne oceny";
+$l['show_neutral'] = "Pokaż neutralne oceny";
+$l['show_negative'] = "Pokaż negatywne oceny";
+$l['sort_updated'] = "posortowane wg daty aktualizacji";
+$l['sort_username'] = "posortowane wg loginu";
+$l['last_updated'] = "Ostatnio zaktualizowano {1}";
+$l['postrep_given'] = "Punkt przyznany za post {3} ";
+$l['postrep_given_thread'] = "w wÄ…tku {2} ";
+$l['no_reputation_votes'] = "Ten użytkownik w tej chwili nie posiada ocen spełniających podane kryteria.";
+$l['delete_reputation_confirm'] = "Czy na pewno chcesz usunąć ten punkt reputacji?";
+$l['delete_reputation_log'] = "Punkty reputacji usunięte przez {1} (UID {2}).";
+$l['reputations_disabled_group'] = "System reputacji jest wyłączony dla użytkowników tej grupy.";
+$l['rate_user'] = "Oceń użytkownika";
diff --git a/Upload/inc/languages/polish/search.lang.php b/Upload/inc/languages/polish/search.lang.php
new file mode 100644
index 0000000..08af5c3
--- /dev/null
+++ b/Upload/inc/languages/polish/search.lang.php
@@ -0,0 +1,111 @@
+{1} wyników wyszukiwania zostało zaznaczonych na tej stronie.";
+$l['all_selected'] = "Wszystkie {1} wyników wyszukiwania zostało zaznaczonych.";
+$l['select_all'] = "Zaznacz wszystkie {1} wyniki wyszukiwania.";
+$l['clear_selection'] = "Usuń zaznaczenie";
+$l['search_user'] = "Szukaj użytkownika";
+
+$l['results'] = "wyniki";
+$l['mod_options'] = "Opcje moderatora";
+$l['display_all'] = "Pokaż wszystkie";
+$l['display_only_approved'] = "Pokaż tylko zaakceptowane";
+$l['display_only_unapproved'] = "Pokaż tylko ukryte";
+$l['display_only_softdeleted'] = "Pokaż tylko nietrwale usunięte";
+
+$l['redirect_searchresults'] = "Teraz nastąpi przeniesienie do wyników wyszukiwania.";
+
+$l['error_minsearchlength'] = "Jedno lub więcej spośród słów kluczowych jest za krótkie. Minimalna długość słowa to {1} znaków. Jeśli próbujesz znaleźć jakąś frazę, obejmij ją cudzysłowami, np. \"ala ma kota\".";
+$l['error_nosearchresults'] = "Nic nie znaleziono.";
+$l['error_no_search_support'] = "Obecnie używany silnik bazy danych nie wspiera wyszukiwania.";
+$l['error_nosearchterms'] = "Nie wprowadzono żadnych zasad wyszukiwania. Musisz wprowadzić przynajmniej jedno kryterium wyszukiwania.";
+$l['error_searchflooding_1'] = "Możesz wykonać tylko jedno wyszukiwanie w ciągu {1} sekund. Poczekaj jeszcze 1 sekundę przed następną próbą.";
+$l['error_searchflooding'] = "Możesz wykonać tylko jedno wyszukiwanie w ciągu {1} sekund. Poczekaj {2} sekund przed następną próbą.";
+$l['error_invalidsearch'] = "Błędne wyszukiwanie. Wróć i spróbuj ponownie.";
diff --git a/Upload/inc/languages/polish/sendthread.lang.php b/Upload/inc/languages/polish/sendthread.lang.php
new file mode 100644
index 0000000..2d60dbd
--- /dev/null
+++ b/Upload/inc/languages/polish/sendthread.lang.php
@@ -0,0 +1,20 @@
+Uwaga: To jest publiczna ankieta, więc każdy może zobaczyć na co zagłosowano.";
+$l['total'] = "Razem";
+$l['vote'] = "Zagłosuj";
+$l['total_votes'] = "{1} głosów";
+$l['you_voted'] = "*) odpowiedź wybrana przez Ciebie";
+$l['poll_closed'] = "Ankieta jest zamknięta.";
+$l['poll_closes'] = "Ankieta zostanie zamknięta {1}";
+$l['already_voted'] = "Już głosowano w tej ankiecie.";
+$l['undo_vote'] = "Cofnij głos";
+$l['quick_reply'] = "Szybka odpowiedź";
+$l['message_note'] = "Wpisz tutaj swoją odpowiedź.";
+$l['signature'] = "Sygnatura";
+$l['email_notify'] = "Powiadomienie";
+$l['disable_smilies'] = "Wyłącz emotikony";
+$l['post_reply'] = "Odpowiedz";
+$l['post_reply_img'] = "Odpowiedz";
+$l['new_reply'] = "Nowa odpowiedź";
+$l['search_button'] = 'Szukaj';
+$l['post_thread'] = "Rozpocznij wÄ…tek";
+$l['preview_post'] = "PodglÄ…d";
+$l['rating_average'] = "{1} głosów - średnia: {2}";
+$l['rate_thread'] = "Oceń ten wątek:";
+$l['thread_rating'] = "Ocena wÄ…tku:";
+$l['similar_threads'] = "Podobne wÄ…tki";
+$l['thread'] = "WÄ…tek:";
+$l['replies'] = "Odpowiedzi:";
+$l['views'] = "Wyświetleń:";
+$l['lastpost'] = "Ostatni post";
+$l['messages_in_thread'] = "Wiadomości w tym wątku";
+$l['users_browsing_thread'] = "Użytkownicy przeglądający ten wątek:";
+$l['users_browsing_thread_guests'] = "{1} gości";
+$l['users_browsing_thread_invis'] = "{1} niewidocznych użytkowników";
+$l['users_browsing_thread_reading'] = "Czyta...";
+$l['inline_soft_delete_posts'] = "Nietrwale usuń posty";
+$l['inline_restore_posts'] = "Przywróć posty";
+$l['inline_delete_posts'] = "Trwale usuń posty";
+$l['inline_merge_posts'] = "Połącz posty";
+$l['inline_split_posts'] = "Oddziel posty";
+$l['inline_move_posts'] = "PrzenieÅ› posty";
+$l['inline_approve_posts'] = "Zatwierdź posty";
+$l['inline_unapprove_posts'] = "Ukryj posty";
+$l['inline_post_moderation'] = "Moderacja zbiorowa:";
+$l['inline_go'] = "OK";
+$l['clear'] = "Wyczyść";
+$l['thread_closed'] = "Wątek zamknięty";
+$l['no_subject'] = "Bez nazwy";
+$l['error_nonextnewest'] = "Nie ma wątków nowszych niż oglądany przed chwilą.";
+$l['error_nonextoldest'] = "Nie ma wątków starszych niż oglądany przed chwilą.";
+$l['quickreply_multiquote_selected'] = "Zaznaczono 1 lub więcej postów do zacytowania.";
+$l['quickreply_multiquote_now'] = "Zacytuj te posty teraz";
+$l['or'] = "lub";
+$l['quickreply_multiquote_deselect'] = "odznacz je";
+$l['search_thread'] = "Przeszukaj wÄ…tek";
+$l['enter_keywords'] = "Wpisz słowa kluczowe";
+$l['image_verification'] = "Potwierdzenie kodem";
+$l['verification_note'] = "Przepisz tekst z obrazka po lewej do poniższego pola tekstowego. Taki proces jest niezbędny, by zapobiec wysyłaniu wiadomości przez automaty.";
+$l['verification_subnote'] = "(wielkość znaków nie ma znaczenia)";
+$l['view_thread_notes'] = "Notatki do wÄ…tku";
+$l['view_all_notes'] = "Zobacz wszystkie notatki";
+
+$l['save_changes'] = 'Zapisz zmiany';
+$l['cancel_edit'] = 'Anuluj edycjÄ™';
+$l['quick_edit_update_error'] = 'Podczas edytowania odpowiedzi wystąpił błąd:';
+$l['quick_reply_post_error'] = 'Podczas dodawania odpowiedzi wystąpił błąd:';
+$l['quick_delete_error'] = 'Podczas usuwania odpowiedzi wystąpił błąd:';
+$l['quick_delete_success'] = 'Post został usunięty.';
+$l['quick_delete_thread_success'] = 'Wątek został usunięty.';
+$l['quick_restore_error'] = 'Podczas przywracania odpowiedzi wystąpił błąd:';
+$l['quick_restore_success'] = 'Post został przywrócony.';
diff --git a/Upload/inc/languages/polish/stats.lang.php b/Upload/inc/languages/polish/stats.lang.php
new file mode 100644
index 0000000..0d5649b
--- /dev/null
+++ b/Upload/inc/languages/polish/stats.lang.php
@@ -0,0 +1,37 @@
+{1} ({2} postów)";
+$l['popular_forum'] = "Najpopularniejszy dział: {1} ({2} postów, {3} wątków)";
+$l['most_popular'] = "Najpopularniejsze wÄ…tki";
+$l['most_replied_threads'] = "Najwięcej odpowiedzi";
+$l['most_viewed_threads'] = "Najwięcej wyświetleń";
+$l['not_enough_info_stats'] = "Aby można było wygenerować statystyki, potrzebny jest przynajmniej jeden użytkownik i jeden wątek.";
+$l['replies'] = "odpowiedzi";
+$l['views'] = "wyświetleń";
+$l['top_referrer'] = "Najwięcej poleconych użytkowników: {1} ({2} )";
diff --git a/Upload/inc/languages/polish/syndication.lang.php b/Upload/inc/languages/polish/syndication.lang.php
new file mode 100644
index 0000000..a2f4039
--- /dev/null
+++ b/Upload/inc/languages/polish/syndication.lang.php
@@ -0,0 +1,13 @@
+Strona główna zawiera informacje o Tobie.";
+$l['account_summary'] = "Podsumowanie konta";
+$l['username'] = "Użytkownik:";
+$l['user_id'] = "ID użytkownika:";
+$l['title'] = "Tytuł:";
+$l['postnum'] = "Postów:";
+$l['posts_day'] = "({1} dziennie | {2} procent wszystkich postów)";
+$l['additional_contact_details'] = "Dodatkowe informacje kontaktowe";
+$l['email'] = "E-mail:";
+$l['reputation'] = "Reputacja:";
+$l['website'] = "Strona WWW:";
+$l['usergroup'] = "Grupa";
+$l['birthday'] = "Data urodzenia:";
+$l['birthdayprivacy'] = "Poufność daty urodzenia:";
+$l['birthdayprivacyall'] = "Wyświetl wiek i datę urodzenia";
+$l['birthdayprivacynone'] = "Ukryj wiek i datÄ™ urodzenia";
+$l['birthdayprivacyage'] = "Wyświetl tylko wiek";
+$l['avatar'] = "Awatar:";
+$l['avatar_mine'] = "To jest Twój aktualny awatar";
+$l['change_avatar'] = "Zmień awatar";
+$l['avatar_url'] = "Link do awatara:";
+$l['avatar_url_note'] = "Wprowadź URL awatara.";
+$l['avatar_url_gravatar'] = "Aby skorzystać z Gravatara , wprowadź tu adres e-mail, jakiego używasz w tym serwisie.";
+$l['avatar_upload'] = "Awatar z dysku:";
+$l['avatar_upload_note'] = "Wybierz awatar ze swojego komputera.";
+$l['no_avatar'] = "Brak awatara";
+$l['no_avatar_note'] = "Zaznacz tę opcję, jeśli nie chcesz używać awatara.";
+$l['change_username'] = "Zmień login";
+$l['new_username'] = "Nowy login:";
+$l['update_username'] = "Aktualizuj login";
+$l['edit_lists'] = "Edytuj listÄ™ znajomych i ignorowanych";
+$l['edit_buddy_list'] = "Edytuj listÄ™ znajomych";
+$l['edit_ignore_list'] = "Edytuj listÄ™ ignorowanych";
+$l['users_added_to_ignore_list'] = "Wybrani użytkownicy zostali dodani do listy ignorowanych";
+$l['users_added_to_buddy_list'] = "Wybrani użytkownicy zostali dodani do listy znajomych";
+$l['removed_from_ignore_list'] = "Usunięto użytkownika {1} z listy ignorowanych";
+$l['removed_from_buddy_list'] = "Usunięto użytkownika {1} z listy znajomych";
+$l['cant_add_self_to_ignore_list'] = "Nie możesz dodać siebie do swojej listy ignorowanych.";
+$l['cant_add_self_to_buddy_list'] = "Nie możesz dodać siebie do swojej listy znajomych.";
+$l['users_already_on_ignore_list'] = "Nie można dodawać wielokrotnie tego samego użytkownika na listę ignorowanych.";
+$l['users_already_on_ignore_list_alt'] = "Nie można dodawać do listy ignorowanych użytkowników, którzy znajdują się na liście znajomych.";
+$l['users_already_on_buddy_list'] = "Nie można dodawać wielokrotnie tego samego użytkownika na listę znajomych.";
+$l['users_already_on_buddy_list_alt'] = "Nie można dodawać do listy znajomych użytkowników, którzy znajdują się na liście ignorowanych.";
+$l['invalid_user_selected'] = "Jeden lub więcej wybranych użytkowników nie zostało znalezionych.";
+$l['ignore_list_empty'] = "Lista ignorowanych jest pusta. By dodać do niej kogoś, użyj pola powyżej.";
+$l['buddy_list_empty'] = "Lista znajomych jest pusta. By dodać do niej kogoś, użyj pola powyżej.";
+$l['confirm_remove_buddy'] = "Usunąć tego użytkownika z listy znajomych?";
+$l['confirm_remove_ignored'] = "Usunąć tego użytkownika z listy ignorowanych?";
+$l['adding_buddy'] = "Dodawanie znajomego...";
+$l['adding_ignored'] = "Dodawanie do ignorowanych...";
+$l['add_buddies'] = "Dodaj użytkowników do swojej listy znajomych";
+$l['add_buddies_desc'] = "By dodać użytkowników do swojej listy znajomych, wpisz ich loginy w polu poniżej. Możesz wpisać kilka loginów, oddzielając je przecinkami.";
+$l['username_or_usernames'] = "Użytkownicy:";
+$l['add_to_buddies'] = "Dodaj znajomych";
+$l['current_buddies'] = "Masz w tej chwili {1} użytkowników na liście znajomych";
+$l['add_ignored_users'] = "Dodaj użytkowników do swojej listy ignorowanych";
+$l['add_ignored_users_desc'] = "By zacząć ignorować posty i prywatne wiadomości od wybranych użytkowników, wpisz ich loginy w polu poniżej. Możesz wpisać kilka loginów naraz, oddzielając je przecinkami.";
+$l['ignore_users'] = "Ignoruj";
+$l['current_ignored_users'] = "Masz w tej chwili {1} użytkowników na liście ignorowanych";
+$l['online'] = "Online";
+$l['offline'] = "Offline";
+$l['remove_from_list'] = "Usuń z listy";
+$l['edit_sig'] = "Edytuj sygnaturÄ™";
+$l['edit_sig_note'] = "Możesz tutaj wprowadzić krótką wiadomość, która będzie widoczna pod Twoimi postami.";
+$l['edit_sig_note2'] = "Emotikony są {1}. MyCode jest {2}. [img] są {3}. HTML jest {4}. Limit znaków wynosi {5}.";
+$l['edit_sig_error_title'] = "Wystąpił błąd:";
+$l['edit_sig_no_permission'] = "Nie masz uprawnień do edytowania swojej sygnatury.";
+$l['characters_remaining'] = "znaków pozostało";
+$l['enable_sig_posts'] = "WÅ‚Ä…cz mojÄ… sygnaturÄ™ we wszystkich moich istniejÄ…cych postach.";
+$l['disable_sig_posts'] = "Wyłącz moją sygnaturę we wszystkich moich istniejących postach.";
+$l['leave_sig_settings'] = "Bez zmian.";
+$l['update_sig'] = "Aktualizuj sygnaturÄ™";
+$l['preview'] = "PodglÄ…d";
+$l['current_sig'] = "Aktualna sygnatura";
+$l['sig_preview'] = "PodglÄ…d";
+
+$l['sig_suspended'] = "Możliwość posiadania przez Ciebie sygnatury została wyłączona.";
+$l['sig_suspended_posts'] = "Musisz napisać co najmniej {1} postów, zanim będzie można dodać sygnaturę.";
+
+$l['change_email'] = "Zmień e-mail";
+$l['please_enter_confirm_new_email'] = "Wprowadź i potwierdź swój nowy e-mail";
+$l['new_email'] = "Nowy adres e-mail:";
+$l['confirm_email'] = "Potwierdź adres e-mail:";
+$l['update_email'] = "Aktualizuj e-mail";
+$l['thread'] = "WÄ…tek";
+$l['author'] = "Autor";
+$l['replies'] = "Odpowiedzi";
+$l['views'] = "Wyświetleń";
+$l['lastpost'] = "Ostatni post";
+$l['post_reply'] = "Odpowiedz";
+$l['forum_subscriptions'] = "Subskrypcje działów";
+$l['posts'] = "Postów";
+$l['forum'] = "Dział";
+$l['threads'] = "Wątków";
+$l['unsubscribe'] = "Anuluj subskrybcjÄ™";
+$l['new_thread'] = "Nowy wÄ…tek";
+$l['personal_notepad'] = "Osobisty notatnik";
+$l['update_notepad'] = "Aktualizuj";
+$l['edit_options'] = "Edytuj opcje";
+$l['login_cookies_privacy'] = "Prywatność";
+$l['invisible_mode'] = "Nie pokazuj mnie na liście osób online.";
+$l['invisible_mode_desc'] = "Zaznaczając \"tak\" Twój login nie będzie widoczny na liście osób online.";
+$l['messaging_notification'] = "Wiadomości i powiadomienia";
+$l['allow_notices'] = "Dostarczaj wiadomości od administratorów.";
+$l['allow_notices_desc'] = "Jeśli zaznaczysz \"tak\", na Twój e-mail będą wysyłane informacje i wiadomości od administratora.";
+$l['allow_emails'] = "Ukryj swój adres e-mail.";
+$l['allow_emails_desc'] = "Jeśli zaznaczysz \"tak\", użytkownicy będą mogli wysłać do Ciebie e-maila tylko przez formularz.";
+$l['email_notify'] = "Automatycznie subskrybuj wątki w których się wypowiadam.";
+$l['email_notify_desc'] = "Jeśli zaznaczysz \"tak\", wątki w których odpowiesz będą automatycznie dodawane do listy subskrybowanych.";
+$l['receive_pms'] = "Dostarczaj prywatne wiadomości od innych użytkowników.";
+$l['receive_pms_desc'] = "Włącza możliwość odbierania i wysyłania prywatnych wiadomości.";
+$l['receive_from_buddy'] = "Dostarczaj prywatne wiadomości tylko od użytkowników z mojej listy znajomych .";
+$l['pm_notice'] = "Powiadom mnie, gdy otrzymam nową prywatną wiadomość.";
+$l['pm_notify'] = "Powiadom mnie e-mailem kiedy dostanę nową prywatną wiadomość.";
+$l['show_codebuttons'] = "Pokaż opcje formatowania MyCode w czasie pisania postów.";
+$l['source_editor'] = "Zmień domyślny tryb edytora na pokazywanie kodu";
+$l['show_redirect'] = "Pokaż strony przekierowujące.";
+$l['thread_view_options'] = "Opcje wyświetlania wątków";
+$l['thread_mode'] = "Tryb wyświetlania wątków:";
+$l['thread_mode_desc'] = "Styl wyświetlania wątków. Wybierz \"Użyj domyślnego\" jeśli chcesz przeglądać w trybie domyślnym.";
+$l['use_default'] = "Użyj domyślnego";
+$l['threaded'] = "Drzewo";
+$l['linear'] = "Standardowy";
+$l['show_classic_postbit'] = "Wyświetlaj posty w trybie klasycznym.";
+$l['show_images'] = "Wyświetlaj obrazki w postach.";
+$l['show_videos'] = "Wyświetaj pliki wideo w postach.";
+$l['show_sigs'] = "Pokazuj sygnatury użytkowników pod ich postami.";
+$l['show_sigs_desc'] = "Czy chcesz widzieć sygnatury innych użytkowników?";
+$l['show_avatars'] = "Pokazuj awatary użytkowników przy ich postach.";
+$l['show_avatars_desc'] = "Czy chcesz widzieć awatary innych użytkowników?";
+$l['show_quick_reply'] = "Pokazuj okienko szybkiej odpowiedzi.";
+$l['show_quick_reply_desc'] = "Okienko szybkiej odpowiedzi pozwala na szybką odpowiedź w wątku. Będzie wyświetlane u dołu strony z wątkiem.";
+$l['forum_display_options'] = "Opcje wyświetlania działów";
+$l['thread_view'] = "Ilość wyświetlanych wątków:";
+$l['thread_view_lastday'] = "Pokaż wątki z ostatniego dnia";
+$l['thread_view_5days'] = "Pokaż wątki z ostatnich 5 dni";
+$l['thread_view_10days'] = "Pokaż wątki z ostatnich 10 dni";
+$l['thread_view_20days'] = "Pokaż wątki z ostatnich 20 dni";
+$l['thread_view_50days'] = "Pokaż wątki z ostatnich 50 dni";
+$l['thread_view_75days'] = "Pokaż wątki z ostatnich 75 dni";
+$l['thread_view_100days'] = "Pokaż wątki z ostatnich 100 dni";
+$l['thread_view_year'] = "Pokaż wątki z ostatniego roku";
+$l['thread_view_all'] = "Pokaż wszystkie wątki";
+$l['date_time_options'] = "Opcje daty i czasu";
+$l['date_format'] = "Format daty:";
+$l['date_format_desc'] = "Format, w którym będą pokazywane daty.";
+$l['time_format'] = "Format czasu:";
+$l['time_format_desc'] = "Format, w którym będzie pokazywany czas.";
+$l['time_offset'] = "Strefa czasowa (czas zimowy):";
+$l['time_offset_desc'] = "Jeżeli mieszkasz w innej strefie czasowej niż domyślna dla tego forum, możesz ją wybrać z listy poniżej.";
+$l['gmt'] = "UTC";
+$l['dst_correction'] = "Ustawienia czasu letniego:";
+$l['dst_correction_auto'] = "Automatycznie wykryj czas letni";
+$l['dst_correction_enabled'] = "Zawsze używaj czasu letniego";
+$l['dst_correction_disabled'] = "Nigdy nie używaj czasu letniego";
+$l['board_language'] = "Język forum";
+$l['other_options'] = "Inne opcje";
+$l['style'] = "Styl forum:";
+$l['style_desc'] = "Jeśli nie podoba Ci się domyślny styl forum - tutaj możesz wybrać inny.";
+$l['update_options'] = "Aktualizuj opcje";
+$l['tpp_option'] = "Pokaż {1} wątków na stronę";
+$l['ppp_option'] = "Pokaż {1} postów na stronę";
+$l['ppp'] = "Ilość postów na stronę:";
+$l['ppp_desc'] = "Pozwala na wybranie liczby postów wyświetlanych na jedną stronę wątku.";
+$l['tpp'] = "Ilość wątków na stronę:";
+$l['tpp_desc'] = "Pozwala na wybranie liczby wątków wyświetlanych na jedną stronę działu.";
+$l['change_password'] = "Zmień hasło";
+$l['current_password'] = "Obecne hasło";
+$l['password_confirmation'] = "Potwierdź hasło";
+$l['please_enter_confirm_new_password'] = "Wprowadź i potwierdź nowe hasło";
+$l['new_password'] = "Nowe hasło:";
+$l['confirm_password'] = "Potwierdź hasło:";
+$l['update_password'] = "Aktualizuj hasło";
+$l['edit_profile'] = "Edytuj profil";
+$l['profile_required'] = "Wymagane pola";
+$l['change_email_notice'] = "Aby zmienić adres e-mail, kliknij tutaj .";
+$l['profile_optional'] = "Niewymagane pola";
+$l['website_url'] = "Strona domowa:";
+$l['birthdate'] = "Urodziny:";
+$l['contact_field_icq'] = "Numer ICQ:";
+$l['contact_field_aim'] = "Nazwa użytkownika AIM:";
+$l['contact_field_yahoo'] = "Identyfikator Yahoo:";
+$l['contact_field_skype'] = "Identyfikator Skype:";
+$l['contact_field_google'] = "Identyfikator Google Talk:";
+$l['additional_information'] = "Dodatkowe informacje";
+$l['update_profile'] = "Aktualizuj profil";
+$l['away_information'] = "Dostępność";
+$l['away_status'] = "Status:";
+$l['away_status_desc'] = "Pozwala na wpisanie wiadomości informującej o nieobecności.";
+$l['im_away'] = "Niedostępny";
+$l['im_here'] = "Dostępny";
+$l['away_reason'] = "Powód nieobecności:";
+$l['away_reason_desc'] = "Pozwala Ci na wpisanie krótkiego powodu nieobecności (maksymalnie 200 znaków).";
+$l['return_date'] = "Data powrotu:";
+$l['return_date_desc'] = "Wpisz tu datÄ™ powrotu, o ile jÄ… znasz.";
+$l['subscriptions'] = "Subskrypcje wątków";
+$l['remove_all_subscriptions'] = "Usuń wszystkie subskrypcje";
+$l['no_thread_subscriptions'] = "Aktualnie nie subskrybujesz żadnych wątków.Aby zacząć subskrybować wątek:
Otwórz wątek który chcesz subskrybować. Kliknij na link \"Subskrybuj ten wątek\" znajdujący się na końcu strony. ";
+$l['no_forum_subscriptions'] = "Aktualnie nie subskrybujesz żadnych działów.Aby zacząć subskrybować dział:
Otwórz dział który chcesz subskrybować. Kliknij na link \"Subskrybuj ten dział\" znajdujący się na końcu strony. ";
+$l['no_drafts'] = "Aktualnie nie masz żadnych szkiców.Aby zapisać szkic posta lub wątku:
Przejdź do strony pisania posta (napisz nowy wątek lub odpowiedz na istniejący). Napisz swoją wypowiedź. Kliknij na przycisk \"Zapisz jako szkic\". ";
+$l['drafts'] = "Zapisane szkice";
+$l['drafts_count'] = "Zapisane szkice ({1})";
+$l['draft_saved'] = "Zapisane";
+$l['edit_draft'] = "Edytuj szkic";
+$l['draft_title'] = "Tytuł szkicu";
+$l['delete_drafts'] = "Usuń zaznaczone szkice";
+$l['draft_options'] = "Opcje szkicu";
+$l['selected_drafts_deleted'] = "Zaznaczone szkice zostały usunięte. Teraz nastąpi przeniesienie do listy szkiców.";
+$l['no_drafts_selected'] = "Nie zaznaczono żadnych szkiców do usunięcia";
+$l['too_many_sig_images'] = "Nie możemy przyjąć nowej sygnatury, gdyż zawiera zbyt dużo obrazków. Usuń zbędne obrazki i spróbuj ponownie.";
+$l['too_many_sig_images2'] = "Uwaga: Maksymalna liczba obrazków na sygnaturę to {1}.";
+$l['sig_too_long'] = "Nie możesz zaktualizować sygnatury, gdyż jest za długa. Maksymalny rozmiar sygnatury to {1} znaków. ";
+$l['sig_remove_chars_plural'] = "Skróć ją o {1} znaków i spróbuj ponownie.";
+$l['sig_remove_chars_singular'] = "Skróć ją o 1 znak i spróbuj ponownie.";
+$l['group_memberships'] = "Członkostwo";
+$l['not_member_of_group'] = "Nie możesz wykonać tej akcji, gdyż nie jesteś użytkownikiem tej grupy.";
+$l['cannot_set_displaygroup'] = "Ta grupa nie może zostać ustawiona jako domyślna.";
+$l['display_group_changed'] = "Wyświetlana grupa została zaktualizowana. Teraz nastąpi przeniesienie do strony zarządzania grupami.";
+$l['usergroups_memberof'] = "Aktualnie jesteś członkiem grup:";
+$l['usertitle'] = "Tytuł";
+$l['usergroup_leave'] = "Opuść grupę";
+$l['usergroup_leave_primary'] = "(nie możesz opuścić głównej grupy)";
+$l['usergroup_leave_leader'] = "(jesteÅ› liderem tej grupy)";
+$l['usergroup_joins_moderated'] = "Lider grupy rozpatruje prośby o przyjęcie.";
+$l['usergroup_joins_invite'] = "Aby móc dołączyć do tej grupy, musisz najpierw otrzymać zaproszenie od jej lidera.";
+$l['usergroup_cannot_leave'] = "(nie możesz opuścić tej grupy)";
+$l['usergroup_joins_anyone'] = "Każdy może dołączyć do tej grupy.";
+$l['usergroup_leaders'] = "Liderzy grupy:";
+$l['usergroups_joinable'] = "Grupy, do których możesz dołączyć";
+$l['join_conditions'] = "Warunki dołączenia";
+$l['join_group'] = "Dołącz do grupy";
+$l['join_group_applied'] = "Poproszono o członkostwo w grupie: {1}";
+$l['pending_invitation'] = "Otrzymano zaproszenie do grupy: Zaakceptuj zaproszenie ";
+$l['usergroups_leader'] = "Grupy, którym przewodniczysz";
+$l['usergroup_members'] = "Użytkownicy grupy";
+$l['join_requests'] = "Nierozpatrzone prośby o przyjęcie";
+$l['request_join_usergroup'] = "Poproś o członkostwo w tej grupie";
+$l['join_group_moderate_note'] = "Wszystkie prośby o członkostwo w tej grupie muszą zostać zatwierdzone przez lidera grupy.";
+$l['user_group'] = "Grupa:";
+$l['usergroups_usergroup'] = "Grupa użytkownika";
+$l['join_reason'] = "Powód:";
+$l['send_join_request'] = "Wyślij prośbę";
+$l['cannot_join_group'] = "Nie możesz dołączyć do tej grupy, gdyż nie jest ona publiczną grupą.";
+$l['cannot_join_invite_group'] = "Do dołączenia do tej grupy wymagane jest otrzymanie zaproszenia od jej lidera.";
+$l['no_pending_invitation'] = "Nie masz żadnych oczekujących zaproszeń do tej grupy.";
+$l['already_accepted_invite'] = "Zaproszenie do tej grupy zostało już zaakceptowane.";
+$l['already_member_of_group'] = "Nie możesz dołączyć do grupy, w której już jesteś.";
+$l['already_sent_join_request'] = "Już wcześniej wysłano prośbę o przyjęcie.";
+$l['group_join_requestsent'] = "Prośba o przyjęcie została wysłana. Gdy zostanie zatwierdzona, automatycznie zostaniesz członkiem tej grupy. Nastąpi teraz przeniesienie do zarządzania grupami.";
+$l['joined_group'] = "Dołączono Cię do tej grupy. Nastąpi teraz przeniesienie do zarządzania grupami.";
+$l['cannot_leave_primary_group'] = "Nie możesz opuścić głównej grupy.";
+$l['left_group'] = "Usunięto Cię z grupy. Nastąpi teraz przeniesienie do zarządzania grupami.";
+$l['avatar_note'] = "Awatar to mały obrazek widoczny przy każdej wypowiedzi użytkownika.";
+$l['avatar_note_dimensions'] = "Maksymalne wymiary awatara to {1}x{2} pikseli.";
+$l['avatar_note_size'] = "Maksymalny rozmiar awatara to {1}.";
+$l['custom_avatar'] = "WÅ‚asny awatar";
+$l['remove_avatar'] = "Usuń awatar";
+$l['attachments_manager'] = "Menadżer załączników";
+$l['attachments_attachment'] = "Załącznik";
+$l['attachments_post'] = "Dodaj";
+$l['delete_attachments'] = "Usuń zaznaczone załączniki";
+$l['attachment_size_downloads'] = "({1}, {2} pobrań)";
+$l['attachment_thread'] = "wÄ…tek:";
+$l['no_attachments'] = "Aktualnie nie posiadasz żadnych załączników.";
+$l['date_uploaded'] = "Dodano";
+$l['no_attachments_selected'] = "Nie zaznaczono żadnych załączników do usunięcia.";
+$l['attachments_deleted'] = "Zaznaczone załączniki zostały usunięte. Teraz nastąpi przeniesienie do menadżera załączników.";
+$l['attachments_usage_quota'] = "- Używasz {1} z {2} ({3}) z {4} załączników";
+$l['attachments_usage'] = "- {1} z {2} załączników";
+$l['attachments_stats'] = "Statystyki załączników";
+$l['attachstats_attachs'] = "Liczba załączników";
+$l['attachstats_spaceused'] = "Użyta przestrzeń";
+$l['attachstats_quota'] = "Miejsce do wykorzystania";
+$l['attachstats_totaldl'] = "Razem pobrań";
+$l['attachstats_bandwidth'] = "Użycie transferu";
+$l['error_avatartoobig'] = "Awatar jest zbyt duży. Maksymalne wymiary to {1}x{2}.";
+$l['error_invalidavatarurl'] = "Link do awatara nie jest prawidłowy. Wprowadź prawidłowy link.";
+$l['custom_usertitle'] = "Tytuł użytkownika";
+$l['new_custom_usertitle'] = "Nowy tytuł użytkownika (zostaw puste, aby użyć już istniejącego):";
+$l['custom_usertitle_note'] = "Tutaj możesz przypisać dowolny tytuł użytkownika. Zastąpi on nazwę grupy.";
+$l['default_usertitle'] = "Domyślny tytuł użytkownika:";
+$l['current_custom_usertitle'] = "Aktualny tytuł użytkownika:";
+$l['revert_usertitle'] = "Przywróć domyślny tytuł użytkownika";
+$l['primary_usergroup'] = "Główna grupa użytkownika:";
+$l['display_group'] = "Grupa wyświetlana";
+$l['set_as_display_group'] = "Ustaw jako wyświetlaną grupę";
+$l['registration_date'] = "Data rejestracji:";
+$l['view_members'] = "Pokaż użytkowników";
+$l['view_requests'] = "Prośby o przyjęcie";
+$l['cannot_leave_group'] = "Nie możesz opuścić tej grupy, gdyż to nie jest publiczna grupa.";
+$l['details'] = "Szczegóły";
+$l['members_referred'] = "Poleconych użytkowników:";
+$l['referral_link'] = " Aby polecić to forum swoim znajomym, wyślij do nich odnośnik: {1}/member.php?action=register&referrer={2}";
+$l['redirect_subscriptionsremoved'] = "Lista subskrybowanych wątków została wyczyszczona. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_forumsubscriptionsremoved'] = "Lista subskrybowanych działów została wyczyszczona. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_subscriptionadded'] = "Wskazany wątek został dodany do listy subskrybowanych. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_optionsupdated'] = "Twój profil został zaktualizowany.";
+$l['redirect_subscriptionremoved'] = "Wskazany wątek został usunięty z listy subskrybowanych.";
+$l['redirect_sigupdated'] = "Sygnatura została zaktualizowana. Teraz nastąpi przeniesienie do strony edycji sygnatury.";
+$l['redirect_notepadupdated'] = "Twój osobisty notatnik został zaktualizowany. Teraz nastąpi przeniesienie do panelu użytkownika.";
+$l['redirect_profileupdated'] = "Twój profil został zaktualizowany. Teraz nastąpi przeniesienie do panelu użytkownika.";
+$l['redirect_forumsubscriptionadded'] = "Wskazany dział został dodany do listy subskrybowanych. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_forumsubscriptionremoved'] = "Wskazany dział został usunięty z listy subskrybowanych. Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['redirect_namechanged'] = "Twój login został zaktualizowany. Teraz nastąpi przeniesienie do panelu użytkownika.";
+$l['redirect_emailupdated'] = "Twój adres e-mail został zaktualizowany. Teraz nastąpi przeniesienie do panelu użytkownika.";
+$l['redirect_passwordupdated'] = "Hasło zostało zaktualizowane. Teraz nastąpi przeniesienie do panelu użytkownika.";
+$l['redirect_changeemail_activation'] = "Twój adres e-mail został zaktualizowany. Musisz jeszcze potwierdzić zmianę.E-mail z dalszymi informacjami został wysłany na podany przez Ciebie adres.
";
+$l['redirect_avatarupdated'] = "Twój awatar został zaktualizowany. Teraz nastąpi przeniesienie do panelu użytkownika.";
+$l['error_noavatar'] = "Musisz wybrać awatar. Wróć i wybierz go. Jeśli nie chcesz mieć awatara, wybierz opcję \"Brak awatara\".";
+$l['error_avatartype'] = "Nieprawidłowy typ pliku. Awatar musi być w formacie GIF, JPEG lub PNG.";
+$l['error_alreadyingroup'] = "Wskazany użytkownik jest już w jakiejś grupie.";
+$l['error_usercp_return_date_past'] = "Nie możesz wrócić w przeszłości!";
+$l['error_avatarresizefailed'] = "Nie udało się zmienić rozmiarów awatara tak, by spełniał wymagania ustalone przez administratora.";
+$l['error_avataruserresize'] = "Możesz spróbować zaznaczyć pole \"spróbuj zmienić rozmiar mojego awatara\" i wysłać ten sam obrazek jeszcze raz.";
+$l['avatar_auto_resize_note'] = "Jeżeli Twój awatar jest zbyt duży, zostanie automatycznie przeskalowany do wymaganych rozmiarów.";
+$l['avatar_auto_resize_option'] = "Zmniejsz rozmiary awatara, jeżeli będą za duże.";
+$l['subscribe_to_thread'] = "Subskrybuj wÄ…tek: {1}";
+$l['notification_method'] = "Metoda powiadamiania:";
+$l['no_notification'] = "Bez powiadamiania";
+$l['no_notification_desc'] = "Nie otrzymasz powiadomienia, gdy ktoÅ› odpowie w wÄ…tku.";
+$l['email_notification'] = "Powiadamianie e-mail";
+$l['email_notification_desc'] = "Będą wysyłane do Ciebie wiadomości e-mail, gdy ktoś odpowie w wątku.";
+$l['pm_notification'] = "Powiadamianie przez PW";
+$l['pm_notification_desc'] = "Będą wysyłane do Ciebie prywatne wiadomości, gdy ktoś odpowie w wątku.";
+$l['do_subscribe'] = "Subskrybuj wÄ…tek";
+$l['subscription_method'] = "Domyślny sposób subskrypcji wątku:";
+$l['no_auto_subscribe'] = "Nie subskrybuj";
+$l['no_subscribe'] = "Bez powiadamiania";
+$l['instant_email_subscribe'] = "Powiadomienie e-mail";
+$l['instant_pm_subscribe'] = "Powiadamianie przez PW";
+$l['with_selected'] = "Zaznaczone:";
+$l['delete_subscriptions'] = "Anuluj subskrypcjÄ™";
+$l['update_no_notification'] = "przestań powiadamiać e-mailem";
+$l['update_email_notification'] = "zacznij powiadamiać e-mailem";
+$l['update_pm_notification'] = "zacznij powiadamiać przez PW";
+$l['no_subscriptions_selected'] = "Nie wybrano subskrypcji na jakich ma być przeprowadzona ta czynność.";
+$l['redirect_subscriptions_updated'] = "Wybrane subskrypcje zostały zmodyfikowane.";
+$l['latest_threads'] = "Twoje najnowsze wÄ…tki";
+$l['find_all_threads'] = "Znajdź wszystkie moje wątki";
+$l['new_thread_subscriptions'] = "Subskrypcje wątków z nowymi odpowiedziami";
+$l['view_all_subscriptions'] = "Pokaż wszystkie subskrypcje";
+$l['latest_warnings'] = "Ostatnio otrzymane ostrzeżenia";
+$l['current_warning_level'] = "Aktualny poziom ostrzeżeń: {1}% ({2}/{3})";
+$l['warning'] = "Ostrzeżenie";
+$l['date_issued'] = "Data wystawienia";
+$l['expiry_date'] = "Data przedawnienia";
+$l['issued_by'] = "Wystawione przez";
+$l['warning_for_post'] = "za post: ";
+$l['warning_revoked'] = "Zniesione";
+$l['already_expired'] = "Przedawnione";
+$l['warning_points'] = "({1} punktów)";
+$l['new_posts_thread'] = "Nowe posty";
+$l['new_hot_thread'] = "Popularny wÄ…tek (nowe)";
+$l['posts_by_you'] = "Zawiera Twoje posty";
+$l['no_new_thread'] = "Brak nowych postów";
+$l['hot_thread'] = "Popularny wÄ…tek (brak nowych)";
+$l['locked_thread'] = "Zamknięty wątek";
+$l['icon_dot'] = "Zawiera posty napisane przez Ciebie. "; // The spaces for the icon labels are strategically placed so that there should be no extra space at the beginning or end of the resulting label and that spaces separate each 'status' ;)
+$l['icon_no_new'] = "Brak nowych postów.";
+$l['icon_new'] = "Zawiera nowe posty.";
+$l['icon_hot'] = " GorÄ…cy wÄ…tek.";
+$l['icon_lock'] = " Zamknięty wątek.";
+$l['search_user'] = "Szukaj użytkownika";
+
+$l['buddylist_error'] = 'Podczas pobierania listy znajomych wystąpił błąd.';
+
+$l['buddyrequests_sent'] = 'Wysłane zaproszenia do znajomych';
+$l['buddyrequests_received'] = 'Otrzymane zaproszenia do znajomych';
+$l['from'] = 'Od';
+$l['to'] = 'Do';
+$l['date'] = 'Data';
+$l['options'] = 'Opcje';
+$l['accept'] = 'Akceptuj';
+$l['decline'] = 'Odrzuć';
+$l['cancel'] = 'Anuluj';
+$l['no_requests'] = 'Brak zaproszeń.';
+$l['buddyrequests_pm'] = 'Otrzymuj powiadomienia na PW po otrzymaniu nowego zaproszenia.';
+$l['buddyrequests_auto'] = 'Automatyczne akceptowanie zaproszeń do znajomych (jeżeli poprzednie pole zostanie również zaznaczone, będziesz otrzymywać PW, informujące o nowym znajomym)';
+$l['buddyrequest_received'] = 'Otrzymano zaproszenie do znajomych';
+$l['buddyrequest_new_buddy'] = 'Masz nowego znajomego';
+$l['buddyrequest_new_buddy_message'] = "Cześć,\n\nWysłane przeze mnie zaproszenie zostało automatycznie zaakceptowane.";
+$l['buddyrequest_accepted_request'] = 'Zaakceptowane zaproszenie do znajomych';
+$l['buddyrequest_accepted_request_message'] = "Cześć,\n\nTwoje zaproszenie do znajomych zostało przeze mnie zaakceptowane.";
+$l['buddyrequest_received_message'] = "Chcę Cię dodać do mojej listy znajomych.\nMożesz zobaczyć wszystkie zaproszenia, przechodząc do Panelu użytkownika -> Znajomi i ignorowani.";
+$l['users_already_sent_request'] = "Przynajmniej jeden z dodanych użytkowników otrzymał już od ciebie zaproszenie.";
+$l['users_already_rec_request'] = "Przynajmniej jeden z dodanych użytkowników już ci wysłał zaproszenie.";
+$l['users_already_sent_request_alt'] = "Przynajmniej jeden z dodanych użytkowników otrzymał już od ciebie zaproszenie. Musisz anulować to zaproszenie przed dodaniem go do listy ignorowanych.";
+$l['users_already_rec_request_alt'] = "Przynajmniej jeden z dodanych użytkowników już ci wysłał zaproszenie. Musisz odrzucić to zaproszenie przed dodaniem go do listy ignorowanych.";
+$l['invalid_request'] = 'Wybrano nieprawidłowe zaproszenie do znajomych.';
+$l['buddyrequest_cancelled'] = 'Wybrane zaproszenie do znajomych zostało anulowane.';
+$l['buddyrequest_accepted'] = 'Wybrane zaproszenie do znajomych zostało zaakceptowane.';
+$l['buddyrequest_declined'] = 'Wybrane zaproszenie do znajomych zostało odrzucone.';
+$l['user_doesnt_exist'] = 'Ten użytkownik już nie istnieje.';
+$l['buddyrequests_sent_success'] = 'Zaproszenia do znajomych zostały wysłane.';
diff --git a/Upload/inc/languages/polish/usercpnav.lang.php b/Upload/inc/languages/polish/usercpnav.lang.php
new file mode 100644
index 0000000..4be0d99
--- /dev/null
+++ b/Upload/inc/languages/polish/usercpnav.lang.php
@@ -0,0 +1,34 @@
+Zapisane szkice ({1})";
+$l['ucp_nav_notepad'] = "Osobisty notatnik";
+$l['ucp_nav_view_profile'] = "Pokaż profil";
+$l['ucp_nav_home'] = "Podsumowanie";
+$l['ucp_nav_usergroups'] = "Grupy użytkowników";
+$l['ucp_nav_attachments'] = "Załączniki";
diff --git a/Upload/inc/languages/polish/warnings.lang.php b/Upload/inc/languages/polish/warnings.lang.php
new file mode 100644
index 0000000..24dab66
--- /dev/null
+++ b/Upload/inc/languages/polish/warnings.lang.php
@@ -0,0 +1,98 @@
+Anonimowe PW: wyślij tę wiadomość jako użytkownik anonimowy.";
+$l['expiration_never'] = "zawsze";
+$l['expiration_hours'] = "godzin";
+$l['expiration_days'] = "dni";
+$l['expiration_weeks'] = "tygodni";
+$l['expiration_months'] = "miesięcy";
+$l['redirect_warned_banned'] = " Użytkownik został też przeniesiony do grupy {1} na {2}.";
+$l['redirect_warned_suspended'] = " Prawa tego użytkownika do pisania postów zostały zawieszone na {1}.";
+$l['redirect_warned_moderate'] = " Wszystkie posty tego użytkownika będą musiały być zatwierdzane przez moderatorów przez {1}.";
+$l['redirect_warned_pmerror'] = " Wiadomość nie została wysłana.";
+$l['redirect_warned'] = "Poziom ostrzeżeń użytkownika {1} został podniesiony do {2}%.{3} Teraz nastąpi przeniesienie do poprzedniej lokalizacji.";
+$l['error_warning_system_disabled'] = "Nie możesz używać systemu ostrzeżeń, bo został on wyłączony przez administratora.";
+//$l['reached_max_warnings_day'] = "Nie możesz ostrzec żadnego użytkownika, bo przekroczono już dzienny limit dodanych ostrzeżeń. Możesz dodać maksymalnie {1} ostrzeżeń dziennie.";
+//$l['user_reached_max_warning'] = "Nie możesz ostrzec tego użytkownika, bo osiągnął on już maksymalny poziom ostrzeżeń.";
+$l['error_cant_warn_group'] = "Nie masz uprawnień do udzielania ostrzeżeń członkom tej grupy.";
+//$l['error_no_note'] = "Nie wpisano notatki administracyjnej dla tego ostrzeżenia.";
+//$l['error_invalid_type'] = "Wybrany typ ostrzeżenia jest nieprawidłowy.";
+$l['error_invalid_user'] = "Wybrany użytkownik nie istnieje.";
+//$l['error_invalid_post'] = "Wybrany post nie istnieje.";
+//$l['error_cant_custom_warn'] = "Twoje uprawnienia pozwalają na dodawanie ostrzeżeń tylko typu ustalonego przez administratora. Wybierz typ ostrzeżenia z listy.";
+//$l['error_no_custom_reason'] = "Nie podano powodu ostrzeżenia.";
+//$l['error_invalid_custom_points'] = "Wpisana liczba punktów ostrzeżenia jest niepoprawna. Powinna ona być większa niż 0, ale nie większa niż {1}.";
+$l['details'] = "Szczegóły";
+$l['view'] = "Zobacz";
+$l['current_warning_level'] = "Aktualny poziom ostrzeżeń: {1}% ({2}/{3})";
+$l['warning_details'] = "Szczegóły ostrzeżeń";
+$l['revoke_warning'] = "Cofnij to ostrzeżenie";
+$l['revoke_warning_desc'] = "By cofnąć to ostrzeżenie, wpisz powód w polu poniżej. Cofnięcie ostrzeżenia nie spowoduje zniesienia banów ani kar spowodowanych jego wystawieniem.";
+$l['warning_is_revoked'] = "Ostrzeżenie zostało cofnięte.";
+$l['revoked_by'] = "Cofnięte przez:";
+$l['date_revoked'] = "Data zniesienia:";
+$l['warning_already_revoked'] = "Ostrzeżenie zostało już cofnięte.";
+$l['no_revoke_reason'] = "Nie podano powodu zniesienia ostrzeżenia.";
+$l['redirect_warning_revoked'] = "Ostrzeżenie zostało cofnięte, a poziom ostrzeżeń użytkownika został zaktualizowany. Teraz nastąpi przeniesienie do strony podglądu ostrzeżenia.";
+$l['result'] = "Wynik:";
+$l['result_banned'] = "Użytkownik zostanie przeniesiony do grupy {1} na {2}";
+$l['result_suspended'] = "Prawo tego użytkownika do pisania na forum zostanie zawieszone na {1}";
+$l['result_moderated'] = "Posty tego użytkownika będą musiały być zatwierdzane przez {1}";
+$l['result_period'] = "{1} {2}";
+$l['result_period_perm'] = "cały czas";
+$l['hour_or_hours'] = "godzin";
+$l['day_or_days'] = "dni";
+$l['week_or_weeks'] = "tygodni";
+$l['month_or_months'] = "miesięcy";
+$l['expires'] = "Przedawni siÄ™:";
+$l['new_warning_level'] = "Nowy poziom ostrzeżeń:";
+//$l['cannot_warn_self'] = "Nie możesz zwiększyć własnego poziomu ostrzeżeń.";
+$l['error_cant_warn_user'] = "Nie masz uprawnień do dodawania ostrzeżeń temu użytkownikowi.";
+$l['existing_post_warnings'] = "Ostrzeżenia za ten post";
diff --git a/Upload/inc/languages/polish/xmlhttp.lang.php b/Upload/inc/languages/polish/xmlhttp.lang.php
new file mode 100644
index 0000000..760feb3
--- /dev/null
+++ b/Upload/inc/languages/polish/xmlhttp.lang.php
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/mailhandlers/php.php b/Upload/inc/mailhandlers/php.php
new file mode 100644
index 0000000..57f51b9
--- /dev/null
+++ b/Upload/inc/mailhandlers/php.php
@@ -0,0 +1,73 @@
+ Please make sure IN_MYBB is defined.");
+}
+
+/**
+ * PHP mail handler class.
+ */
+class PhpMail extends MailHandler
+{
+ /**
+ * Additional parameters to pass to PHPs mail() function.
+ *
+ * @var string
+ */
+ public $additional_parameters = '';
+
+ /**
+ * Sends the email.
+ *
+ * @return true/false whether or not the email got sent or not.
+ */
+ function send()
+ {
+ global $lang, $mybb;
+
+ // For some reason sendmail/qmail doesn't like \r\n
+ $this->sendmail = @ini_get('sendmail_path');
+ if($this->sendmail)
+ {
+ $this->headers = str_replace("\r\n", "\n", $this->headers);
+ $this->message = str_replace("\r\n", "\n", $this->message);
+ $this->delimiter = "\n";
+ }
+
+ // Some mail providers ignore email's with incorrect return-to path's so try and fix that here
+ $this->sendmail_from = @ini_get('sendmail_from');
+ if($this->sendmail_from != $mybb->settings['adminemail'])
+ {
+ @ini_set("sendmail_from", $mybb->settings['adminemail']);
+ }
+
+ // If safe mode is on, don't send the additional parameters as we're not allowed to
+ if($mybb->safemode)
+ {
+ $sent = @mail($this->to, $this->subject, $this->message, trim($this->headers));
+ }
+ else
+ {
+ $sent = @mail($this->to, $this->subject, $this->message, trim($this->headers), $this->additional_parameters);
+ }
+ $function_used = 'mail()';
+
+ if(!$sent)
+ {
+ $this->fatal_error("MyBB was unable to send the email using the PHP {$function_used} function.");
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/Upload/inc/mailhandlers/smtp.php b/Upload/inc/mailhandlers/smtp.php
new file mode 100644
index 0000000..8c85cfa
--- /dev/null
+++ b/Upload/inc/mailhandlers/smtp.php
@@ -0,0 +1,552 @@
+ Please make sure IN_MYBB is defined.");
+}
+
+/**
+ * SMTP mail handler class.
+ */
+
+if(!defined('MYBB_SSL'))
+{
+ define('MYBB_SSL', 1);
+}
+
+if(!defined('MYBB_TLS'))
+{
+ define('MYBB_TLS', 2);
+}
+
+class SmtpMail extends MailHandler
+{
+ /**
+ * The SMTP connection.
+ *
+ * @var resource
+ */
+ public $connection;
+
+ /**
+ * SMTP username.
+ *
+ * @var string
+ */
+ public $username = '';
+
+ /**
+ * SMTP password.
+ *
+ * @var string
+ */
+ public $password = '';
+
+ /**
+ * Hello string sent to the smtp server with either HELO or EHLO.
+ *
+ * @var string
+ */
+ public $helo = 'localhost';
+
+ /**
+ * User authenticated or not.
+ *
+ * @var boolean
+ */
+ public $authenticated = false;
+
+ /**
+ * How long before timeout.
+ *
+ * @var integer
+ */
+ public $timeout = 5;
+
+ /**
+ * SMTP status.
+ *
+ * @var integer
+ */
+ public $status = 0;
+
+ /**
+ * SMTP default port.
+ *
+ * @var integer
+ */
+ public $port = 25;
+
+ /**
+ * SMTP default secure port.
+ *
+ * @var integer
+ */
+ public $secure_port = 465;
+
+ /**
+ * SMTP host.
+ *
+ * @var string
+ */
+ public $host = '';
+
+ /**
+ * The last received response from the SMTP server.
+ *
+ * @var string
+ */
+ public $data = '';
+
+ /**
+ * The last received response code from the SMTP server.
+ *
+ * @var string
+ */
+ public $code = 0;
+
+ /**
+ * The last received error message from the SMTP server.
+ *
+ * @var string
+ */
+ public $last_error = '';
+
+ /**
+ * Are we keeping the connection to the SMTP server alive?
+ *
+ * @var boolean
+ */
+ public $keep_alive = false;
+
+ /**
+ * Whether to use TLS encryption.
+ *
+ * @var boolean
+ */
+ public $use_tls = false;
+
+ function __construct()
+ {
+ global $mybb;
+
+ $protocol = '';
+ switch($mybb->settings['secure_smtp'])
+ {
+ case MYBB_SSL:
+ $protocol = 'ssl://';
+ break;
+ case MYBB_TLS:
+ $this->use_tls = true;
+ break;
+ }
+
+ if(empty($mybb->settings['smtp_host']))
+ {
+ $this->host = @ini_get('SMTP');
+ }
+ else
+ {
+ $this->host = $mybb->settings['smtp_host'];
+ }
+
+ $local = array('127.0.0.1', '::1', 'localhost');
+ if(!in_array($this->host, $local))
+ {
+ if(function_exists('gethostname') && gethostname() !== false)
+ {
+ $this->helo = gethostname();
+ }
+ elseif(function_exists('php_uname'))
+ {
+ $helo = php_uname('n');
+ if(!empty($helo))
+ {
+ $this->helo = $helo;
+ }
+ }
+ elseif(!empty($_SERVER['SERVER_NAME']))
+ {
+ $this->helo = $_SERVER['SERVER_NAME'];
+ }
+ }
+
+ $this->host = $protocol . $this->host;
+
+ if(empty($mybb->settings['smtp_port']) && !empty($protocol) && !@ini_get('smtp_port'))
+ {
+ $this->port = $this->secure_port;
+ }
+ else if(empty($mybb->settings['smtp_port']) && @ini_get('smtp_port'))
+ {
+ $this->port = @ini_get('smtp_port');
+ }
+ else if(!empty($mybb->settings['smtp_port']))
+ {
+ $this->port = $mybb->settings['smtp_port'];
+ }
+
+ $this->password = $mybb->settings['smtp_pass'];
+ $this->username = $mybb->settings['smtp_user'];
+ }
+
+ /**
+ * Sends the email.
+ *
+ * @return true/false whether or not the email got sent or not.
+ */
+ function send()
+ {
+ global $lang, $mybb;
+
+ if(!$this->connected())
+ {
+ if(!$this->connect())
+ {
+ $this->close();
+ }
+ }
+
+ if($this->connected())
+ {
+ if(!$this->send_data('MAIL FROM:<'.$this->from.'>', '250'))
+ {
+ $this->fatal_error("The mail server does not understand the MAIL FROM command. Reason: ".$this->get_error());
+ return false;
+ }
+
+ // Loop through recipients
+ $emails = explode(',', $this->to);
+ foreach($emails as $to)
+ {
+ $to = trim($to);
+ if(!$this->send_data('RCPT TO:<'.$to.'>', '250'))
+ {
+ $this->fatal_error("The mail server does not understand the RCPT TO command. Reason: ".$this->get_error());
+ return false;
+ }
+ }
+
+ if($this->send_data('DATA', '354'))
+ {
+ $this->send_data('Date: ' . gmdate('r'));
+ $this->send_data('To: ' . $this->to);
+
+ $this->send_data('Subject: ' . $this->subject);
+
+ // Only send additional headers if we've got any
+ if(trim($this->headers))
+ {
+ $this->send_data(trim($this->headers));
+ }
+
+ $this->send_data("");
+
+ // Queue the actual message
+ $this->message = str_replace("\n.", "\n..", $this->message);
+ $this->send_data($this->message);
+ }
+ else
+ {
+ $this->fatal_error("The mail server did not understand the DATA command");
+ return false;
+ }
+
+ $this->send_data('.', '250');
+
+ if(!$this->keep_alive)
+ {
+ $this->close();
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Connect to the SMTP server.
+ *
+ * @return boolean True if connection was successful
+ */
+ function connect()
+ {
+ global $lang, $mybb;
+
+ $this->connection = @fsockopen($this->host, $this->port, $error_number, $error_string, $this->timeout);
+
+ // DIRECTORY_SEPARATOR checks if running windows
+ if(function_exists('stream_set_timeout') && DIRECTORY_SEPARATOR != '\\')
+ {
+ @stream_set_timeout($this->connection, $this->timeout, 0);
+ }
+
+ if(is_resource($this->connection))
+ {
+ $this->status = 1;
+ $this->get_data();
+ if(!$this->check_status('220'))
+ {
+ $this->fatal_error("The mail server is not ready, it did not respond with a 220 status message.");
+ return false;
+ }
+
+ if($this->use_tls || (!empty($this->username) && !empty($this->password)))
+ {
+ $helo = 'EHLO';
+ }
+ else
+ {
+ $helo = 'HELO';
+ }
+
+ $data = $this->send_data("{$helo} {$this->helo}", '250');
+ if(!$data)
+ {
+ $this->fatal_error("The server did not understand the {$helo} command");
+ return false;
+ }
+
+ if($this->use_tls && preg_match("#250( |-)STARTTLS#mi", $data))
+ {
+ if(!$this->send_data('STARTTLS', '220'))
+ {
+ $this->fatal_error("The server did not understand the STARTTLS command. Reason: ".$this->get_error());
+ return false;
+ }
+ if(!@stream_socket_enable_crypto($this->connection, true, STREAM_CRYPTO_METHOD_TLS_CLIENT))
+ {
+ $this->fatal_error("Failed to start TLS encryption");
+ return false;
+ }
+ // Resend EHLO to get updated service list
+ $data = $this->send_data("{$helo} {$this->helo}", '250');
+ if(!$data)
+ {
+ $this->fatal_error("The server did not understand the EHLO command");
+ return false;
+ }
+ }
+
+ if(!empty($this->username) && !empty($this->password))
+ {
+ preg_match("#250( |-)AUTH( |=)(.+)$#mi", $data, $matches);
+ if(!$this->auth($matches[3]))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ $this->fatal_error("Unable to connect to the mail server with the given details. Reason: {$error_number}: {$error_string}");
+ return false;
+ }
+ }
+
+ /**
+ * Authenticate against the SMTP server.
+ *
+ * @param string A list of authentication methods supported by the server
+ * @return boolean True on success
+ */
+ function auth($auth_methods)
+ {
+ global $lang, $mybb;
+
+ $auth_methods = explode(" ", trim($auth_methods));
+
+ if(in_array("LOGIN", $auth_methods))
+ {
+ if(!$this->send_data("AUTH LOGIN", 334))
+ {
+ if($this->code == 503)
+ {
+ return true;
+ }
+ $this->fatal_error("The SMTP server did not respond correctly to the AUTH LOGIN command");
+ return false;
+ }
+
+ if(!$this->send_data(base64_encode($this->username), '334'))
+ {
+ $this->fatal_error("The SMTP server rejected the supplied SMTP username. Reason: ".$this->get_error());
+ return false;
+ }
+
+ if(!$this->send_data(base64_encode($this->password), '235'))
+ {
+ $this->fatal_error("The SMTP server rejected the supplied SMTP password. Reason: ".$this->get_error());
+ return false;
+ }
+ }
+ else if(in_array("PLAIN", $auth_methods))
+ {
+ if(!$this->send_data("AUTH PLAIN", '334'))
+ {
+ if($this->code == 503)
+ {
+ return true;
+ }
+ $this->fatal_error("The SMTP server did not respond correctly to the AUTH PLAIN command");
+ return false;
+ }
+ $auth = base64_encode(chr(0).$this->username.chr(0).$this->password);
+ if(!$this->send_data($auth, 235))
+ {
+ $this->fatal_error("The SMTP server rejected the supplied login username and password. Reason: ".$this->get_error());
+ return false;
+ }
+ }
+ else
+ {
+ $this->fatal_error("The SMTP server does not support any of the AUTH methods that MyBB supports");
+ return false;
+ }
+
+ // Still here, we're authenticated
+ return true;
+ }
+
+ /**
+ * Fetch data from the SMTP server.
+ *
+ * @return string The data from the SMTP server
+ */
+ function get_data()
+ {
+ $string = '';
+
+ while((($line = fgets($this->connection, 515)) !== false))
+ {
+ $string .= $line;
+ if(substr($line, 3, 1) == ' ')
+ {
+ break;
+ }
+ }
+ $string = trim($string);
+ $this->data = $string;
+ $this->code = substr($this->data, 0, 3);
+ return $string;
+ }
+
+ /**
+ * Check if we're currently connected to an SMTP server
+ *
+ * @return boolean true if connected
+ */
+ function connected()
+ {
+ if($this->status == 1)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Send data through to the SMTP server.
+ *
+ * @param string The data to be sent
+ * @param int The response code expected back from the server (if we have one)
+ * @return boolean True on success
+ */
+ function send_data($data, $status_num = false)
+ {
+ if($this->connected())
+ {
+ if(fwrite($this->connection, $data."\r\n"))
+ {
+ if($status_num != false)
+ {
+ $rec = $this->get_data();
+ if($this->check_status($status_num))
+ {
+ return $rec;
+ }
+ else
+ {
+ $this->set_error($rec);
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ $this->fatal_error("Unable to send the data to the SMTP server");
+ return false;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks if the received status code matches the one we expect.
+ *
+ * @param int The status code we expected back from the server
+ * @param boolean True if it matches
+ */
+ function check_status($status_num)
+ {
+ if($this->code == $status_num)
+ {
+ return $this->data;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Close the connection to the SMTP server.
+ */
+ function close()
+ {
+ if($this->status == 1)
+ {
+ $this->send_data('QUIT');
+ fclose($this->connection);
+ $this->status = 0;
+ }
+ }
+
+ /**
+ * Get the last error message response from the SMTP server
+ *
+ * @return string The error message response from the SMTP server
+ */
+ function get_error()
+ {
+ if(!$this->last_error)
+ {
+ $this->last_error = "N/A";
+ }
+
+ return $this->last_error;
+ }
+
+ /**
+ * Set the last error message response from the SMTP server
+ *
+ * @param string The error message response
+ */
+ function set_error($error)
+ {
+ $this->last_error = $error;
+ }
+}
diff --git a/Upload/inc/mybb_group.php b/Upload/inc/mybb_group.php
new file mode 100644
index 0000000..41f6c9f
--- /dev/null
+++ b/Upload/inc/mybb_group.php
@@ -0,0 +1,17 @@
+ Please make sure IN_MYBB is defined.");
+}
+
+$plugins->add_hook("pre_output_page", "hello_world");
+$plugins->add_hook("postbit", "hello_world_postbit");
+
+function hello_info()
+{
+ /**
+ * Array of information about the plugin.
+ * name: The name of the plugin
+ * description: Description of what the plugin does
+ * website: The website the plugin is maintained at (Optional)
+ * author: The name of the author of the plugin
+ * authorsite: The URL to the website of the author (Optional)
+ * version: The version number of the plugin
+ * guid: Unique ID issued by the MyBB Mods site for version checking
+ * compatibility: A CSV list of MyBB versions supported. Ex, "121,123", "12*". Wildcards supported.
+ */
+ return array(
+ "name" => "Hello World!",
+ "description" => "A sample plugin that prints hello world and prepends the content of each post to 'Hello world!'",
+ "website" => "http://www.mybb.com",
+ "author" => "MyBB Group",
+ "authorsite" => "http://www.mybb.com",
+ "version" => "1.0",
+ "guid" => "",
+ "compatibility" => "*"
+ );
+}
+
+/**
+ * ADDITIONAL PLUGIN INSTALL/UNINSTALL ROUTINES
+ *
+ * _install():
+ * Called whenever a plugin is installed by clicking the "Install" button in the plugin manager.
+ * If no install routine exists, the install button is not shown and it assumed any work will be
+ * performed in the _activate() routine.
+ *
+ * function hello_install()
+ * {
+ * }
+ *
+ * _is_installed():
+ * Called on the plugin management page to establish if a plugin is already installed or not.
+ * This should return TRUE if the plugin is installed (by checking tables, fields etc) or FALSE
+ * if the plugin is not installed.
+ *
+ * function hello_is_installed()
+ * {
+ * global $db;
+ * if($db->table_exists("hello_world"))
+ * {
+ * return true;
+ * }
+ * return false;
+ * }
+ *
+ * _uninstall():
+ * Called whenever a plugin is to be uninstalled. This should remove ALL traces of the plugin
+ * from the installation (tables etc). If it does not exist, uninstall button is not shown.
+ *
+ * function hello_uninstall()
+ * {
+ * }
+ *
+ * _activate():
+ * Called whenever a plugin is activated via the Admin CP. This should essentially make a plugin
+ * "visible" by adding templates/template changes, language changes etc.
+ *
+ * function hello_activate()
+ * {
+ * }
+ *
+ * _deactivate():
+ * Called whenever a plugin is deactivated. This should essentially "hide" the plugin from view
+ * by removing templates/template changes etc. It should not, however, remove any information
+ * such as tables, fields etc - that should be handled by an _uninstall routine. When a plugin is
+ * uninstalled, this routine will also be called before _uninstall() if the plugin is active.
+ *
+ * function hello_deactivate()
+ * {
+ * }
+ */
+
+
+function hello_world($page)
+{
+ $page = str_replace("", "
Hello World! This is a sample MyBB Plugin (which can be disabled!) that displays this message on all pages.
", $page);
+ return $page;
+}
+
+function hello_world_postbit(&$post)
+{
+ $post['message'] = "
Hello world! {$post['message']}";
+}
diff --git a/Upload/inc/plugins/index.html b/Upload/inc/plugins/index.html
new file mode 100644
index 0000000..efd2f36
--- /dev/null
+++ b/Upload/inc/plugins/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/settings.php b/Upload/inc/settings.php
new file mode 100644
index 0000000..e69de29
diff --git a/Upload/inc/tasks/backupdb.php b/Upload/inc/tasks/backupdb.php
new file mode 100644
index 0000000..bd1aabc
--- /dev/null
+++ b/Upload/inc/tasks/backupdb.php
@@ -0,0 +1,147 @@
+task_backup_cannot_write_backup);
+ }
+ else
+ {
+ $db->set_table_prefix('');
+
+ $file = MYBB_ADMIN_DIR.'backups/backup_'.date("_Ymd_His_").random_str(16);
+
+ if(function_exists('gzopen'))
+ {
+ $fp = gzopen($file.'.incomplete.sql.gz', 'w9');
+ }
+ else
+ {
+ $fp = fopen($file.'.incomplete.sql', 'w');
+ }
+
+ $tables = $db->list_tables($config['database']['database'], $config['database']['table_prefix']);
+
+ $time = date('dS F Y \a\t H:i', TIME_NOW);
+ $contents = "-- MyBB Database Backup\n-- Generated: {$time}\n-- -------------------------------------\n\n";
+
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'tables' => &$tables,
+ );
+ $plugins->run_hooks('task_backupdb', $args);
+ }
+
+ foreach($tables as $table)
+ {
+ $field_list = array();
+ $fields_array = $db->show_fields_from($table);
+ foreach($fields_array as $field)
+ {
+ $field_list[] = $field['Field'];
+ }
+
+ $fields = "`".implode("`,`", $field_list)."`";
+
+ $structure = $db->show_create_table($table).";\n";
+ $contents .= $structure;
+ clear_overflow($fp, $contents);
+
+ if($db->engine == 'mysqli')
+ {
+ $query = mysqli_query($db->read_link, "SELECT * FROM {$db->table_prefix}{$table}", MYSQLI_USE_RESULT);
+ }
+ else
+ {
+ $query = $db->simple_select($table);
+ }
+
+ while($row = $db->fetch_array($query))
+ {
+ $insert = "INSERT INTO {$table} ($fields) VALUES (";
+ $comma = '';
+ foreach($field_list as $field)
+ {
+ if(!isset($row[$field]) || is_null($row[$field]))
+ {
+ $insert .= $comma."NULL";
+ }
+ else if($db->engine == 'mysqli')
+ {
+ $insert .= $comma."'".mysqli_real_escape_string($db->read_link, $row[$field])."'";
+ }
+ else
+ {
+ $insert .= $comma."'".$db->escape_string($row[$field])."'";
+ }
+ $comma = ',';
+ }
+ $insert .= ");\n";
+ $contents .= $insert;
+ clear_overflow($fp, $contents);
+ }
+ $db->free_result($query);
+ }
+
+ $db->set_table_prefix(TABLE_PREFIX);
+
+ if(function_exists('gzopen'))
+ {
+ gzwrite($fp, $contents);
+ gzclose($fp);
+ rename($file.'.incomplete.sql.gz', $file.'.sql.gz');
+ }
+ else
+ {
+ fwrite($fp, $contents);
+ fclose($fp);
+ rename($file.'.incomplete.sql', $file.'.sql');
+ }
+
+ add_task_log($task, $lang->task_backup_ran);
+ }
+}
+
+// Allows us to refresh cache to prevent over flowing
+function clear_overflow($fp, &$contents)
+{
+ global $mybb;
+
+ if(function_exists('gzopen'))
+ {
+ gzwrite($fp, $contents);
+ }
+ else
+ {
+ fwrite($fp, $contents);
+ }
+
+ $contents = '';
+}
diff --git a/Upload/inc/tasks/checktables.php b/Upload/inc/tasks/checktables.php
new file mode 100644
index 0000000..9dc7c32
--- /dev/null
+++ b/Upload/inc/tasks/checktables.php
@@ -0,0 +1,87 @@
+type == "sqlite")
+ {
+ return;
+ }
+
+ @set_time_limit(0);
+
+ $ok = array(
+ "The storage engine for the table doesn't support check",
+ "Table is already up to date",
+ "OK"
+ );
+
+ $comma = "";
+ $tables_list = "";
+ $repaired = "";
+
+ $tables = $db->list_tables($mybb->config['database']['database'], $mybb->config['database']['table_prefix']);
+ foreach($tables as $key => $table)
+ {
+ $tables_list .= "{$comma}{$table} ";
+ $comma = ",";
+ }
+
+ if($tables_list)
+ {
+ $query = $db->query("CHECK TABLE {$tables_list}CHANGED;");
+ while($table = $db->fetch_array($query))
+ {
+ if(!in_array($table['Msg_text'], $ok))
+ {
+ if($table['Table'] != $mybb->config['database']['database'].".".TABLE_PREFIX."settings" && $setting_done != true)
+ {
+ $boardclosed = $mybb->settings['boardclosed'];
+ $boardclosed_reason = $mybb->settings['boardclosed_reason'];
+
+ $db->update_query("settings", array('value' => 1), "name='boardclosed'", 1);
+ $db->update_query("settings", array('value' => $db->escape_string($lang->error_database_repair)), "name='boardclosed_reason'", 1);
+ rebuild_settings();
+
+ $setting_done = true;
+ }
+
+ $db->query("REPAIR TABLE {$table['Table']}");
+ $repaired[] = $table['Table'];
+ }
+ }
+
+ if($table['Table'] != $mybb->config['database']['table_prefix'].".".TABLE_PREFIX."settings" && $setting_done == true)
+ {
+ $db->update_query("settings", array('value' => (int)$boardclosed), "name='boardclosed'", 1);
+ $db->update_query("settings", array('value' => $db->escape_string($boardclosed_reason)), "name='boardclosed_reason'", 1);
+
+ rebuild_settings();
+ }
+
+ }
+
+ if(is_object($plugins))
+ {
+ $plugins->run_hooks('task_checktables', $task);
+ }
+
+ if(!empty($repaired))
+ {
+ add_task_log($task, $lang->sprintf($lang->task_checktables_ran_found, implode(', ', $repaired)));
+ }
+ else
+ {
+ add_task_log($task, $lang->task_checktables_ran);
+ }
+}
diff --git a/Upload/inc/tasks/dailycleanup.php b/Upload/inc/tasks/dailycleanup.php
new file mode 100644
index 0000000..b6198fe
--- /dev/null
+++ b/Upload/inc/tasks/dailycleanup.php
@@ -0,0 +1,92 @@
+ TIME_NOW-60*60*24,
+ 'threadreadcut' => TIME_NOW-(((int)$mybb->settings['threadreadcut'])*60*60*24),
+ 'privatemessages' => TIME_NOW-(60*60*24*7),
+ 'deleteinvite' => TIME_NOW-(((int)$mybb->settings['deleteinvites'])*60*60*24),
+ 'stoppmtracking' => TIME_NOW-(60*60*24*180)
+ );
+
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'time' => &$time
+ );
+ $plugins->run_hooks('task_dailycleanup_start', $args);
+ }
+
+ // Clear out sessions older than 24h
+ $db->delete_query("sessions", "time < '".(int)$time['sessionstime']."'");
+
+ // Delete old read topics
+ if($mybb->settings['threadreadcut'] > 0)
+ {
+ $db->delete_query("threadsread", "dateline < '".(int)$time['threadreadcut']."'");
+ $db->delete_query("forumsread", "dateline < '".(int)$time['threadreadcut']."'");
+ }
+
+ // Check PMs moved to trash over a week ago & delete them
+ $query = $db->simple_select("privatemessages", "pmid, uid, folder", "deletetime<='".(int)$time['privatemessages']."' AND folder='4'");
+ while($pm = $db->fetch_array($query))
+ {
+ $user_update[$pm['uid']] = 1;
+ $pm_update[] = $pm['pmid'];
+ }
+
+ // Delete old group invites
+ if($mybb->settings['deleteinvites'] > 0)
+ {
+ $db->delete_query("joinrequests", "dateline < '".(int)$time['deleteinvite']."' AND invite='1'");
+ }
+
+ // Stop tracking read PMs after 6 months
+ $sql_array = array(
+ "receipt" => 0
+ );
+ $db->update_query("privatemessages", $sql_array, "receipt='2' AND folder!='3' AND status!='0' AND readtime < '".(int)$time['stoppmtracking']."'");
+
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'user_update' => &$user_update,
+ 'pm_update' => &$pm_update
+ );
+ $plugins->run_hooks('task_dailycleanup_end', $args);
+ }
+
+ if(!empty($pm_update))
+ {
+ $db->delete_query("privatemessages", "pmid IN(".implode(',', $pm_update).")");
+ }
+
+ if(!empty($user_update))
+ {
+ foreach($user_update as $uid)
+ {
+ update_pm_count($uid);
+ }
+ }
+
+ $cache->update_most_replied_threads();
+ $cache->update_most_viewed_threads();
+ $cache->update_birthdays();
+ $cache->update_forumsdisplay();
+
+ add_task_log($task, $lang->task_dailycleanup_ran);
+}
diff --git a/Upload/inc/tasks/delayedmoderation.php b/Upload/inc/tasks/delayedmoderation.php
new file mode 100644
index 0000000..f2d5d6d
--- /dev/null
+++ b/Upload/inc/tasks/delayedmoderation.php
@@ -0,0 +1,258 @@
+simple_select("delayedmoderation", "*", "delaydateline <= '".TIME_NOW."'");
+ while($delayedmoderation = $db->fetch_array($query))
+ {
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'delayedmoderation' => &$delayedmoderation,
+ );
+ $plugins->run_hooks('task_delayedmoderation', $args);
+ }
+
+ $tids = explode(',', $delayedmoderation['tids']);
+ $input = my_unserialize($delayedmoderation['inputs']);
+
+ if(my_strpos($delayedmoderation['type'], "modtool") !== false)
+ {
+ list(, $custom_id) = explode('_', $delayedmoderation['type'], 2);
+ $custommod->execute($custom_id, $tids);
+ }
+ else
+ {
+ switch($delayedmoderation['type'])
+ {
+ case "openclosethread":
+ $closed_tids = $open_tids = array();
+ $query2 = $db->simple_select("threads", "tid,closed", "tid IN({$delayedmoderation['tids']})");
+ while($thread = $db->fetch_array($query2))
+ {
+ if($thread['closed'] == 1)
+ {
+ $closed_tids[] = $thread['tid'];
+ }
+ else
+ {
+ $open_tids[] = $thread['tid'];
+ }
+ }
+
+ if(!empty($closed_tids))
+ {
+ $moderation->open_threads($closed_tids);
+ }
+
+ if(!empty($open_tids))
+ {
+ $moderation->close_threads($open_tids);
+ }
+ break;
+ case "deletethread":
+ foreach($tids as $tid)
+ {
+ $moderation->delete_thread($tid);
+ }
+ break;
+ case "move":
+ foreach($tids as $tid)
+ {
+ $moderation->move_thread($tid, $input['new_forum']);
+ }
+ break;
+ case "stick":
+ $unstuck_tids = $stuck_tids = array();
+ $query2 = $db->simple_select("threads", "tid,sticky", "tid IN({$delayedmoderation['tids']})");
+ while($thread = $db->fetch_array($query2))
+ {
+ if($thread['sticky'] == 1)
+ {
+ $stuck_tids[] = $thread['tid'];
+ }
+ else
+ {
+ $unstuck_tids[] = $thread['tid'];
+ }
+ }
+
+ if(!empty($stuck_tids))
+ {
+ $moderation->unstick_threads($stuck_tids);
+ }
+
+ if(!empty($unstuck_tids))
+ {
+ $moderation->stick_threads($unstuck_tids);
+ }
+ break;
+ case "merge":
+ if(count($tids) != 1)
+ {
+ continue;
+ }
+
+ // explode at # sign in a url (indicates a name reference) and reassign to the url
+ $realurl = explode("#", $input['threadurl']);
+ $input['threadurl'] = $realurl[0];
+
+ // Are we using an SEO URL?
+ if(substr($input['threadurl'], -4) == "html")
+ {
+ // Get thread to merge's tid the SEO way
+ preg_match("#thread-([0-9]+)?#i", $input['threadurl'], $threadmatch);
+ preg_match("#post-([0-9]+)?#i", $input['threadurl'], $postmatch);
+
+ if($threadmatch[1])
+ {
+ $parameters['tid'] = $threadmatch[1];
+ }
+
+ if($postmatch[1])
+ {
+ $parameters['pid'] = $postmatch[1];
+ }
+ }
+ else
+ {
+ // Get thread to merge's tid the normal way
+ $splitloc = explode(".php", $input['threadurl']);
+ $temp = explode("&", my_substr($splitloc[1], 1));
+
+ if(!empty($temp))
+ {
+ for($i = 0; $i < count($temp); $i++)
+ {
+ $temp2 = explode("=", $temp[$i], 2);
+ $parameters[$temp2[0]] = $temp2[1];
+ }
+ }
+ else
+ {
+ $temp2 = explode("=", $splitloc[1], 2);
+ $parameters[$temp2[0]] = $temp2[1];
+ }
+ }
+
+ if($parameters['pid'] && !$parameters['tid'])
+ {
+ $post = get_post($parameters['pid']);
+ $mergetid = $post['tid'];
+ }
+ else if($parameters['tid'])
+ {
+ $mergetid = $parameters['tid'];
+ }
+
+ $mergetid = (int)$mergetid;
+ $mergethread = get_thread($mergetid);
+
+ if(!$mergethread['tid'])
+ {
+ continue;
+ }
+
+ if($mergetid == $delayedmoderation['tid'])
+ {
+ // sanity check
+ continue;
+ }
+
+ if($input['subject'])
+ {
+ $subject = $input['subject'];
+ }
+ else
+ {
+ $query = $db->simple_select("thread", "subject", "tid='{$delayedmoderation['tids']}'");
+ $subject = $db->fetch_field($query, "subject");
+ }
+
+ $moderation->merge_threads($mergetid, $delayedmoderation['tids'], $subject);
+ break;
+ case "removeredirects":
+ foreach($tids as $tid)
+ {
+ $moderation->remove_redirects($tid);
+ }
+ break;
+ case "removesubscriptions":
+ $moderation->remove_thread_subscriptions($tids, true);
+ break;
+ case "approveunapprovethread":
+ $approved_tids = $unapproved_tids = array();
+ $query2 = $db->simple_select("threads", "tid,visible", "tid IN({$delayedmoderation['tids']})");
+ while($thread = $db->fetch_array($query2))
+ {
+ if($thread['visible'] == 1)
+ {
+ $approved_tids[] = $thread['tid'];
+ }
+ else
+ {
+ $unapproved_tids[] = $thread['tid'];
+ }
+ }
+
+ if(!empty($approved_tids))
+ {
+ $moderation->unapprove_threads($approved_tids);
+ }
+
+ if(!empty($unapproved_tids))
+ {
+ $moderation->approve_threads($unapproved_tids);
+ }
+ break;
+ case "softdeleterestorethread":
+ $delete_tids = $restore_tids = array();
+ $query2 = $db->simple_select("threads", "tid,visible", "tid IN({$delayedmoderation['tids']})");
+ while($thread = $db->fetch_array($query2))
+ {
+ if($thread['visible'] == -1)
+ {
+ $restore_tids[] = $thread['tid'];
+ }
+ else
+ {
+ $delete_tids[] = $thread['tid'];
+ }
+ }
+
+ if(!empty($restore_tids))
+ {
+ $moderation->restore_threads($restore_tids);
+ }
+
+ if(!empty($delete_tids))
+ {
+ $moderation->soft_delete_threads($delete_tids);
+ }
+ break;
+ }
+ }
+
+ $db->delete_query("delayedmoderation", "did='{$delayedmoderation['did']}'");
+ }
+
+ add_task_log($task, $lang->task_delayedmoderation_ran);
+}
diff --git a/Upload/inc/tasks/hourlycleanup.php b/Upload/inc/tasks/hourlycleanup.php
new file mode 100644
index 0000000..464d236
--- /dev/null
+++ b/Upload/inc/tasks/hourlycleanup.php
@@ -0,0 +1,53 @@
+ TIME_NOW,
+ 'searchlog' => TIME_NOW-(60*60*24),
+ 'captcha' => TIME_NOW-(60*60*24),
+ 'question' => TIME_NOW-(60*60*24)
+ );
+
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'time' => &$time
+ );
+ $plugins->run_hooks('task_hourlycleanup', $args);
+ }
+
+ require_once MYBB_ROOT."inc/class_moderation.php";
+ $moderation = new Moderation;
+
+ // Delete moved threads with time limits
+ $query = $db->simple_select('threads', 'tid', "deletetime != '0' AND deletetime < '".(int)$time['threads']."'");
+ while($tid = $db->fetch_field($query, 'tid'))
+ {
+ $moderation->delete_thread($tid);
+ }
+
+ // Delete old searches
+ $db->delete_query("searchlog", "dateline < '".(int)$time['searchlog']."'");
+
+ // Delete old captcha images
+ $cut = TIME_NOW-(60*60*24*7);
+ $db->delete_query("captcha", "dateline < '".(int)$time['captcha']."'");
+
+ // Delete old registration questions
+ $cut = TIME_NOW-(60*60*24*7);
+ $db->delete_query("questionsessions", "dateline < '".(int)$time['question']."'");
+
+ add_task_log($task, $lang->task_hourlycleanup_ran);
+}
diff --git a/Upload/inc/tasks/index.html b/Upload/inc/tasks/index.html
new file mode 100644
index 0000000..efd2f36
--- /dev/null
+++ b/Upload/inc/tasks/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/inc/tasks/logcleanup.php b/Upload/inc/tasks/logcleanup.php
new file mode 100644
index 0000000..b7f0944
--- /dev/null
+++ b/Upload/inc/tasks/logcleanup.php
@@ -0,0 +1,63 @@
+config['log_pruning']['admin_logs'] > 0)
+ {
+ $cut = TIME_NOW-60*60*24*$mybb->config['log_pruning']['admin_logs'];
+ $db->delete_query("adminlog", "dateline<'{$cut}'");
+ }
+
+ // Clear out old moderator logs
+ if($mybb->config['log_pruning']['mod_logs'] > 0)
+ {
+ $cut = TIME_NOW-60*60*24*$mybb->config['log_pruning']['mod_logs'];
+ $db->delete_query("moderatorlog", "dateline<'{$cut}'");
+ }
+
+ // Clear out old task logs
+ if($mybb->config['log_pruning']['task_logs'] > 0)
+ {
+ $cut = TIME_NOW-60*60*24*$mybb->config['log_pruning']['task_logs'];
+ $db->delete_query("tasklog", "dateline<'{$cut}'");
+ }
+
+ // Clear out old mail error logs
+ if($mybb->config['log_pruning']['mail_logs'] > 0)
+ {
+ $cut = TIME_NOW-60*60*24*$mybb->config['log_pruning']['mail_logs'];
+ $db->delete_query("mailerrors", "dateline<'{$cut}'");
+ }
+
+ // Clear out old user mail logs
+ if($mybb->config['log_pruning']['user_mail_logs'] > 0)
+ {
+ $cut = TIME_NOW-60*60*24*$mybb->config['log_pruning']['user_mail_logs'];
+ $db->delete_query("maillogs", "dateline<'{$cut}'");
+ }
+
+ // Clear out old promotion logs
+ if($mybb->config['log_pruning']['promotion_logs'] > 0)
+ {
+ $cut = TIME_NOW-60*60*24*$mybb->config['log_pruning']['promotion_logs'];
+ $db->delete_query("promotionlogs", "dateline<'{$cut}'");
+ }
+
+ if(is_object($plugins))
+ {
+ $plugins->run_hooks('task_logcleanup', $task);
+ }
+
+ add_task_log($task, $lang->task_logcleanup_ran);
+}
diff --git a/Upload/inc/tasks/massmail.php b/Upload/inc/tasks/massmail.php
new file mode 100644
index 0000000..33e8f23
--- /dev/null
+++ b/Upload/inc/tasks/massmail.php
@@ -0,0 +1,150 @@
+
Please make sure IN_MYBB is defined.");
+}
+
+require_once MYBB_ROOT."/inc/functions_massmail.php";
+require_once MYBB_ROOT."inc/datahandlers/pm.php";
+
+function task_massmail($task)
+{
+ global $db, $mybb, $lang, $plugins;
+
+ $query = $db->simple_select("massemails", "*", "senddate <= '".TIME_NOW."' AND status IN (1,2)");
+ while($mass_email = $db->fetch_array($query))
+ {
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'mass_email' => &$mass_email
+ );
+ $plugins->run_hooks('task_massmail', $args);
+ }
+
+ if($mass_email['status'] == 1)
+ {
+ $db->update_query("massemails", array('status' => 2), "mid='{$mass_email['mid']}'");
+ }
+
+ $sentcount = 0;
+
+ if(!$mass_email['perpage'])
+ {
+ $mass_email['perpage'] = 50;
+ }
+
+ if(strpos($mass_email['htmlmessage'], '
') === false && strpos($mass_email['htmlmessage'], '
') === false)
+ {
+ $mass_email['htmlmessage'] = nl2br($mass_email['htmlmessage']);
+ }
+
+ $mass_email['orig_message'] = $mass_email['message'];
+ $mass_email['orig_htmlmessage'] = $mass_email['htmlmessage'];
+
+ // Need to perform the search to fetch the number of users we're emailing
+ $member_query = build_mass_mail_query(my_unserialize($mass_email['conditions']));
+
+ $count_query = $db->simple_select("users u", "COUNT(uid) AS num", $member_query);
+ $mass_email['totalcount'] = $db->fetch_field($count_query, "num");
+
+ $query2 = $db->simple_select("users u", "u.uid, u.language, u.pmnotify, u.lastactive, u.username, u.email", $member_query, array('limit_start' => $mass_email['sentcount'], 'limit' => $mass_email['perpage'], 'order_by' => 'u.uid', 'order_dir' => 'asc'));
+ while($user = $db->fetch_array($query2))
+ {
+ $replacement_fields = array(
+ "{uid}" => $user['uid'],
+ "{username}" => $user['username'],
+ "{email}" => $user['email'],
+ "{bbname}" => $mybb->settings['bbname'],
+ "{bburl}" => $mybb->settings['bburl'],
+ "[".$lang->massmail_username."]" => $user['username'],
+ "[".$lang->email_addr."]" => $user['email'],
+ "[".$lang->board_name."]" => $mybb->settings['bbname'],
+ "[".$lang->board_url."]" => $mybb->settings['bburl']
+ );
+
+ foreach($replacement_fields as $find => $replace)
+ {
+ $mass_email['message'] = str_replace($find, $replace, $mass_email['message']);
+ $mass_email['htmlmessage'] = str_replace($find, $replace, $mass_email['htmlmessage']);
+ }
+
+ // Private Message
+ if($mass_email['type'] == 1)
+ {
+ $pm_handler = new PMDataHandler();
+ $pm_handler->admin_override = true;
+
+ $pm = array(
+ "subject" => $mass_email['subject'],
+ "message" => $mass_email['message'],
+ "fromid" => $mass_email['uid'],
+ "options" => array("savecopy" => 0),
+ );
+
+ $pm['to'] = explode(",", $user['username']);
+ $pm_handler->set_data($pm);
+ if(!$pm_handler->validate_pm())
+ {
+ $friendly_errors = implode('\n', $pm_handler->get_friendly_errors());
+ add_task_log($task, $lang->sprintf($lang->task_massmail_ran_errors, htmlspecialchars_uni($user['username']), $friendly_errors));
+ $friendly_errors = "";
+ }
+ else
+ {
+ $pm_handler->insert_pm();
+ }
+ }
+ // Normal Email
+ else
+ {
+ switch($mass_email['format'])
+ {
+ case 2:
+ $format = "both";
+ $text_message = $mass_email['message'];
+ $mass_email['message'] = $mass_email['htmlmessage'];
+ break;
+ case 1:
+ $format = "html";
+ $text_message = "";
+ $mass_email['message'] = $mass_email['htmlmessage'];
+ break;
+ default:
+ $format = "text";
+ $text_message = "";
+ }
+ my_mail($user['email'], $mass_email['subject'], $mass_email['message'], "", "", "", false, $format, $text_message);
+ }
+ ++$sentcount;
+
+ $mass_email['message'] = $mass_email['orig_message'];
+ $mass_email['htmlmessage'] = $mass_email['orig_htmlmessage'];
+ }
+
+ $update_array = array();
+
+ $update_array['sentcount'] = $mass_email['sentcount'] + $sentcount;
+ $update_array['totalcount'] = $mass_email['totalcount'];
+
+ if($update_array['sentcount'] >= $mass_email['totalcount'])
+ {
+ $update_array['status'] = 3;
+ }
+
+ $db->update_query("massemails", $update_array, "mid='{$mass_email['mid']}'");
+ }
+
+ add_task_log($task, $lang->task_massmail_ran);
+}
diff --git a/Upload/inc/tasks/promotions.php b/Upload/inc/tasks/promotions.php
new file mode 100644
index 0000000..6210e13
--- /dev/null
+++ b/Upload/inc/tasks/promotions.php
@@ -0,0 +1,255 @@
+read("usergroups");
+ // Iterate through all our promotions
+ $query = $db->simple_select("promotions", "*", "enabled = '1'");
+ while($promotion = $db->fetch_array($query))
+ {
+ // Does the destination usergroup even exist?? If it doesn't and it moves a user to it, the user will get PHP errors.
+ if(!array_key_exists($promotion['newusergroup'], $usergroups))
+ {
+ // Instead of just skipping this promotion, disable it to stop it even being selected when this task is run.
+ $update = array(
+ "enabled" => 0
+ );
+ $db->update_query("promotions", $update, "pid = '" . (int)$promotion['pid'] . "'");
+ continue;
+ }
+
+ $and = "";
+ $sql_where = "";
+
+ // Based on the promotion generate criteria for user selection
+ $requirements = explode(',', $promotion['requirements']);
+ if(in_array('postcount', $requirements) && (int)$promotion['posts'] >= 0 && !empty($promotion['posttype']))
+ {
+ $sql_where .= "{$and}postnum {$promotion['posttype']} '{$promotion['posts']}'";
+
+ $and = " AND ";
+ }
+
+ if(in_array('threadcount', $requirements) && (int)$promotion['threads'] >= 0 && !empty($promotion['threadtype']))
+ {
+ $sql_where .= "{$and}threadnum {$promotion['threadtype']} '{$promotion['threads']}'";
+
+ $and = " AND ";
+ }
+
+ if(in_array('reputation', $requirements) && !empty($promotion['reputationtype']))
+ {
+ $sql_where .= "{$and}reputation {$promotion['reputationtype']} '{$promotion['reputations']}'";
+
+ $and = " AND ";
+ }
+
+ if(in_array('referrals', $requirements) && (int)$promotion['referrals'] >= 0 && !empty($promotion['referralstype']))
+ {
+ $sql_where .= "{$and}referrals {$promotion['referralstype']} '{$promotion['referrals']}'";
+
+ $and = " AND ";
+ }
+
+ if(in_array('warnings', $requirements) && (int)$promotion['warnings'] >= 0 && !empty($promotion['warningstype']))
+ {
+ $sql_where .= "{$and}warningpoints {$promotion['warningstype']} '{$promotion['warnings']}'";
+
+ $and = " AND ";
+ }
+
+ if(in_array('timeregistered', $requirements) && (int)$promotion['registered'] > 0 && !empty($promotion['registeredtype']))
+ {
+ switch($promotion['registeredtype'])
+ {
+ case "hours":
+ $regdate = $promotion['registered']*60*60;
+ break;
+ case "days":
+ $regdate = $promotion['registered']*60*60*24;
+ break;
+ case "weeks":
+ $regdate = $promotion['registered']*60*60*24*7;
+ break;
+ case "months":
+ $regdate = $promotion['registered']*60*60*24*30;
+ break;
+ case "years":
+ $regdate = $promotion['registered']*60*60*24*365;
+ break;
+ default:
+ $regdate = $promotion['registered']*60*60*24;
+ }
+ $sql_where .= "{$and}regdate <= '".(TIME_NOW-$regdate)."'";
+ $and = " AND ";
+ }
+
+ if(in_array('timeonline', $requirements) && (int)$promotion['online'] > 0 && !empty($promotion['onlinetype']))
+ {
+ switch($promotion['onlinetype'])
+ {
+ case "hours":
+ $timeonline = $promotion['online']*60*60;
+ break;
+ case "days":
+ $timeonline = $promotion['online']*60*60*24;
+ break;
+ case "weeks":
+ $timeonline = $promotion['online']*60*60*24*7;
+ break;
+ case "months":
+ $timeonline = $promotion['online']*60*60*24*30;
+ break;
+ case "years":
+ $timeonline = $promotion['online']*60*60*24*365;
+ break;
+ default:
+ $timeonline = $promotion['online']*60*60*24;
+ }
+ $sql_where .= "{$and}timeonline <= '".(TIME_NOW-$timeonline)."'";
+ $and = " AND ";
+ }
+
+ if(!empty($promotion['originalusergroup']) && $promotion['originalusergroup'] != '*')
+ {
+ $sql_where .= "{$and}usergroup IN ({$promotion['originalusergroup']})";
+
+ $and = " AND ";
+ }
+
+ if(!empty($promotion['newusergroup']))
+ {
+ // Skip users that are already in the new group
+ switch($db->type)
+ {
+ case "pgsql":
+ case "sqlite":
+ $sql_where .= "{$and}usergroup != '{$promotion['newusergroup']}' AND ','||additionalgroups||',' NOT LIKE '%,{$promotion['newusergroup']},%'";
+ break;
+ default:
+ $sql_where .= "{$and}usergroup != '{$promotion['newusergroup']}' AND CONCAT(',', additionalgroups, ',') NOT LIKE '%,{$promotion['newusergroup']},%'";
+ }
+
+ $and = " AND ";
+ }
+
+ $uid = array();
+ $log_inserts = array();
+
+ if($promotion['usergrouptype'] == "secondary")
+ {
+ $usergroup_select = "additionalgroups";
+ }
+ else
+ {
+ $usergroup_select = "usergroup";
+ }
+
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'promotion' => &$promotion,
+ 'sql_where' => &$sql_where,
+ 'and' => &$and,
+ 'usergroup_select' => &$usergroup_select
+ );
+ $plugins->run_hooks('task_promotions', $args);
+ }
+
+ $query2 = $db->simple_select("users", "uid,{$usergroup_select}", $sql_where);
+
+ $uids = array();
+ while($user = $db->fetch_array($query2))
+ {
+ if(is_super_admin($user['uid']))
+ {
+ // Skip super admins
+ continue;
+ }
+
+ // super admin check?
+ if($usergroup_select == "additionalgroups")
+ {
+ $log_inserts[] = array(
+ 'pid' => $promotion['pid'],
+ 'uid' => $user['uid'],
+ 'oldusergroup' => $user['additionalgroups'],
+ 'newusergroup' => $promotion['newusergroup'],
+ 'dateline' => TIME_NOW,
+ 'type' => "secondary",
+ );
+ }
+ else
+ {
+ $log_inserts[] = array(
+ 'pid' => $promotion['pid'],
+ 'uid' => $user['uid'],
+ 'oldusergroup' => $user['usergroup'],
+ 'newusergroup' => $promotion['newusergroup'],
+ 'dateline' => TIME_NOW,
+ 'type' => "primary",
+ );
+ }
+
+ $uids[] = $user['uid'];
+
+
+ if($usergroup_select == "additionalgroups")
+ {
+ if(join_usergroup($user['uid'], $promotion['newusergroup']) === false)
+ {
+ // Did the user already have the additional usergroup?
+ array_pop($log_inserts);
+ array_pop($uids);
+ }
+ }
+
+ if((count($uids) % 20) == 0)
+ {
+ if($usergroup_select == "usergroup")
+ {
+ $db->update_query("users", array('usergroup' => $promotion['newusergroup']), "uid IN(".implode(",", $uids).")");
+ }
+
+ if(!empty($log_inserts))
+ {
+ $db->insert_query_multiple("promotionlogs", $log_inserts);
+ }
+
+ $uids = array();
+ $log_inserts = array();
+ }
+ }
+
+ if(count($uids) > 0)
+ {
+ if($usergroup_select == "usergroup")
+ {
+ $db->update_query("users", array('usergroup' => $promotion['newusergroup']), "uid IN(".implode(",", $uids).")");
+ }
+
+ if(!empty($log_inserts))
+ {
+ $db->insert_query_multiple("promotionlogs", $log_inserts);
+ }
+
+ $uids = array();
+ $log_inserts = array();
+ }
+ }
+
+ $cache->update_moderators();
+
+ add_task_log($task, $lang->task_promotions_ran);
+}
diff --git a/Upload/inc/tasks/recachestylesheets.php b/Upload/inc/tasks/recachestylesheets.php
new file mode 100644
index 0000000..8ef1cda
--- /dev/null
+++ b/Upload/inc/tasks/recachestylesheets.php
@@ -0,0 +1,39 @@
+config['admin_dir']."/inc/functions_themes.php"))
+ {
+ require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php";
+ }
+ else if(file_exists(MYBB_ROOT."admin/inc/functions_themes.php"))
+ {
+ require_once MYBB_ROOT."admin/inc/functions_themes.php";
+ }
+
+ $query = $db->simple_select('themestylesheets', '*');
+
+ $num_recached = 0;
+
+ while($stylesheet = $db->fetch_array($query))
+ {
+ if(cache_stylesheet($stylesheet['tid'], $stylesheet['name'], $stylesheet['stylesheet']))
+ {
+ $db->update_query("themestylesheets", array('cachefile' => $db->escape_string($stylesheet['name'])), "sid='{$stylesheet['sid']}'", 1);
+ ++$num_recached;
+ }
+ }
+
+ add_task_log($task, $lang->sprintf($lang->task_recachestylesheets_ran, $num_recached));
+}
+
diff --git a/Upload/inc/tasks/threadviews.php b/Upload/inc/tasks/threadviews.php
new file mode 100644
index 0000000..53ee881
--- /dev/null
+++ b/Upload/inc/tasks/threadviews.php
@@ -0,0 +1,35 @@
+settings['delayedthreadviews'] != 1)
+ {
+ return;
+ }
+
+ // Update thread views
+ $query = $db->simple_select("threadviews", "tid, COUNT(tid) AS views", "", array('group_by' => 'tid'));
+ while($threadview = $db->fetch_array($query))
+ {
+ $db->update_query("threads", array('views' => "views+{$threadview['views']}"), "tid='{$threadview['tid']}'", 1, true);
+ }
+
+ $db->write_query("TRUNCATE TABLE ".TABLE_PREFIX."threadviews");
+
+ if(is_object($plugins))
+ {
+ $plugins->run_hooks('task_threadviews', $task);
+ }
+
+ add_task_log($task, $lang->task_threadviews_ran);
+}
diff --git a/Upload/inc/tasks/usercleanup.php b/Upload/inc/tasks/usercleanup.php
new file mode 100644
index 0000000..fc32330
--- /dev/null
+++ b/Upload/inc/tasks/usercleanup.php
@@ -0,0 +1,74 @@
+expire_warnings();
+
+ // Expire any post moderation or suspension limits
+ $query = $db->simple_select("users", "uid, moderationtime, suspensiontime", "(moderationtime!=0 AND moderationtime<".TIME_NOW.") OR (suspensiontime!=0 AND suspensiontime<".TIME_NOW.")");
+ while($user = $db->fetch_array($query))
+ {
+ $updated_user = array();
+ if($user['moderationtime'] != 0 && $user['moderationtime'] < TIME_NOW)
+ {
+ $updated_user['moderateposts'] = 0;
+ $updated_user['moderationtime'] = 0;
+ }
+ if($user['suspensiontime'] != 0 && $user['suspensiontime'] < TIME_NOW)
+ {
+ $updated_user['suspendposting'] = 0;
+ $updated_user['suspensiontime'] = 0;
+ }
+ $db->update_query("users", $updated_user, "uid='{$user['uid']}'");
+ }
+
+ // Expire any suspended signatures
+ $query = $db->simple_select("users", "uid, suspendsigtime", "suspendsignature != 0 AND suspendsigtime < '".TIME_NOW."'");
+ while($user = $db->fetch_array($query))
+ {
+ if($user['suspendsigtime'] != 0 && $user['suspendsigtime'] < TIME_NOW)
+ {
+ $updated_user = array(
+ "suspendsignature" => 0,
+ "suspendsigtime" => 0,
+ );
+ $db->update_query("users", $updated_user, "uid='".$user['uid']."'");
+ }
+ }
+
+ // Expire bans
+ $query = $db->simple_select("banned", "*", "lifted!=0 AND lifted<".TIME_NOW);
+ while($ban = $db->fetch_array($query))
+ {
+ $updated_user = array(
+ "usergroup" => $ban['oldgroup'],
+ "additionalgroups" => $ban['oldadditionalgroups'],
+ "displaygroup" => $ban['olddisplaygroup']
+ );
+ $db->update_query("users", $updated_user, "uid='{$ban['uid']}'");
+ $db->delete_query("banned", "uid='{$ban['uid']}'");
+ }
+
+ $cache->update_moderators();
+
+ if(is_object($plugins))
+ {
+ $plugins->run_hooks('task_usercleanup', $task);
+ }
+
+ add_task_log($task, $lang->task_usercleanup_ran);
+}
diff --git a/Upload/inc/tasks/userpruning.php b/Upload/inc/tasks/userpruning.php
new file mode 100644
index 0000000..533a0a4
--- /dev/null
+++ b/Upload/inc/tasks/userpruning.php
@@ -0,0 +1,84 @@
+settings['enablepruning'] != 1)
+ {
+ return;
+ }
+
+ // Are we pruning by posts?
+ if($mybb->settings['enableprunebyposts'] == 1)
+ {
+ $in_usergroups = array();
+ $users = array();
+
+ $usergroups = $cache->read("usergroups");
+ foreach($usergroups as $gid => $usergroup)
+ {
+ // Exclude admin, moderators, super moderators, banned
+ if($usergroup['canmodcp'] == 1 || $usergroup['cancp'] == 1 || $usergroup['issupermod'] == 1 || $usergroup['isbannedgroup'] == 1)
+ {
+ continue;
+ }
+ $in_usergroups[] = $gid;
+ }
+
+ // If we're not pruning unactivated users, then remove them from the criteria
+ if($mybb->settings['pruneunactived'] == 0)
+ {
+ $key = array_search('5', $in_usergroups);
+ unset($in_usergroups[$key]);
+ }
+
+ $regdate = TIME_NOW-((int)$mybb->settings['dayspruneregistered']*24*60*60);
+ $query = $db->simple_select("users", "uid", "regdate <= ".(int)$regdate." AND postnum <= ".(int)$mybb->settings['prunepostcount']." AND usergroup IN(".$db->escape_string(implode(',', $in_usergroups)).")");
+ while($user = $db->fetch_array($query))
+ {
+ $users[$user['uid']] = $user['uid'];
+ }
+ }
+
+ // Are we pruning unactivated users?
+ if($mybb->settings['pruneunactived'] == 1)
+ {
+ $regdate = TIME_NOW-((int)$mybb->settings['dayspruneunactivated']*24*60*60);
+ $query = $db->simple_select("users", "uid", "regdate <= ".(int)$regdate." AND usergroup='5'");
+ while($user = $db->fetch_array($query))
+ {
+ $users[$user['uid']] = $user['uid'];
+ }
+ }
+
+ if(is_object($plugins))
+ {
+ $args = array(
+ 'task' => &$task,
+ 'in_usergroups' => &$in_usergroups,
+ 'users' => &$users,
+ );
+ $plugins->run_hooks('task_userpruning', $args);
+ }
+
+ if(!empty($users))
+ {
+ // Set up user handler.
+ require_once MYBB_ROOT.'inc/datahandlers/user.php';
+ $userhandler = new UserDataHandler('delete');
+
+ // Delete the prunned users
+ $userhandler->delete_user($users, $mybb->settings['prunethreads']);
+ }
+
+ add_task_log($task, $lang->task_userpruning_ran);
+}
diff --git a/Upload/inc/tasks/versioncheck.php b/Upload/inc/tasks/versioncheck.php
new file mode 100644
index 0000000..08109c7
--- /dev/null
+++ b/Upload/inc/tasks/versioncheck.php
@@ -0,0 +1,99 @@
+version_code);
+
+ $updated_cache = array(
+ 'last_check' => TIME_NOW
+ );
+
+ // Check for the latest version
+ require_once MYBB_ROOT.'inc/class_xml.php';
+ $contents = fetch_remote_file("http://www.mybb.com/version_check.php");
+
+ if(!$contents)
+ {
+ add_task_log($task, $lang->task_versioncheck_ran_errors);
+ return false;
+ }
+
+ $pos = strpos($contents, "<");
+ if($pos > 1)
+ {
+ $contents = substr($contents, $pos);
+ }
+
+ $pos = strpos(strrev($contents), ">");
+ if($pos > 1)
+ {
+ $contents = substr($contents, 0, (-1) * ($pos-1));
+ }
+
+ $parser = new XMLParser($contents);
+ $tree = $parser->get_tree();
+
+ $latest_code = (int)$tree['mybb']['version_code']['value'];
+ $latest_version = "
".htmlspecialchars_uni($tree['mybb']['latest_version']['value'])." (".$latest_code.")";
+ if($latest_code > $mybb->version_code)
+ {
+ $latest_version = "
".$latest_version." ";
+ $version_warn = 1;
+ $updated_cache['latest_version'] = $latest_version;
+ $updated_cache['latest_version_code'] = $latest_code;
+ }
+ else
+ {
+ $latest_version = "
".$latest_version." ";
+ }
+
+ // Check for the latest news
+ require_once MYBB_ROOT."inc/class_feedparser.php";
+
+ $feed_parser = new FeedParser();
+ $feed_parser->parse_feed("http://feeds.feedburner.com/MyBBDevelopmentBlog");
+
+ $updated_cache['news'] = array();
+
+ require_once MYBB_ROOT . '/inc/class_parser.php';
+ $post_parser = new postParser();
+
+ if($feed_parser->error == '')
+ {
+ foreach($feed_parser->items as $item)
+ {
+ if (isset($updated_cache['news'][2]))
+ {
+ break;
+ }
+
+ $description = $item['description'];
+
+ $description = $post_parser->parse_message($description, array(
+ 'allow_html' => true,
+ )
+ );
+
+ $updated_cache['news'][] = array(
+ 'title' => htmlspecialchars_uni($item['title']),
+ 'description' => preg_replace('#
#', '', $description),
+ 'link' => htmlspecialchars_uni($item['link']),
+ 'author' => htmlspecialchars_uni($item['author']),
+ 'dateline' => $item['date_timestamp']
+ );
+ }
+ }
+
+ $cache->update("update_check", $updated_cache);
+ add_task_log($task, $lang->task_versioncheck_ran);
+}
diff --git a/Upload/index.php b/Upload/index.php
new file mode 100644
index 0000000..f55ffe6
--- /dev/null
+++ b/Upload/index.php
@@ -0,0 +1,390 @@
+run_hooks('index_start');
+
+// Load global language phrases
+$lang->load('index');
+
+$logoutlink = '';
+if($mybb->user['uid'] != 0)
+{
+ eval('$logoutlink = "'.$templates->get('index_logoutlink').'";');
+}
+
+$statspage = '';
+if($mybb->settings['statsenabled'] != 0)
+{
+ eval('$statspage = "'.$templates->get('index_statspage').'";');
+}
+
+$whosonline = '';
+if($mybb->settings['showwol'] != 0 && $mybb->usergroup['canviewonline'] != 0)
+{
+ // Get the online users.
+ if($mybb->settings['wolorder'] == 'username')
+ {
+ $order_by = 'u.username ASC';
+ $order_by2 = 's.time DESC';
+ }
+ else
+ {
+ $order_by = 's.time DESC';
+ $order_by2 = 'u.username ASC';
+ }
+
+ $timesearch = TIME_NOW - (int)$mybb->settings['wolcutoff'];
+ $comma = '';
+ $query = $db->query("
+ SELECT s.sid, s.ip, s.uid, s.time, s.location, s.location1, u.username, u.invisible, u.usergroup, u.displaygroup
+ FROM ".TABLE_PREFIX."sessions s
+ LEFT JOIN ".TABLE_PREFIX."users u ON (s.uid=u.uid)
+ WHERE s.time > '".$timesearch."'
+ ORDER BY {$order_by}, {$order_by2}
+ ");
+
+ $forum_viewers = $doneusers = array();
+ $membercount = $guestcount = $anoncount = $botcount = 0;
+ $onlinemembers = $comma = '';
+
+ // Fetch spiders
+ $spiders = $cache->read('spiders');
+
+ // Loop through all users.
+ while($user = $db->fetch_array($query))
+ {
+ // Create a key to test if this user is a search bot.
+ $botkey = my_strtolower(str_replace('bot=', '', $user['sid']));
+
+ // Decide what type of user we are dealing with.
+ if($user['uid'] > 0)
+ {
+ // The user is registered.
+ if(empty($doneusers[$user['uid']]) || $doneusers[$user['uid']] < $user['time'])
+ {
+ // If the user is logged in anonymously, update the count for that.
+ if($user['invisible'] == 1)
+ {
+ ++$anoncount;
+ }
+ ++$membercount;
+ if($user['invisible'] != 1 || $mybb->usergroup['canviewwolinvis'] == 1 || $user['uid'] == $mybb->user['uid'])
+ {
+ // If this usergroup can see anonymously logged-in users, mark them.
+ if($user['invisible'] == 1)
+ {
+ $invisiblemark = '*';
+ }
+ else
+ {
+ $invisiblemark = '';
+ }
+
+ // Properly format the username and assign the template.
+ $user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
+ $user['profilelink'] = build_profile_link($user['username'], $user['uid']);
+ eval('$onlinemembers .= "'.$templates->get('index_whosonline_memberbit', 1, 0).'";');
+ $comma = $lang->comma;
+ }
+ // This user has been handled.
+ $doneusers[$user['uid']] = $user['time'];
+ }
+ }
+ elseif(my_strpos($user['sid'], 'bot=') !== false && $spiders[$botkey])
+ {
+ // The user is a search bot.
+ $onlinemembers .= $comma.format_name($spiders[$botkey]['name'], $spiders[$botkey]['usergroup']);
+ $comma = $lang->comma;
+ ++$botcount;
+ }
+ else
+ {
+ // The user is a guest.
+ ++$guestcount;
+ }
+
+ if($user['location1'])
+ {
+ ++$forum_viewers[$user['location1']];
+ }
+ }
+
+ // Build the who's online bit on the index page.
+ $onlinecount = $membercount + $guestcount + $botcount;
+
+ if($onlinecount != 1)
+ {
+ $onlinebit = $lang->online_online_plural;
+ }
+ else
+ {
+ $onlinebit = $lang->online_online_singular;
+ }
+ if($membercount != 1)
+ {
+ $memberbit = $lang->online_member_plural;
+ }
+ else
+ {
+ $memberbit = $lang->online_member_singular;
+ }
+ if($anoncount != 1)
+ {
+ $anonbit = $lang->online_anon_plural;
+ }
+ else
+ {
+ $anonbit = $lang->online_anon_singular;
+ }
+ if($guestcount != 1)
+ {
+ $guestbit = $lang->online_guest_plural;
+ }
+ else
+ {
+ $guestbit = $lang->online_guest_singular;
+ }
+ $lang->online_note = $lang->sprintf($lang->online_note, my_number_format($onlinecount), $onlinebit, $mybb->settings['wolcutoffmins'], my_number_format($membercount), $memberbit, my_number_format($anoncount), $anonbit, my_number_format($guestcount), $guestbit);
+ eval('$whosonline = "'.$templates->get('index_whosonline').'";');
+}
+
+// Build the birthdays for to show on the index page.
+$bdays = $birthdays = '';
+if($mybb->settings['showbirthdays'] != 0)
+{
+ // First, see what day this is.
+ $bdaycount = $bdayhidden = 0;
+ $bdaydate = my_date('j-n', TIME_NOW, '', 0);
+ $year = my_date('Y', TIME_NOW, '', 0);
+
+ $bdaycache = $cache->read('birthdays');
+
+ if(!is_array($bdaycache))
+ {
+ $cache->update_birthdays();
+ $bdaycache = $cache->read('birthdays');
+ }
+
+ $hiddencount = $today_bdays = 0;
+ if(isset($bdaycache[$bdaydate]))
+ {
+ $hiddencount = $bdaycache[$bdaydate]['hiddencount'];
+ $today_bdays = $bdaycache[$bdaydate]['users'];
+ }
+
+ $comma = '';
+ if(!empty($today_bdays))
+ {
+ if((int)$mybb->settings['showbirthdayspostlimit'] > 0)
+ {
+ $bdayusers = array();
+ foreach($today_bdays as $key => $bdayuser_pc)
+ {
+ $bdayusers[$bdayuser_pc['uid']] = $key;
+ }
+
+ if(!empty($bdayusers))
+ {
+ // Find out if our users have enough posts to be seen on our birthday list
+ $bday_sql = implode(',', array_keys($bdayusers));
+ $query = $db->simple_select('users', 'uid, postnum', "uid IN ({$bday_sql})");
+
+ while($bdayuser = $db->fetch_array($query))
+ {
+ if($bdayuser['postnum'] < $mybb->settings['showbirthdayspostlimit'])
+ {
+ unset($today_bdays[$bdayusers[$bdayuser['uid']]]);
+ }
+ }
+ }
+ }
+
+ // We still have birthdays - display them in our list!
+ if(!empty($today_bdays))
+ {
+ foreach($today_bdays as $bdayuser)
+ {
+ if($bdayuser['displaygroup'] == 0)
+ {
+ $bdayuser['displaygroup'] = $bdayuser['usergroup'];
+ }
+
+ // If this user's display group can't be seen in the birthday list, skip it
+ if($groupscache[$bdayuser['displaygroup']] && $groupscache[$bdayuser['displaygroup']]['showinbirthdaylist'] != 1)
+ {
+ continue;
+ }
+
+ $age = '';
+ $bday = explode('-', $bdayuser['birthday']);
+ if($year > $bday['2'] && $bday['2'] != '')
+ {
+ $age = ' ('.($year - $bday['2']).')';
+ }
+
+ $bdayuser['username'] = format_name($bdayuser['username'], $bdayuser['usergroup'], $bdayuser['displaygroup']);
+ $bdayuser['profilelink'] = build_profile_link($bdayuser['username'], $bdayuser['uid']);
+ eval('$bdays .= "'.$templates->get('index_birthdays_birthday', 1, 0).'";');
+ ++$bdaycount;
+ $comma = $lang->comma;
+ }
+ }
+ }
+
+ if($hiddencount > 0)
+ {
+ if($bdaycount > 0)
+ {
+ $bdays .= ' - ';
+ }
+
+ $bdays .= "{$hiddencount} {$lang->birthdayhidden}";
+ }
+
+ // If there are one or more birthdays, show them.
+ if($bdaycount > 0 || $hiddencount > 0)
+ {
+ eval('$birthdays = "'.$templates->get('index_birthdays').'";');
+ }
+}
+
+// Build the forum statistics to show on the index page.
+$forumstats = '';
+if($mybb->settings['showindexstats'] != 0)
+{
+ // First, load the stats cache.
+ $stats = $cache->read('stats');
+
+ // Check who's the newest member.
+ if(!$stats['lastusername'])
+ {
+ $newestmember = $lang->nobody;;
+ }
+ else
+ {
+ $newestmember = build_profile_link($stats['lastusername'], $stats['lastuid']);
+ }
+
+ // Format the stats language.
+ $lang->stats_posts_threads = $lang->sprintf($lang->stats_posts_threads, my_number_format($stats['numposts']), my_number_format($stats['numthreads']));
+ $lang->stats_numusers = $lang->sprintf($lang->stats_numusers, my_number_format($stats['numusers']));
+ $lang->stats_newestuser = $lang->sprintf($lang->stats_newestuser, $newestmember);
+
+ // Find out what the highest users online count is.
+ $mostonline = $cache->read('mostonline');
+ if($onlinecount > $mostonline['numusers'])
+ {
+ $time = TIME_NOW;
+ $mostonline['numusers'] = $onlinecount;
+ $mostonline['time'] = $time;
+ $cache->update('mostonline', $mostonline);
+ }
+ $recordcount = $mostonline['numusers'];
+ $recorddate = my_date($mybb->settings['dateformat'], $mostonline['time']);
+ $recordtime = my_date($mybb->settings['timeformat'], $mostonline['time']);
+
+ // Then format that language string.
+ $lang->stats_mostonline = $lang->sprintf($lang->stats_mostonline, my_number_format($recordcount), $recorddate, $recordtime);
+
+ eval('$forumstats = "'.$templates->get('index_stats').'";');
+}
+
+// Show the board statistics table only if one or more index statistics are enabled.
+$boardstats = '';
+if(($mybb->settings['showwol'] != 0 && $mybb->usergroup['canviewonline'] != 0) || $mybb->settings['showindexstats'] != 0 || ($mybb->settings['showbirthdays'] != 0 && $bdaycount > 0))
+{
+ if(!isset($stats) || isset($stats) && !is_array($stats))
+ {
+ // Load the stats cache.
+ $stats = $cache->read('stats');
+ }
+
+ $post_code_string = '';
+ if($mybb->user['uid'])
+ {
+ $post_code_string = '&my_post_key='.$mybb->post_code;
+ }
+
+ eval('$boardstats = "'.$templates->get('index_boardstats').'";');
+}
+
+if($mybb->user['uid'] == 0)
+{
+ // Build a forum cache.
+ $query = $db->simple_select('forums', '*', 'active!=0', array('order_by' => 'pid, disporder'));
+
+ $forumsread = array();
+ if(isset($mybb->cookies['mybb']['forumread']))
+ {
+ $forumsread = my_unserialize($mybb->cookies['mybb']['forumread']);
+ }
+}
+else
+{
+ // Build a forum cache.
+ $query = $db->query("
+ SELECT f.*, fr.dateline AS lastread
+ FROM ".TABLE_PREFIX."forums f
+ LEFT JOIN ".TABLE_PREFIX."forumsread fr ON (fr.fid = f.fid AND fr.uid = '{$mybb->user['uid']}')
+ WHERE f.active != 0
+ ORDER BY pid, disporder
+ ");
+}
+
+while($forum = $db->fetch_array($query))
+{
+ if($mybb->user['uid'] == 0)
+ {
+ if(!empty($forumsread[$forum['fid']]))
+ {
+ $forum['lastread'] = $forumsread[$forum['fid']];
+ }
+ }
+ $fcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
+}
+$forumpermissions = forum_permissions();
+
+// Get the forum moderators if the setting is enabled.
+$moderatorcache = array();
+if($mybb->settings['modlist'] != 0 && $mybb->settings['modlist'] != 'off')
+{
+ $moderatorcache = $cache->read('moderators');
+}
+
+$excols = 'index';
+$permissioncache['-1'] = '1';
+$bgcolor = 'trow1';
+
+// Decide if we're showing first-level subforums on the index page.
+$showdepth = 2;
+if($mybb->settings['subforumsindex'] != 0)
+{
+ $showdepth = 3;
+}
+
+$forum_list = build_forumbits();
+$forums = $forum_list['forum_list'];
+
+$plugins->run_hooks('index_end');
+
+eval('$index = "'.$templates->get('index').'";');
+output_page($index);
diff --git a/Upload/install/images/active.png b/Upload/install/images/active.png
new file mode 100644
index 0000000..be3f314
Binary files /dev/null and b/Upload/install/images/active.png differ
diff --git a/Upload/install/images/inactive.png b/Upload/install/images/inactive.png
new file mode 100644
index 0000000..515bab3
Binary files /dev/null and b/Upload/install/images/inactive.png differ
diff --git a/Upload/install/images/index.html b/Upload/install/images/index.html
new file mode 100644
index 0000000..efd2f36
--- /dev/null
+++ b/Upload/install/images/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/install/images/logo.png b/Upload/install/images/logo.png
new file mode 100644
index 0000000..c1193d6
Binary files /dev/null and b/Upload/install/images/logo.png differ
diff --git a/Upload/install/images/submit_bg.png b/Upload/install/images/submit_bg.png
new file mode 100644
index 0000000..387093b
Binary files /dev/null and b/Upload/install/images/submit_bg.png differ
diff --git a/Upload/install/images/tcat.png b/Upload/install/images/tcat.png
new file mode 100644
index 0000000..6dd528f
Binary files /dev/null and b/Upload/install/images/tcat.png differ
diff --git a/Upload/install/images/thead.png b/Upload/install/images/thead.png
new file mode 100644
index 0000000..575dc0e
Binary files /dev/null and b/Upload/install/images/thead.png differ
diff --git a/Upload/install/index.php b/Upload/install/index.php
new file mode 100644
index 0000000..0bc8f97
--- /dev/null
+++ b/Upload/install/index.php
@@ -0,0 +1,2500 @@
+set_path(MYBB_ROOT.'install/resources');
+$lang->load('language');
+
+// Prevent any shut down functions from running
+$done_shutdown = 1;
+
+// Include the necessary contants for installation
+$grouppermignore = array('gid', 'type', 'title', 'description', 'namestyle', 'usertitle', 'stars', 'starimage', 'image');
+$groupzerogreater = array('pmquota', 'maxpmrecipients', 'maxreputationsday', 'attachquota', 'maxemails', 'maxwarningsday', 'maxposts', 'edittimelimit', 'canusesigxposts', 'maxreputationsperthread');
+$displaygroupfields = array('title', 'description', 'namestyle', 'usertitle', 'stars', 'starimage', 'image');
+$fpermfields = array('canview', 'candlattachments', 'canpostthreads', 'canpostreplys', 'canpostattachments', 'canratethreads', 'caneditposts', 'candeleteposts', 'candeletethreads', 'caneditattachments', 'canpostpolls', 'canvotepolls', 'cansearch');
+
+// Include the installation resources
+require_once INSTALL_ROOT.'resources/output.php';
+$output = new installerOutput;
+
+$dboptions = array();
+
+if(function_exists('mysqli_connect'))
+{
+ $dboptions['mysqli'] = array(
+ 'class' => 'DB_MySQLi',
+ 'title' => 'MySQL Improved',
+ 'short_title' => 'MySQLi',
+ 'structure_file' => 'mysql_db_tables.php',
+ 'population_file' => 'mysql_db_inserts.php'
+ );
+}
+
+if(function_exists('mysql_connect'))
+{
+ $dboptions['mysql'] = array(
+ 'class' => 'DB_MySQL',
+ 'title' => 'MySQL',
+ 'short_title' => 'MySQL',
+ 'structure_file' => 'mysql_db_tables.php',
+ 'population_file' => 'mysql_db_inserts.php'
+ );
+}
+
+if(function_exists('pg_connect'))
+{
+ $dboptions['pgsql'] = array(
+ 'class' => 'DB_PgSQL',
+ 'title' => 'PostgreSQL',
+ 'short_title' => 'PostgreSQL',
+ 'structure_file' => 'pgsql_db_tables.php',
+ 'population_file' => 'mysql_db_inserts.php'
+ );
+}
+
+if(class_exists('PDO'))
+{
+ $supported_dbs = PDO::getAvailableDrivers();
+ if(in_array('sqlite', $supported_dbs))
+ {
+ $dboptions['sqlite'] = array(
+ 'class' => 'DB_SQLite',
+ 'title' => 'SQLite 3',
+ 'short_title' => 'SQLite',
+ 'structure_file' => 'sqlite_db_tables.php',
+ 'population_file' => 'mysql_db_inserts.php'
+ );
+ }
+}
+
+if(file_exists('lock') && $mybb->dev_mode != true)
+{
+ $output->print_error($lang->locked);
+}
+else if($installed == true && empty($mybb->input['action']))
+{
+ $output->print_header($lang->already_installed, "errormsg", 0);
+ echo $lang->sprintf($lang->mybb_already_installed, $mybb->version);
+ $output->print_footer();
+}
+else
+{
+ $output->steps = array(
+ 'intro' => $lang->welcome,
+ 'license' => $lang->license_agreement,
+ 'requirements_check' => $lang->req_check,
+ 'database_info' => $lang->db_config,
+ 'create_tables' => $lang->table_creation,
+ 'populate_tables' => $lang->data_insertion,
+ 'templates' => $lang->theme_install,
+ 'configuration' => $lang->board_config,
+ 'adminuser' => $lang->admin_user,
+ 'final' => $lang->finish_setup,
+ );
+
+ switch($mybb->get_input('action'))
+ {
+ case 'license':
+ license_agreement();
+ break;
+ case 'requirements_check':
+ requirements_check();
+ break;
+ case 'database_info':
+ database_info();
+ break;
+ case 'create_tables':
+ create_tables();
+ break;
+ case 'populate_tables':
+ populate_tables();
+ break;
+ case 'templates':
+ insert_templates();
+ break;
+ case 'configuration':
+ configure();
+ break;
+ case 'adminuser':
+ create_admin_user();
+ break;
+ case 'final':
+ install_done();
+ break;
+ default:
+ $mybb->input['action'] = 'intro';
+ intro();
+ break;
+ }
+}
+
+function intro()
+{
+ global $output, $mybb, $lang;
+
+ $output->print_header($lang->welcome, 'welcome');
+ if(strpos(strtolower($_SERVER['PHP_SELF']), "upload/") !== false)
+ {
+ echo $lang->sprintf($lang->mybb_incorrect_folder);
+ }
+ echo $lang->sprintf($lang->welcome_step, $mybb->version);
+ $output->print_footer('license');
+}
+
+function license_agreement()
+{
+ global $output, $lang, $mybb;
+
+ ob_start();
+ $output->print_header($lang->license_agreement, 'license');
+
+ if($mybb->get_input('allow_anonymous_info', 1) == 1)
+ {
+ require_once MYBB_ROOT."inc/functions_serverstats.php";
+ $build_server_stats = build_server_stats(1, '', $mybb->version_code);
+
+ if($build_server_stats['info_sent_success'] == false)
+ {
+ echo $build_server_stats['info_image'];
+ }
+ }
+ ob_end_flush();
+
+ $license = <<
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+EOF;
+ echo $lang->sprintf($lang->license_step, $license);
+ $output->print_footer('requirements_check');
+}
+
+function requirements_check()
+{
+ global $output, $mybb, $dboptions, $lang;
+
+ $mybb->input['action'] = "requirements_check";
+ $output->print_header($lang->req_check, 'requirements');
+ echo $lang->req_step_top;
+ $errors = array();
+ $showerror = 0;
+
+ if(!file_exists(MYBB_ROOT."/inc/config.php"))
+ {
+ if(!@rename(MYBB_ROOT."/inc/config.default.php", MYBB_ROOT."/inc/config.php"))
+ {
+ if(!$configwritable)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_configdefaultfile);
+ $configstatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_writable);
+ $showerror = 1;
+ }
+ }
+ }
+
+ // Check PHP Version
+ if(version_compare(PHP_VERSION, '5.2.0', "<"))
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->sprintf($lang->req_step_error_phpversion, PHP_VERSION));
+ $phpversion = $lang->sprintf($lang->req_step_span_fail, PHP_VERSION);
+ $showerror = 1;
+ }
+ else
+ {
+ $phpversion = $lang->sprintf($lang->req_step_span_pass, PHP_VERSION);
+ }
+
+ $mboptions = array();
+
+ if(function_exists('mb_detect_encoding'))
+ {
+ $mboptions[] = $lang->multi_byte;
+ }
+
+ if(function_exists('iconv'))
+ {
+ $mboptions[] = 'iconv';
+ }
+
+ // Check Multibyte extensions
+ if(count($mboptions) < 1)
+ {
+ $mbstatus = $lang->sprintf($lang->req_step_span_fail, $lang->none);
+ }
+ else
+ {
+ $mbstatus = implode(', ', $mboptions);
+ }
+
+ // Check database engines
+ if(count($dboptions) < 1)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_dboptions);
+ $dbsupportlist = $lang->sprintf($lang->req_step_span_fail, $lang->none);
+ $showerror = 1;
+ }
+ else
+ {
+ foreach($dboptions as $dboption)
+ {
+ $dbsupportlist[] = $dboption['title'];
+ }
+ $dbsupportlist = implode(', ', $dbsupportlist);
+ }
+
+ // Check XML parser is installed
+ if(!function_exists('xml_parser_create'))
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_xmlsupport);
+ $xmlstatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_installed);
+ $showerror = 1;
+ }
+ else
+ {
+ $xmlstatus = $lang->sprintf($lang->req_step_span_pass, $lang->installed);
+ }
+
+ // Check config file is writable
+ $configwritable = @fopen(MYBB_ROOT.'inc/config.php', 'w');
+ if(!$configwritable)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_configfile);
+ $configstatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_writable);
+ $showerror = 1;
+ }
+ else
+ {
+ $configstatus = $lang->sprintf($lang->req_step_span_pass, $lang->writable);
+ }
+ @fclose($configwritable);
+
+ // Check settings file is writable
+ $settingswritable = @fopen(MYBB_ROOT.'inc/settings.php', 'w');
+ if(!$settingswritable)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_settingsfile);
+ $settingsstatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_writable);
+ $showerror = 1;
+ }
+ else
+ {
+ $settingsstatus = $lang->sprintf($lang->req_step_span_pass, $lang->writable);
+ }
+ @fclose($settingswritable);
+
+ // Check cache directory is writable
+ $cachewritable = @fopen(MYBB_ROOT.'cache/test.write', 'w');
+ if(!$cachewritable)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_cachedir);
+ $cachestatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_writable);
+ $showerror = 1;
+ @fclose($cachewritable);
+ }
+ else
+ {
+ $cachestatus = $lang->sprintf($lang->req_step_span_pass, $lang->writable);
+ @fclose($cachewritable);
+ @my_chmod(MYBB_ROOT.'cache', '0777');
+ @my_chmod(MYBB_ROOT.'cache/test.write', '0777');
+ @unlink(MYBB_ROOT.'cache/test.write');
+ }
+
+ // Check upload directory is writable
+ $uploadswritable = @fopen(MYBB_ROOT.'uploads/test.write', 'w');
+ if(!$uploadswritable)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_uploaddir);
+ $uploadsstatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_writable);
+ $showerror = 1;
+ @fclose($uploadswritable);
+ }
+ else
+ {
+ $uploadsstatus = $lang->sprintf($lang->req_step_span_pass, $lang->writable);
+ @fclose($uploadswritable);
+ @my_chmod(MYBB_ROOT.'uploads', '0777');
+ @my_chmod(MYBB_ROOT.'uploads/test.write', '0777');
+ @unlink(MYBB_ROOT.'uploads/test.write');
+ }
+
+ // Check avatar directory is writable
+ $avatarswritable = @fopen(MYBB_ROOT.'uploads/avatars/test.write', 'w');
+ if(!$avatarswritable)
+ {
+ $errors[] = $lang->sprintf($lang->req_step_error_box, $lang->req_step_error_avatardir);
+ $avatarsstatus = $lang->sprintf($lang->req_step_span_fail, $lang->not_writable);
+ $showerror = 1;
+ @fclose($avatarswritable);
+ }
+ else
+ {
+ $avatarsstatus = $lang->sprintf($lang->req_step_span_pass, $lang->writable);
+ @fclose($avatarswritable);
+ @my_chmod(MYBB_ROOT.'uploads/avatars', '0777');
+ @my_chmod(MYBB_ROOT.'uploads/avatars/test.write', '0777');
+ @unlink(MYBB_ROOT.'uploads/avatars/test.write');
+ }
+
+ // Output requirements page
+ echo $lang->sprintf($lang->req_step_reqtable, $phpversion, $dbsupportlist, $mbstatus, $xmlstatus, $configstatus, $settingsstatus, $cachestatus, $uploadsstatus, $avatarsstatus);
+
+ if($showerror == 1)
+ {
+ $error_list = error_list($errors);
+ echo $lang->sprintf($lang->req_step_error_tablelist, $error_list);
+ echo "\n input['action']}\" />";
+ echo "\n recheck} »\" />
\n";
+ $output->print_footer();
+ }
+ else
+ {
+ echo $lang->req_step_reqcomplete;
+ $output->print_footer('database_info');
+ }
+}
+
+function database_info()
+{
+ global $output, $dbinfo, $errors, $mybb, $dboptions, $lang;
+
+ $mybb->input['action'] = 'database_info';
+ $output->print_header($lang->db_config, 'dbconfig');
+
+ echo "";
+
+ // Check for errors from this stage
+ if(is_array($errors))
+ {
+ $error_list = error_list($errors);
+ echo $lang->sprintf($lang->db_step_error_config, $error_list);
+ }
+ else
+ {
+ echo $lang->db_step_config_db;
+ }
+
+ $dbengines = '';
+
+ // Loop through database engines
+ foreach($dboptions as $dbfile => $dbtype)
+ {
+ if($mybb->get_input('dbengine') == $dbfile)
+ {
+ $dbengines .= "{$dbtype['title']} ";
+ }
+ else
+ {
+ $dbengines .= "{$dbtype['title']} ";
+ }
+ }
+
+ $db_info = array();
+ foreach($dboptions as $dbfile => $dbtype)
+ {
+ require_once MYBB_ROOT."inc/db_{$dbfile}.php";
+ $db = new $dbtype['class'];
+ $encodings = $db->fetch_db_charsets();
+ $encoding_select = '';
+ $mybb->input['config'] = $mybb->get_input('config', 2);
+ if(empty($mybb->input['config'][$dbfile]['dbhost']))
+ {
+ $mybb->input['config'][$dbfile]['dbhost'] = "localhost";
+ }
+ if(empty($mybb->input['config'][$dbfile]['tableprefix']))
+ {
+ $mybb->input['config'][$dbfile]['tableprefix'] = "mybb_";
+ }
+ if(empty($mybb->input['config'][$dbfile]['dbname']))
+ {
+ $mybb->input['config'][$dbfile]['dbname'] = '';
+ }
+ if(empty($mybb->input['config'][$dbfile]['dbuser']))
+ {
+ $mybb->input['config'][$dbfile]['dbuser'] = '';
+ }
+ if(empty($mybb->input['config'][$dbfile]['dbpass']))
+ {
+ $mybb->input['config'][$dbfile]['dbpass'] = '';
+ }
+ if(empty($mybb->input['config'][$dbfile]['encoding']))
+ {
+ $mybb->input['config'][$dbfile]['encoding'] = "utf8";
+ }
+
+ $class = '';
+ if(empty($first) && !$mybb->get_input('dbengine'))
+ {
+ $mybb->input['dbengine'] = $dbfile;
+ $first = true;
+ }
+ if($dbfile == $mybb->input['dbengine'])
+ {
+ $class = "_selected";
+ }
+
+ $db_info[$dbfile] = "
+
+
+ {$dbtype['title']} {$lang->database_settings}
+ ";
+
+ // SQLite gets some special settings
+ if($dbfile == 'sqlite')
+ {
+ $db_info[$dbfile] .= "
+
+ {$lang->database_path}
+ input['config'][$dbfile]['dbname'])."\" />
+ ";
+ }
+ // Others get db host, username, password etc
+ else
+ {
+ $db_info[$dbfile] .= "
+
+ {$lang->database_host}
+ input['config'][$dbfile]['dbhost'])."\" />
+
+
+ {$lang->database_user}
+ input['config'][$dbfile]['dbuser'])."\" />
+
+
+ {$lang->database_pass}
+ input['config'][$dbfile]['dbpass'])."\" />
+
+
+ {$lang->database_name}
+ input['config'][$dbfile]['dbname'])."\" />
+ ";
+ }
+
+ // Now we're up to table settings
+ $db_info[$dbfile] .= "
+
+ {$dbtype['title']} {$lang->table_settings}
+
+
+ {$lang->table_prefix}
+ input['config'][$dbfile]['tableprefix'])."\" />
+
+ ";
+
+ // Encoding selection only if supported
+ if(is_array($encodings))
+ {
+ $select_options = "";
+ foreach($encodings as $encoding => $title)
+ {
+ if($mybb->input['config'][$dbfile]['encoding'] == $encoding)
+ {
+ $select_options .= "{$title} ";
+ }
+ else
+ {
+ $select_options .= "{$title} ";
+ }
+ }
+ $db_info[$dbfile] .= "
+
+ {$lang->table_encoding}
+ {$select_options}
+
+ ";
+ }
+ }
+ $dbconfig = implode("", $db_info);
+
+ echo $lang->sprintf($lang->db_step_config_table, $dbengines, $dbconfig);
+ $output->print_footer('create_tables');
+}
+
+function create_tables()
+{
+ global $output, $dbinfo, $errors, $mybb, $dboptions, $lang;
+
+ $mybb->input['dbengine'] = $mybb->get_input('dbengine');
+ if(!file_exists(MYBB_ROOT."inc/db_{$mybb->input['dbengine']}.php"))
+ {
+ $errors[] = $lang->db_step_error_invalidengine;
+ database_info();
+ }
+
+ $mybb->input['config'] = $mybb->get_input('config', 2);
+ $config = $mybb->input['config'][$mybb->input['dbengine']];
+
+ if(strstr($mybb->input['dbengine'], "sqlite") !== false)
+ {
+ if(strstr($config['dbname'], "./") !== false || strstr($config['dbname'], "../") !== false || empty($config['dbname']))
+ {
+ $errors[] = $lang->db_step_error_sqlite_invalid_dbname;
+ database_info();
+ }
+ }
+
+ // Attempt to connect to the db
+ require_once MYBB_ROOT."inc/db_{$mybb->input['dbengine']}.php";
+ switch($mybb->input['dbengine'])
+ {
+ case "sqlite":
+ $db = new DB_SQLite;
+ break;
+ case "pgsql":
+ $db = new DB_PgSQL;
+ break;
+ case "mysqli":
+ $db = new DB_MySQLi;
+ break;
+ default:
+ $db = new DB_MySQL;
+ }
+ $db->error_reporting = 0;
+
+ $connect_array = array(
+ "hostname" => $config['dbhost'],
+ "username" => $config['dbuser'],
+ "password" => $config['dbpass'],
+ "database" => $config['dbname'],
+ "encoding" => $config['encoding']
+ );
+
+ $connection = $db->connect($connect_array);
+ if($connection === false)
+ {
+ $errors[] = $lang->sprintf($lang->db_step_error_noconnect, $config['dbhost']);
+ }
+ // double check if the DB exists for MySQL
+ elseif(method_exists($db, 'select_db') && !$db->select_db($config['dbname']))
+ {
+ $errors[] = $lang->sprintf($lang->db_step_error_nodbname, $config['dbname']);
+ }
+
+ // Most DB engines only allow certain characters in the table name. Oracle requires an alphabetic character first.
+ if((!preg_match("#^[A-Za-z][A-Za-z0-9_]*$#", $config['tableprefix'])) && $config['tableprefix'] != '')
+ {
+ $errors[] = $lang->db_step_error_invalid_tableprefix;
+ }
+
+ // Needs to be smaller then 64 characters total (MySQL Limit).
+ // This allows 24 characters for the actual table name, which should be sufficient.
+ if(strlen($config['tableprefix']) > 40)
+ {
+ $errors[] = $lang->db_step_error_tableprefix_too_long;
+ }
+
+ if(($db->engine == 'mysql' || $db->engine == 'mysqli') && $config['encoding'] == 'utf8mb4' && version_compare($db->get_version(), '5.5.3', '<'))
+ {
+ $errors[] = $lang->db_step_error_utf8mb4_error;
+ }
+
+ if(is_array($errors))
+ {
+ database_info();
+ }
+
+ // Decide if we can use a database encoding or not
+ if($db->fetch_db_charsets() != false)
+ {
+ $db_encoding = "\$config['database']['encoding'] = '{$config['encoding']}';";
+ }
+ else
+ {
+ $db_encoding = "// \$config['database']['encoding'] = '{$config['encoding']}';";
+ }
+
+ $config['dbpass'] = addslashes($config['dbpass']);
+
+ // Write the configuration file
+ $configdata = "input['dbengine']}';
+\$config['database']['database'] = '{$config['dbname']}';
+\$config['database']['table_prefix'] = '{$config['tableprefix']}';
+
+\$config['database']['hostname'] = '{$config['dbhost']}';
+\$config['database']['username'] = '{$config['dbuser']}';
+\$config['database']['password'] = '{$config['dbpass']}';
+
+/**
+ * Admin CP directory
+ * For security reasons, it is recommended you
+ * rename your Admin CP directory. You then need
+ * to adjust the value below to point to the
+ * new directory.
+ */
+
+\$config['admin_dir'] = 'admin';
+
+/**
+ * Hide all Admin CP links
+ * If you wish to hide all Admin CP links
+ * on the front end of the board after
+ * renaming your Admin CP directory, set this
+ * to 1.
+ */
+
+\$config['hide_admin_links'] = 0;
+
+/**
+ * Data-cache configuration
+ * The data cache is a temporary cache
+ * of the most commonly accessed data in MyBB.
+ * By default, the database is used to store this data.
+ *
+ * If you wish to use the file system (cache/ directory), MemCache (or MemCached), xcache, APC, or eAccelerator
+ * you can change the value below to 'files', 'memcache', 'memcached', 'xcache', 'apc' or 'eaccelerator' from 'db'.
+ */
+
+\$config['cache_store'] = 'db';
+
+/**
+ * Memcache configuration
+ * If you are using memcache or memcached as your
+ * data-cache, you need to configure the hostname
+ * and port of your memcache server below.
+ *
+ * If not using memcache, ignore this section.
+ */
+
+\$config['memcache']['host'] = 'localhost';
+\$config['memcache']['port'] = 11211;
+
+/**
+ * Super Administrators
+ * A comma separated list of user IDs who cannot
+ * be edited, deleted or banned in the Admin CP.
+ * The administrator permissions for these users
+ * cannot be altered either.
+ */
+
+\$config['super_admins'] = '1';
+
+/**
+ * Database Encoding
+ * If you wish to set an encoding for MyBB uncomment
+ * the line below (if it isn't already) and change
+ * the current value to the mysql charset:
+ * http://dev.mysql.com/doc/refman/5.1/en/charset-mysql.html
+ */
+
+{$db_encoding}
+
+/**
+ * Automatic Log Pruning
+ * The MyBB task system can automatically prune
+ * various log files created by MyBB.
+ * To enable this functionality for the logs below, set the
+ * the number of days before each log should be pruned.
+ * If you set the value to 0, the logs will not be pruned.
+ */
+
+\$config['log_pruning'] = array(
+ 'admin_logs' => 365, // Administrator logs
+ 'mod_logs' => 365, // Moderator logs
+ 'task_logs' => 30, // Scheduled task logs
+ 'mail_logs' => 180, // Mail error logs
+ 'user_mail_logs' => 180, // User mail logs
+ 'promotion_logs' => 180 // Promotion logs
+);
+
+";
+
+ $file = fopen(MYBB_ROOT.'inc/config.php', 'w');
+ fwrite($file, $configdata);
+ fclose($file);
+
+ // Error reporting back on
+ $db->error_reporting = 1;
+
+ $output->print_header($lang->table_creation, 'createtables');
+ echo $lang->sprintf($lang->tablecreate_step_connected, $dboptions[$mybb->input['dbengine']]['short_title'], $db->get_version());
+
+ if($dboptions[$mybb->input['dbengine']]['structure_file'])
+ {
+ $structure_file = $dboptions[$mybb->input['dbengine']]['structure_file'];
+ }
+ else
+ {
+ $structure_file = 'mysql_db_tables.php';
+ }
+
+ require_once INSTALL_ROOT."resources/{$structure_file}";
+ foreach($tables as $val)
+ {
+ $val = preg_replace('#mybb_(\S+?)([\s\.,\(]|$)#', $config['tableprefix'].'\\1\\2', $val);
+ $val = preg_replace('#;$#', $db->build_create_table_collation().";", $val);
+ preg_match('#CREATE TABLE (\S+)(\s?|\(?)\(#i', $val, $match);
+ if($match[1])
+ {
+ $db->drop_table($match[1], false, false);
+ echo $lang->sprintf($lang->tablecreate_step_created, $match[1]);
+ }
+ $db->query($val);
+ if($match[1])
+ {
+ echo $lang->done . " \n";
+ }
+ }
+ echo $lang->tablecreate_step_done;
+ $output->print_footer('populate_tables');
+}
+
+function populate_tables()
+{
+ global $output, $lang;
+
+ require MYBB_ROOT.'inc/config.php';
+ $db = db_connection($config);
+
+ $output->print_header($lang->table_population, 'tablepopulate');
+ echo $lang->sprintf($lang->populate_step_insert);
+
+ if(!empty($dboptions[$db->type]['population_file']))
+ {
+ $population_file = $dboptions[$db->type]['population_file'];
+ }
+ else
+ {
+ $population_file = 'mysql_db_inserts.php';
+ }
+
+ require_once INSTALL_ROOT."resources/{$population_file}";
+ foreach($inserts as $val)
+ {
+ $val = preg_replace('#mybb_(\S+?)([\s\.,]|$)#', $config['database']['table_prefix'].'\\1\\2', $val);
+ $db->query($val);
+ }
+
+ // Update the sequences for PgSQL
+ if($config['database']['type'] == "pgsql")
+ {
+ $db->query("SELECT setval('{$config['database']['table_prefix']}attachtypes_atid_seq', (SELECT max(atid) FROM {$config['database']['table_prefix']}attachtypes));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}forums_fid_seq', (SELECT max(fid) FROM {$config['database']['table_prefix']}forums));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}helpdocs_hid_seq', (SELECT max(hid) FROM {$config['database']['table_prefix']}helpdocs));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}helpsections_sid_seq', (SELECT max(sid) FROM {$config['database']['table_prefix']}helpsections));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}icons_iid_seq', (SELECT max(iid) FROM {$config['database']['table_prefix']}icons));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}profilefields_fid_seq', (SELECT max(fid) FROM {$config['database']['table_prefix']}profilefields));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}smilies_sid_seq', (SELECT max(sid) FROM {$config['database']['table_prefix']}smilies));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}spiders_sid_seq', (SELECT max(sid) FROM {$config['database']['table_prefix']}spiders));");
+ $db->query("SELECT setval('{$config['database']['table_prefix']}templategroups_gid_seq', (SELECT max(gid) FROM {$config['database']['table_prefix']}templategroups));");
+ }
+
+ echo $lang->populate_step_inserted;
+ $output->print_footer('templates');
+}
+
+function insert_templates()
+{
+ global $mybb, $output, $cache, $db, $lang;
+
+ require MYBB_ROOT.'inc/config.php';
+ $db = db_connection($config);
+
+ require_once MYBB_ROOT.'inc/class_datacache.php';
+ $cache = new datacache;
+
+ $output->print_header($lang->theme_installation, 'theme');
+
+ echo $lang->theme_step_importing;
+
+ $db->delete_query("themes");
+ $db->delete_query("templates");
+ $db->delete_query("themestylesheets");
+ my_rmdir_recursive(MYBB_ROOT."cache/themes", array(MYBB_ROOT."cache/themes/index.html"));
+
+ $insert_array = array(
+ 'title' => 'Default Templates'
+ );
+ $templateset = $db->insert_query("templatesets", $insert_array);
+
+ $contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme.xml');
+ if(!empty($mybb->config['admin_dir']) && file_exists(MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php"))
+ {
+ require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions.php";
+ require_once MYBB_ROOT.$mybb->config['admin_dir']."/inc/functions_themes.php";
+ }
+ elseif(file_exists(MYBB_ROOT."admin/inc/functions_themes.php"))
+ {
+ require_once MYBB_ROOT."admin/inc/functions.php";
+ require_once MYBB_ROOT."admin/inc/functions_themes.php";
+ }
+ else
+ {
+ $output->print_error("Upewnij się, że folder /admin został poprawnie przesłany na serwer.");
+ }
+ $theme_id = import_theme_xml($contents, array("templateset" => -2, "version_compat" => 1));
+ $tid = build_new_theme("Default", null, $theme_id);
+
+ // Update our properties template set to the correct one
+ $query = $db->simple_select("themes", "stylesheets, properties", "tid='{$tid}'", array('limit' => 1));
+
+ $theme = $db->fetch_array($query);
+ $properties = my_unserialize($theme['properties']);
+ $stylesheets = my_unserialize($theme['stylesheets']);
+
+ $properties['templateset'] = $templateset;
+ unset($properties['inherited']['templateset']);
+
+ // 1.8: Stylesheet Colors
+ $contents = @file_get_contents(INSTALL_ROOT.'resources/mybb_theme_colors.xml');
+
+ require_once MYBB_ROOT."inc/class_xml.php";
+ $parser = new XMLParser($contents);
+ $tree = $parser->get_tree();
+
+ if(is_array($tree) && is_array($tree['colors']))
+ {
+ if(is_array($tree['colors']['scheme']))
+ {
+ foreach($tree['colors']['scheme'] as $tag => $value)
+ {
+ $exp = explode("=", $value['value']);
+
+ $properties['colors'][$exp[0]] = $exp[1];
+ }
+ }
+
+ if(is_array($tree['colors']['stylesheets']))
+ {
+ $count = count($properties['disporder']) + 1;
+ foreach($tree['colors']['stylesheets']['stylesheet'] as $stylesheet)
+ {
+ $new_stylesheet = array(
+ "name" => $db->escape_string($stylesheet['attributes']['name']),
+ "tid" => $tid,
+ "attachedto" => $db->escape_string($stylesheet['attributes']['attachedto']),
+ "stylesheet" => $db->escape_string($stylesheet['value']),
+ "lastmodified" => TIME_NOW,
+ "cachefile" => $db->escape_string($stylesheet['attributes']['name'])
+ );
+
+ $sid = $db->insert_query("themestylesheets", $new_stylesheet);
+ $css_url = "css.php?stylesheet={$sid}";
+
+ $cached = cache_stylesheet($tid, $stylesheet['attributes']['name'], $stylesheet['value']);
+
+ if($cached)
+ {
+ $css_url = $cached;
+ }
+
+ // Add to display and stylesheet list
+ $properties['disporder'][$stylesheet['attributes']['name']] = $count;
+ $stylesheets[$stylesheet['attributes']['attachedto']]['global'][] = $css_url;
+
+ ++$count;
+ }
+ }
+ }
+
+ $db->update_query("themes", array("def" => 1, "properties" => $db->escape_string(serialize($properties)), "stylesheets" => $db->escape_string(serialize($stylesheets))), "tid = '{$tid}'");
+
+ echo $lang->theme_step_imported;
+ $output->print_footer('configuration');
+}
+
+function configure()
+{
+ global $output, $mybb, $errors, $lang;
+
+ $output->print_header($lang->board_config, 'config');
+
+ echo <<
+ function warnUser(inp, warn)
+ {
+ var parenttr = $('#'+inp.id).closest('tr');
+ if(inp.value != inp.defaultValue)
+ {
+ if(!parenttr.next('.setting_peeker').length)
+ {
+ var revertlink = ' {$lang->config_step_revert} ';
+ parenttr.removeClass('last').after(''+warn+revertlink+' ');
+ }
+ } else {
+ parenttr.next('.setting_peeker').remove();
+ if(parenttr.is(':last-child'))
+ {
+ parenttr.addClass('last');
+ }
+ }
+ }
+
+ function revertSetting(defval, inpid)
+ {
+ $(inpid).val(defval);
+ var parenttr = $(inpid).closest('tr');
+ parenttr.next('.setting_peeker').remove();
+ if(parenttr.is(':last-child'))
+ {
+ parenttr.addClass('last');
+ }
+ }
+
+
+EOF;
+
+ // If board configuration errors
+ if(is_array($errors))
+ {
+ $error_list = error_list($errors);
+ echo $lang->sprintf($lang->config_step_error_config, $error_list);
+
+ $bbname = htmlspecialchars_uni($mybb->get_input('bbname'));
+ $bburl = htmlspecialchars_uni($mybb->get_input('bburl'));
+ $websitename = htmlspecialchars_uni($mybb->get_input('websitename'));
+ $websiteurl = htmlspecialchars_uni($mybb->get_input('websiteurl'));
+ $cookiedomain = htmlspecialchars_uni($mybb->get_input('cookiedomain'));
+ $cookiepath = htmlspecialchars_uni($mybb->get_input('cookiepath'));
+ $contactemail = htmlspecialchars_uni($mybb->get_input('contactemail'));
+ }
+ else
+ {
+ $bbname = 'Moje forum';
+ $cookiedomain = '';
+ $cookiepath = '/';
+ $websitename = 'Moja witryna';
+ $contactemail = '';
+
+ $protocol = "http://";
+ if((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "off"))
+ {
+ $protocol = "https://";
+ }
+
+ // Attempt auto-detection
+ if($_SERVER['HTTP_HOST'])
+ {
+ $hostname = $protocol.$_SERVER['HTTP_HOST'];
+ $cookiedomain = $_SERVER['HTTP_HOST'];
+ }
+ elseif($_SERVER['SERVER_NAME'])
+ {
+ $hostname = $protocol.$_SERVER['SERVER_NAME'];
+ $cookiedomain = $_SERVER['SERVER_NAME'];
+ }
+
+ if(substr($cookiedomain, 0, 4) == "www.")
+ {
+ $cookiedomain = my_substr($cookiedomain, 4);
+ }
+
+ // IP addresses and hostnames are not valid
+ if(my_inet_pton($cookiedomain) !== false || strpos($cookiedomain, '.') === false)
+ {
+ $cookiedomain = '';
+ }
+ else
+ {
+ $cookiedomain = ".{$cookiedomain}";
+ }
+
+ if($_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 && !preg_match("#:[0-9]#i", $hostname))
+ {
+ $hostname .= ':'.$_SERVER['SERVER_PORT'];
+ }
+ $websiteurl = $hostname.'/';
+
+ $currentlocation = get_current_location();
+ if($currentlocation)
+ {
+ // TODO: Change this to find the last position of /install/
+ $pos = my_strpos($currentlocation, '/install/');
+ if($pos === 0)
+ {
+ $cookiepath = "/";
+ }
+ else
+ {
+ $cookiepath = my_substr($currentlocation, 0, $pos).'/';
+ }
+ }
+
+ $currentscript = $hostname.get_current_location();
+
+ if($currentscript)
+ {
+ $bburl = my_substr($currentscript, 0, my_strpos($currentscript, '/install/'));
+ }
+
+ if($_SERVER['SERVER_ADMIN'])
+ {
+ $contactemail = $_SERVER['SERVER_ADMIN'];
+ }
+ }
+
+ echo $lang->sprintf($lang->config_step_table, $bbname, $bburl, $websitename, $websiteurl, $cookiedomain, $cookiepath, $contactemail);
+ $output->print_footer('adminuser');
+}
+
+function create_admin_user()
+{
+ global $output, $mybb, $errors, $db, $lang;
+
+ $mybb->input['action'] = "adminuser";
+ // If no errors then check for errors from last step
+ if(!is_array($errors))
+ {
+ if(empty($mybb->input['bburl']))
+ {
+ $errors[] = $lang->config_step_error_url;
+ }
+ if(empty($mybb->input['bbname']))
+ {
+ $errors[] = $lang->config_step_error_name;
+ }
+ if(is_array($errors))
+ {
+ configure();
+ }
+ }
+ $output->print_header($lang->create_admin, 'admin');
+
+ echo <<
+ function comparePass()
+ {
+ var parenttr = $('#adminpass2').closest('tr');
+ var passval = $('#adminpass2').val();
+ if(passval && passval != $('#adminpass').val())
+ {
+ if(!parenttr.next('.pass_peeker').length)
+ {
+ parenttr.removeClass('last').after('{$lang->admin_step_nomatch} ');
+ }
+ } else {
+ parenttr.addClass('last').next('.pass_peeker').remove();
+ }
+ }
+
+
+EOF;
+
+ if(is_array($errors))
+ {
+ $error_list = error_list($errors);
+ echo $lang->sprintf($lang->admin_step_error_config, $error_list);
+ $adminuser = $mybb->get_input('adminuser');
+ $adminemail = $mybb->get_input('adminemail');
+ }
+ else
+ {
+ require MYBB_ROOT.'inc/config.php';
+ $db = db_connection($config);
+
+ echo $lang->admin_step_setupsettings;
+ $adminuser = $adminemail = '';
+
+ $settings = file_get_contents(INSTALL_ROOT.'resources/settings.xml');
+ $parser = new XMLParser($settings);
+ $parser->collapse_dups = 0;
+ $tree = $parser->get_tree();
+ $groupcount = $settingcount = 0;
+
+ // Insert all the settings
+ foreach($tree['settings'][0]['settinggroup'] as $settinggroup)
+ {
+ $groupdata = array(
+ 'name' => $db->escape_string($settinggroup['attributes']['name']),
+ 'title' => $db->escape_string($settinggroup['attributes']['title']),
+ 'description' => $db->escape_string($settinggroup['attributes']['description']),
+ 'disporder' => (int)$settinggroup['attributes']['disporder'],
+ 'isdefault' => $settinggroup['attributes']['isdefault'],
+ );
+ $gid = $db->insert_query('settinggroups', $groupdata);
+ ++$groupcount;
+ foreach($settinggroup['setting'] as $setting)
+ {
+ $settingdata = array(
+ 'name' => $db->escape_string($setting['attributes']['name']),
+ 'title' => $db->escape_string($setting['title'][0]['value']),
+ 'description' => $db->escape_string($setting['description'][0]['value']),
+ 'optionscode' => $db->escape_string($setting['optionscode'][0]['value']),
+ 'value' => $db->escape_string($setting['settingvalue'][0]['value']),
+ 'disporder' => (int)$setting['disporder'][0]['value'],
+ 'gid' => $gid,
+ 'isdefault' => 1
+ );
+
+ $db->insert_query('settings', $settingdata);
+ $settingcount++;
+ }
+ }
+
+ if(my_substr($mybb->get_input('bburl'), -1, 1) == '/')
+ {
+ $mybb->input['bburl'] = my_substr($mybb->get_input('bburl'), 0, -1);
+ }
+
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('bbname'))), "name='bbname'");
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('bburl'))), "name='bburl'");
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('websitename'))), "name='homename'");
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('websiteurl'))), "name='homeurl'");
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('cookiedomain'))), "name='cookiedomain'");
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('cookiepath'))), "name='cookiepath'");
+ $db->update_query("settings", array('value' => $db->escape_string($mybb->get_input('contactemail'))), "name='adminemail'");
+ $db->update_query("settings", array('value' => 'contact.php'), "name='contactlink'");
+
+ write_settings();
+
+ echo $lang->sprintf($lang->admin_step_insertesettings, $settingcount, $groupcount);
+
+ // Save the acp pin
+ $pin = addslashes($mybb->get_input('pin'));
+
+ $file = @fopen(MYBB_ROOT."inc/config.php", "a");
+
+ @fwrite($file, "/**
+ * Admin CP Secret PIN
+ * If you wish to request a PIN
+ * when someone tries to login
+ * on your Admin CP, enter it below.
+ */
+
+\$config['secret_pin'] = '{$pin}';");
+
+ @fclose($file);
+
+ include_once MYBB_ROOT."inc/functions_task.php";
+ $tasks = file_get_contents(INSTALL_ROOT.'resources/tasks.xml');
+ $parser = new XMLParser($tasks);
+ $parser->collapse_dups = 0;
+ $tree = $parser->get_tree();
+ $taskcount = 0;
+
+ // Insert scheduled tasks
+ foreach($tree['tasks'][0]['task'] as $task)
+ {
+ $new_task = array(
+ 'title' => $db->escape_string($task['title'][0]['value']),
+ 'description' => $db->escape_string($task['description'][0]['value']),
+ 'file' => $db->escape_string($task['file'][0]['value']),
+ 'minute' => $db->escape_string($task['minute'][0]['value']),
+ 'hour' => $db->escape_string($task['hour'][0]['value']),
+ 'day' => $db->escape_string($task['day'][0]['value']),
+ 'weekday' => $db->escape_string($task['weekday'][0]['value']),
+ 'month' => $db->escape_string($task['month'][0]['value']),
+ 'enabled' => $db->escape_string($task['enabled'][0]['value']),
+ 'logging' => $db->escape_string($task['logging'][0]['value'])
+ );
+
+ $new_task['nextrun'] = fetch_next_run($new_task);
+
+ $db->insert_query("tasks", $new_task);
+ $taskcount++;
+ }
+
+ // For the version check task, set a random date and hour (so all MyBB installs don't query mybb.com all at the same time)
+ $update_array = array(
+ 'hour' => rand(0, 23),
+ 'weekday' => rand(0, 6)
+ );
+
+ $db->update_query("tasks", $update_array, "file = 'versioncheck'");
+
+ echo $lang->sprintf($lang->admin_step_insertedtasks, $taskcount);
+
+ $views = file_get_contents(INSTALL_ROOT.'resources/adminviews.xml');
+ $parser = new XMLParser($views);
+ $parser->collapse_dups = 0;
+ $tree = $parser->get_tree();
+ $view_count = 0;
+
+ // Insert admin views
+ foreach($tree['adminviews'][0]['view'] as $view)
+ {
+ $fields = array();
+ foreach($view['fields'][0]['field'] as $field)
+ {
+ $fields[] = $field['attributes']['name'];
+ }
+
+ $conditions = array();
+ if(isset($view['conditions'][0]['condition']) && is_array($view['conditions'][0]['condition']))
+ {
+ foreach($view['conditions'][0]['condition'] as $condition)
+ {
+ if(!$condition['value']) continue;
+ if($condition['attributes']['is_serialized'] == 1)
+ {
+ $condition['value'] = my_unserialize($condition['value']);
+ }
+ $conditions[$condition['attributes']['name']] = $condition['value'];
+ }
+ }
+
+ $custom_profile_fields = array();
+ if(isset($view['custom_profile_fields'][0]['field']) && is_array($view['custom_profile_fields'][0]['field']))
+ {
+ foreach($view['custom_profile_fields'][0]['field'] as $field)
+ {
+ $custom_profile_fields[] = $field['attributes']['name'];
+ }
+ }
+
+ $new_view = array(
+ "uid" => 0,
+ "type" => $db->escape_string($view['attributes']['type']),
+ "visibility" => (int)$view['attributes']['visibility'],
+ "title" => $db->escape_string($view['title'][0]['value']),
+ "fields" => $db->escape_string(serialize($fields)),
+ "conditions" => $db->escape_string(serialize($conditions)),
+ "custom_profile_fields" => $db->escape_string(serialize($custom_profile_fields)),
+ "sortby" => $db->escape_string($view['sortby'][0]['value']),
+ "sortorder" => $db->escape_string($view['sortorder'][0]['value']),
+ "perpage" => (int)$view['perpage'][0]['value'],
+ "view_type" => $db->escape_string($view['view_type'][0]['value'])
+ );
+ $db->insert_query("adminviews", $new_view);
+ $view_count++;
+ }
+
+ echo $lang->sprintf($lang->admin_step_insertedviews, $view_count);
+
+ echo $lang->admin_step_createadmin;
+ }
+
+ echo $lang->sprintf($lang->admin_step_admintable, $adminuser, $adminemail);
+ $output->print_footer('final');
+}
+
+function install_done()
+{
+ global $output, $db, $mybb, $errors, $cache, $lang;
+
+ if(empty($mybb->input['adminuser']))
+ {
+ $errors[] = $lang->admin_step_error_nouser;
+ }
+ if(empty($mybb->input['adminpass']))
+ {
+ $errors[] = $lang->admin_step_error_nopassword;
+ }
+ if($mybb->get_input('adminpass') != $mybb->get_input('adminpass2'))
+ {
+ $errors[] = $lang->admin_step_error_nomatch;
+ }
+ if(empty($mybb->input['adminemail']))
+ {
+ $errors[] = $lang->admin_step_error_noemail;
+ }
+ if(is_array($errors))
+ {
+ create_admin_user();
+ }
+
+ require MYBB_ROOT.'inc/config.php';
+ $db = db_connection($config);
+
+ require MYBB_ROOT.'inc/settings.php';
+ $mybb->settings = &$settings;
+
+ ob_start();
+ $output->print_header($lang->finish_setup, 'finish');
+
+ echo $lang->done_step_usergroupsinserted;
+
+ // Insert all of our user groups from the XML file
+ $usergroup_settings = file_get_contents(INSTALL_ROOT.'resources/usergroups.xml');
+ $parser = new XMLParser($usergroup_settings);
+ $parser->collapse_dups = 0;
+ $tree = $parser->get_tree();
+
+ $admin_gid = '';
+ $group_count = 0;
+ foreach($tree['usergroups'][0]['usergroup'] as $usergroup)
+ {
+ // usergroup[cancp][0][value]
+ $new_group = array();
+ foreach($usergroup as $key => $value)
+ {
+ if(!is_array($value))
+ {
+ continue;
+ }
+
+ $new_group[$key] = $db->escape_string($value[0]['value']);
+ }
+ $db->insert_query("usergroups", $new_group, false);
+
+ // If this group can access the admin CP and we haven't established the admin group - set it (just in case we ever change IDs)
+ if($new_group['cancp'] == 1 && !$admin_gid)
+ {
+ $admin_gid = $usergroup['gid'][0]['value'];
+ }
+ $group_count++;
+ }
+
+ // Restart usergroup sequence with correct # of groups
+ if($config['database']['type'] == "pgsql")
+ {
+ $db->query("SELECT setval('{$config['database']['table_prefix']}usergroups_gid_seq', (SELECT max(gid) FROM {$config['database']['table_prefix']}usergroups));");
+ }
+
+ echo $lang->done . '';
+
+ echo $lang->done_step_admincreated;
+ $now = TIME_NOW;
+ $salt = random_str();
+ $loginkey = generate_loginkey();
+ $saltedpw = md5(md5($salt).md5($mybb->get_input('adminpass')));
+
+ $newuser = array(
+ 'username' => $db->escape_string($mybb->get_input('adminuser')),
+ 'password' => $saltedpw,
+ 'salt' => $salt,
+ 'loginkey' => $loginkey,
+ 'email' => $db->escape_string($mybb->get_input('adminemail')),
+ 'usergroup' => $admin_gid, // assigned above
+ 'regdate' => $now,
+ 'lastactive' => $now,
+ 'lastvisit' => $now,
+ 'website' => '',
+ 'icq' => '',
+ 'aim' => '',
+ 'yahoo' => '',
+ 'skype' =>'',
+ 'google' =>'',
+ 'birthday' => '',
+ 'signature' => '',
+ 'allownotices' => 1,
+ 'hideemail' => 0,
+ 'subscriptionmethod' => '0',
+ 'receivepms' => 1,
+ 'pmnotice' => 1,
+ 'pmnotify' => 1,
+ 'showimages' => 1,
+ 'showvideos' => 1,
+ 'showsigs' => 1,
+ 'showavatars' => 1,
+ 'showquickreply' => 1,
+ 'invisible' => 0,
+ 'style' => '0',
+ 'timezone' => 0,
+ 'dst' => 0,
+ 'threadmode' => '',
+ 'daysprune' => 0,
+ 'regip' => $db->escape_binary(my_inet_pton(get_ip())),
+ 'language' => '',
+ 'showcodebuttons' => 1,
+ 'tpp' => 0,
+ 'ppp' => 0,
+ 'referrer' => 0,
+ 'buddylist' => '',
+ 'ignorelist' => '',
+ 'pmfolders' => '',
+ 'notepad' => '',
+ 'showredirect' => 1,
+ 'usernotes' => ''
+ );
+ $db->insert_query('users', $newuser);
+
+ $welcome_post_title = "Witamy w MyBB!";
+ $welcome_post_message = "Dziękujemy za wybranie MyBB. Instalacja przebiegła poprawnie i Twoje forum jest gotowe do użytku. Jeżeli podczas pracy z MyBB napotkasz jakiś problem, nie bój się zapytać na forum [url=http://forum.mybboard.pl]oficjalnego Polskiego Supportu MyBB[/url]. Zachęcamy Cię także do zapoznania się z naszym [url=http://mybboard.pl]portalem[/url], gdzie możesz znaleźć najnowsze wiadomości ze świata MyBB, oraz do odwiedzenia [url=http://wiki.mybboard.pl]polskiej Wiki[/url]. Powodzenia w przygodzie z MyBB!";
+
+ $welcome_post = array(
+ 'pid' => 1,
+ 'tid' => 1,
+ 'fid' => 2,
+ 'subject' => $welcome_post_title,
+ 'uid' => 1,
+ 'username' => $db->escape_string($mybb->get_input('adminuser')),
+ 'dateline' => $now,
+ 'message' => $welcome_post_message,
+ 'ipaddress' => $db->escape_binary(my_inet_pton(get_ip())),
+ 'visible' => 1);
+
+ $welcome_thread = array(
+ 'tid' => 1,
+ 'fid' => 2,
+ 'subject' => $welcome_post_title,
+ 'uid' => 1,
+ 'username' => $db->escape_string($mybb->get_input('adminuser')),
+ 'dateline' => $now,
+ 'firstpost' => 1,
+ 'lastpost' => $now,
+ 'lastposter' => $db->escape_string($mybb->get_input('adminuser')),
+ 'lastposteruid' => 1,
+ 'views' => 1,
+ 'replies' => 0,
+ 'notes' => '',
+ 'visible' => 1
+ );
+
+ $welcome_update = array(
+ 'threads' => 1,
+ 'posts' => 1,
+ 'lastpost' => $now,
+ 'lastposter' => $db->escape_string($mybb->get_input('adminuser')),
+ 'lastposteruid' => 1,
+ 'lastposttid' => 1,
+ 'lastpostsubject' => $welcome_post_title
+ );
+
+ $db->insert_query('posts',$welcome_post);
+ $db->insert_query('threads',$welcome_thread);
+ $db->update_query('forums', $welcome_update, 'fid = 2');
+
+ echo $lang->done . '';
+
+ echo $lang->done_step_adminoptions;
+ $adminoptions = file_get_contents(INSTALL_ROOT.'resources/adminoptions.xml');
+ $parser = new XMLParser($adminoptions);
+ $parser->collapse_dups = 0;
+ $tree = $parser->get_tree();
+ $insertmodule = array();
+
+ $db->delete_query("adminoptions");
+
+ // Insert all the admin permissions
+ foreach($tree['adminoptions'][0]['user'] as $users)
+ {
+ $uid = $users['attributes']['uid'];
+
+ foreach($users['permissions'][0]['module'] as $module)
+ {
+ foreach($module['permission'] as $permission)
+ {
+ $insertmodule[$module['attributes']['name']][$permission['attributes']['name']] = $permission['value'];
+ }
+ }
+
+ $defaultviews = array();
+ foreach($users['defaultviews'][0]['view'] as $view)
+ {
+ $defaultviews[$view['attributes']['type']] = $view['value'];
+ }
+
+ $adminoptiondata = array(
+ 'uid' => (int)$uid,
+ 'cpstyle' => '',
+ 'notes' => '',
+ 'permissions' => $db->escape_string(serialize($insertmodule)),
+ 'defaultviews' => $db->escape_string(serialize($defaultviews))
+ );
+
+ $insertmodule = array();
+
+ $db->insert_query('adminoptions', $adminoptiondata);
+ }
+ echo $lang->done . '';
+
+ // Automatic Login
+ my_unsetcookie("sid");
+ my_unsetcookie("mybbuser");
+ my_setcookie('mybbuser', $uid.'_'.$loginkey, null, true);
+ ob_end_flush();
+
+ // Make fulltext columns if supported
+ if($db->supports_fulltext('threads'))
+ {
+ $db->create_fulltext_index('threads', 'subject');
+ }
+ if($db->supports_fulltext_boolean('posts'))
+ {
+ $db->create_fulltext_index('posts', 'message');
+ }
+
+ echo $lang->done_step_cachebuilding;
+ require_once MYBB_ROOT.'inc/class_datacache.php';
+ $cache = new datacache;
+ $cache->update_version();
+ $cache->update_attachtypes();
+ $cache->update_smilies();
+ $cache->update_badwords();
+ $cache->update_usergroups();
+ $cache->update_forumpermissions();
+ $cache->update_stats();
+ $cache->update_statistics();
+ $cache->update_forums();
+ $cache->update_moderators();
+ $cache->update_usertitles();
+ $cache->update_reportedcontent();
+ $cache->update_awaitingactivation();
+ $cache->update_mycode();
+ $cache->update_profilefields();
+ $cache->update_posticons();
+ $cache->update_spiders();
+ $cache->update_bannedips();
+ $cache->update_banned();
+ $cache->update_bannedemails();
+ $cache->update_birthdays();
+ $cache->update_groupleaders();
+ $cache->update_threadprefixes();
+ $cache->update_forumsdisplay();
+ $cache->update("plugins", array());
+ $cache->update("internal_settings", array('encryption_key' => random_str(32)));
+ $cache->update_default_theme();
+
+ $version_history = array();
+ $dh = opendir(INSTALL_ROOT."resources");
+ while(($file = readdir($dh)) !== false)
+ {
+ if(preg_match("#upgrade([0-9]+).php$#i", $file, $match))
+ {
+ $version_history[$match[1]] = $match[1];
+ }
+ }
+ sort($version_history, SORT_NUMERIC);
+ $cache->update("version_history", $version_history);
+
+ // Schedule an update check so it occurs an hour ago. Gotta stay up to date!
+ $update['nextrun'] = TIME_NOW - 3600;
+ $db->update_query("tasks", $update, "tid='12'");
+
+ $cache->update_update_check();
+ $cache->update_tasks();
+
+ echo $lang->done . '';
+
+ echo $lang->done_step_success;
+
+ $written = 0;
+ if(is_writable('./'))
+ {
+ $lock = @fopen('./lock', 'w');
+ $written = @fwrite($lock, '1');
+ @fclose($lock);
+ if($written)
+ {
+ echo $lang->done_step_locked;
+ }
+ }
+ if(!$written)
+ {
+ echo $lang->done_step_dirdelete;
+ }
+ echo $lang->done_whats_next;
+ $output->print_footer('');
+}
+
+function db_connection($config)
+{
+ require_once MYBB_ROOT."inc/db_{$config['database']['type']}.php";
+ switch($config['database']['type'])
+ {
+ case "sqlite":
+ $db = new DB_SQLite;
+ break;
+ case "pgsql":
+ $db = new DB_PgSQL;
+ break;
+ case "mysqli":
+ $db = new DB_MySQLi;
+ break;
+ default:
+ $db = new DB_MySQL;
+ }
+
+ // Connect to Database
+ define('TABLE_PREFIX', $config['database']['table_prefix']);
+
+ $db->connect($config['database']);
+ $db->set_table_prefix(TABLE_PREFIX);
+ $db->type = $config['database']['type'];
+
+ return $db;
+}
+
+function error_list($array)
+{
+ $string = "\n";
+ foreach($array as $error)
+ {
+ $string .= "{$error} \n";
+ }
+ $string .= " \n";
+ return $string;
+}
+
+function write_settings()
+{
+ global $db;
+
+ $settings = '';
+ $query = $db->simple_select('settings', '*', '', array('order_by' => 'title'));
+ while($setting = $db->fetch_array($query))
+ {
+ $setting['value'] = str_replace("\"", "\\\"", $setting['value']);
+ $settings .= "\$settings['{$setting['name']}'] = \"{$setting['value']}\";\n";
+ }
+ if(!empty($settings))
+ {
+ $settings = "
diff --git a/Upload/install/resources/adminoptions.xml b/Upload/install/resources/adminoptions.xml
new file mode 100644
index 0000000..1fedf33
--- /dev/null
+++ b/Upload/install/resources/adminoptions.xml
@@ -0,0 +1,201 @@
+
+
+
+
+ 1
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+ 1
+
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+ 1
+
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+
+
\ No newline at end of file
diff --git a/Upload/install/resources/adminviews.xml b/Upload/install/resources/adminviews.xml
new file mode 100644
index 0000000..5a40cf1
--- /dev/null
+++ b/Upload/install/resources/adminviews.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/install/resources/index.html b/Upload/install/resources/index.html
new file mode 100644
index 0000000..efd2f36
--- /dev/null
+++ b/Upload/install/resources/index.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Upload/install/resources/language.lang.php b/Upload/install/resources/language.lang.php
new file mode 100644
index 0000000..ffe959e
--- /dev/null
+++ b/Upload/install/resources/language.lang.php
@@ -0,0 +1,373 @@
+Witaj w instalatorze MyBB {1}. Kreator instalacji MyBB wykrył, że MyBB zostało już zainstalowane.
+Wybierz jedną z akcji poniżej:
+
+
+
Zaktualizuj istniejÄ…cÄ… instalacjÄ™ MyBB do wersji {1} (zalecane)
+
Zaktualizuj istniejącą instalację MyBB do wersji {1}, z zachowaniem istniejących wątków, postów i użytkowników.
+
+
+
+
+
+
Zainstaluj nowÄ… kopiÄ™ MyBB
+
Usuń istniejące już forum i zainstaluj nową kopię MyBB.
+
+
+
";
+
+$l['mybb_incorrect_folder'] = "
+
Kreator instalacji MyBB wykrył, że instalator uruchomiony jest z katalogu \"Upload\".
+
Nie ma w tym nic złego, ale zalecane jest, aby na serwerze znajdowała się zawartość katalogu \"Upload\" a nie sam katalog. Aby uzyskać więcej informacji odwiedź stronę wiki .
+
";
+
+$l['welcome_step'] = 'Witaj w kreatorze instalacji MyBB {1}. Ten kreator pomoże Ci zainstalować i skonfigurować MyBB na Twoim serwerze.
+Teraz, gdy pliki znajdują się na serwerze należy skonfigurować bazę danych i ustawienia. Poniżej znajduje się lista kroków, jakie należy wykonać, aby zainstalować MyBB.
+
+ Sprawdzenie wymagań
+ Konfiguracja silnika bazy danych
+ Utworzenie tabel w bazie danych
+ Wprowadzenie domyślnych danych
+ Zainstalowanie domyślnych stylów i szablonów
+ Utworzenie konta administratora do zarzÄ…dzania forum
+ Wstępna konfiguracja forum
+
+Po pomyślnym zakończeniu każdego z kroków naciśnij przycisk Dalej na dole strony, aby przejść do następnego kroku.
+Naciśnij przycisk Dalej, aby przeczytać licencję MyBB.
+ Wyślij anonimowe statystyki dotyczące konfiguracji serwera do twórców MyBB (Jakie informacje zostaną wysłane? )
';
+
+$l['license_step'] = '
+{1}
+
+Poprzez naciśnięcie przycisku Dalej oświadczasz, że zgadzasz się z warunkami umowy licencyjnej MyBB i zobowiązujesz się ich przestrzegać.
';
+
+
+$l['req_step_top'] = 'Zanim będzie możliwe zainstalowanie MyBB kreator sprawdzi, czy Twój serwer spełnia minimalne wymagania do instalacji.
';
+$l['req_step_reqtable'] = '
+
Sprawdzenie wymagań
+
+
+
+ Kryteria
+
+
+
+
+ Wersja PHP:
+ {1}
+
+
+ Obsługiwane rozszerzenia bazy danych:
+ {2}
+
+
+ Obsługiwane rozszerzenia translacji:
+ {3}
+
+
+ Rozszerzenia PHP XML:
+ {4}
+
+
+ Plik konfiguracyjny:
+ {5}
+
+
+ Plik ustawień:
+ {6}
+
+
+ Katalog pamięci podręcznej:
+ {7}
+
+
+ Katalog z załącznikami:
+ {8}
+
+
+ Katalog z awatarami użytkowników:
+ {9}
+
+
+
+
';
+$l['req_step_reqcomplete'] = 'Gratulacje, Twój serwer spełnia wymagania MyBB.
+Naciśnij przycisk Dalej, aby kontynuować proces instalacji.
';
+
+$l['req_step_span_fail'] = '{1} ';
+$l['req_step_span_pass'] = '{1} ';
+
+$l['req_step_error_box'] = '{1}
';
+$l['req_step_error_phpversion'] = 'Minimalna wersja PHP wymagana do instalacji MyBB to 5.2.0 lub nowsza. Posiadasz zainstalowanÄ… wersjÄ™ {1}.';
+$l['req_step_error_dboptions'] = 'MyBB wymaga zainstalowanej co najmniej jednej kompatybilnej bazy danych. Twój serwer informuje, że żadna z nich nie jest dostępna.';
+$l['req_step_error_xmlsupport'] = 'MyBB wymaga, aby PHP zostało skompilowane z obsługą danych XML. Odwiedź stronę PHP.net , aby uzyskać więcej informacji.';
+$l['req_step_error_configdefaultfile'] = 'Nazwa pliku konfiguracyjnego (inc/config.default.php) nie mogła zostać zmieniona. Zmień nazwę ręcznie z config.default.php na config.php i zezwól na zapis do tego pliku lub skontaktuj się z pomocą techniczną MyBB. ';
+$l['req_step_error_configfile'] = 'Nie można zapisywać do pliku konfiguracyjnego (inc/config.php). Nadaj mu odpowiednie uprawnienia chmod i spróbuj ponownie.';
+$l['req_step_error_settingsfile'] = 'Nie można zapisywać do pliku ustawień (inc/settings.php). Nadaj mu odpowiednie uprawnienia chmod i spróbuj ponownie.';
+$l['req_step_error_cachedir'] = 'Nie można zapisywać do katalogu z pamięcią podręczną (cache/). Nadaj mu odpowiednie uprawnienia chmod i spróbuj ponownie.';
+$l['req_step_error_uploaddir'] = 'Nie można zapisywać do katalogu z plikami nadesłanymi przez użytkowników (uploads/). Nadaj mu odpowiednie uprawnienia chmod i spróbuj ponownie.';
+$l['req_step_error_avatardir'] = 'Nie można zapisywać do folderu z awatarami (uploads/avatars/). Nadaj mu odpowiednie uprawnienia chmod i spróbuj ponownie.';
+$l['req_step_error_cssddir'] = 'Nie można zapisywać do folderu z arkuszami stylów CSS (css/). Nadaj mu odpowiednie uprawnienia chmod i spróbuj ponownie.';
+$l['req_step_error_tablelist'] = '
+
BÅ‚Ä…d
+
Sprawdzenie wymagań nie powiodło się. Nie można kontynuować instalacji MyBB dopóki poniższe problemy nie zostaną naprawione:
+{1}
+
';
+
+
+$l['db_step_config_db'] = 'Nadszedł czas na ustawienie bazy danych, której MyBB będzie używało do przechowywania danych. Uzupełnij pola danymi udostępnionymi przez Twojego hostingodawcę.
';
+$l['db_step_config_table'] = '
+
Konfiguracja bazy danych
+
+
+ Ustawienia bazy danych
+
+
+ Silnik bazy danych:
+ {1}
+
+{2}
+
+
+Po wypełnieniu wszystkich pól naciśnij przycisk Dalej.
';
+
+$l['database_settings'] = "- ustawienia bazy danych";
+$l['database_path'] = "Ścieżka do bazy danych:";
+$l['database_host'] = "Serwer bazy danych:";
+$l['database_user'] = "Nazwa użytkownika:";
+$l['database_pass'] = "Hasło:";
+$l['database_name'] = "Nazwa bazy danych:";
+$l['table_settings'] = " - ustawienia tabel";
+$l['table_prefix'] = "Prefiks tabel:";
+$l['table_encoding'] = "Kodowanie tabel:";
+
+$l['db_step_error_config'] = '
+
BÅ‚Ä…d
+
Wystąpił jeden lub kilka błędów w konfiguracji bazy danych z informacjami, które podano:
+{1}
+
Po poprawieniu odpowiednich pól możesz kontynuować instalację.
+
';
+$l['db_step_error_invalidengine'] = 'Wybrano niepoprawny silnik bazy danych. Wybierz silnik bazy danych z listy poniżej.';
+$l['db_step_error_noconnect'] = 'Nie można połączyć się z bazą danych na serwerze \'{1}\' z podaną nazwą użytkownika i hasłem. Czy na pewno te dane są poprawne?';
+$l['db_step_error_nodbname'] = 'Nie można wybrać bazy danych \'{1}\'. Czy na pewno baza danych o tej nazwie istnieje i podany użytkownik ma do niej dostęp?';
+$l['db_step_error_missingencoding'] = 'Nie wybrano kodowania tabel. Wybierz kodowanie przed kontynuowaniem. (Jeżeli nie masz pewności co do wyboru, wybierz \'UTF-8 Unicode\')';
+$l['db_step_error_sqlite_invalid_dbname'] = 'Nie można używać relatywnych adresów URL dla baz danych SQLite. Użyj ścieżki systemowej (na przykład: /home/user/database.db) dla bazy danych SQLite.';
+$l['db_step_error_invalid_tableprefix'] = 'W prefiksie tabel można używać tylko liter, cyfr i znaku podkreślenia (_). Popraw prefiks i spróbuj ponownie.';
+$l['db_step_error_tableprefix_too_long'] = 'Wpisany prefiks jest zbyt długi. Maksymalna długość prefiksu to 40 znaków.';
+$l['db_step_error_utf8mb4_error'] = 'Aby używać 4-bajtowego kodowania UTF-8 wymagany jest serwer MySQL w wersji 5.5.3 lub nowszej. Wybierz kodowanie, które jest kompatybilne z używanym przez ciebie serwerem MySQL.';
+
+$l['tablecreate_step_connected'] = 'Połączenie z bazą danych powiodło się.
+Silnik bazy danych: {1} {2}
+ZostanÄ… teraz utworzone tabele w bazie danych.
';
+$l['tablecreate_step_created'] = 'Tworzenie tabeli {1}...';
+$l['tablecreate_step_done'] = 'Wszystkie tabele zostały utworzone. Naciśnij przycisk Dalej, aby wypełnić je domyślnymi danymi.
';
+
+$l['populate_step_insert'] = 'Po utworzeniu tabel należy wprowadzić do nich domyślne dane.
';
+$l['populate_step_inserted'] = 'Domyślne dane zostały zapisane w bazie danych. Naciśnij przycisk Dalej, aby zainstalować domyślne style i szablony.
';
+
+
+$l['theme_step_importing'] = 'Załadowano i zaimportowano plik domyślnego stylu.
';
+$l['theme_step_imported'] = 'Domyślny styl i szablony zostały zainstalowane. Naciśnij przycisk Dalej, aby ustawić podstawowe opcje Twojego forum.
';
+
+$l['config_step_table'] = 'Skonfiguruj podstawowe ustawienia takie jak nazwa forum, jego adres a także informacje o Twojej stronie. Te ustawienia mogą później zostać łatwo zmienione w panelu administratora (ACP).
+
+
+ Po uzupełnieniu wszystkich pól naciśnij przycisk Dalej.
';
+
+$l['config_step_error_config'] = '
+
BÅ‚Ä…d
+
Wystąpił jeden lub kilka błędów w danych konfiguracyjnych, które podano:
+{1}
+
Po poprawieniu odpowiednich pól możesz kontynuować instalację.
+
';
+$l['config_step_error_url'] = 'Nie podano adresu forum.';
+$l['config_step_error_name'] = 'Nie podano nazwy forum.';
+$l['config_step_revert'] = 'Kliknij aby przywrócić wstępne wartości.';
+
+
+$l['admin_step_setupsettings'] = 'Zapisano wstępną konfigurację.
';
+$l['admin_step_insertesettings'] = 'Zapisano {1} ustawień w {2} grupach.
+Zaktualizowano ustawienia danymi podanymi przez użytkownika.
';
+$l['admin_step_insertedtasks'] = 'Zapisano {1} zaplanowanych zadań.
';
+$l['admin_step_insertedviews'] = 'Zapisano {1} widoków panelu administratora.
';
+$l['admin_step_createadmin'] ='Należy utworzyć konto administratora do zarządzania forum. Wypełnij poniższy formularz, aby to uczynić.
';
+$l['admin_step_admintable'] = '
+
Szczegóły konta administratora
+
+
+
+
+ Po uzupełnieniu wszystkich pól naciśnij przycisk Dalej.
';
+
+$l['admin_step_error_config'] = '
+
BÅ‚Ä…d
+
Wystąpił jeden lub kilka błędów w danych konta administratora, które podano:
+{1}
+
Po poprawieniu odpowiednich pól możesz kontynuować instalację.
+
';
+$l['admin_step_error_nouser'] = 'Nie podano nazwy użytkownika.';
+$l['admin_step_error_nopassword'] = 'Nie podano hasła dla konta administratora.';
+$l['admin_step_error_nomatch'] = 'Podane hasła nie są jednakowe.';
+$l['admin_step_error_noemail'] = 'Nie podano adresu email dla konta administratora.';
+$l['admin_step_nomatch'] = 'Powtórzone hasło nie jest identyczne z tym wpisanym w pierwszym polu. Popraw je aby kontynuować.';
+
+$l['done_step_usergroupsinserted'] = "Importowanie grup użytkowników -";
+$l['done_step_admincreated'] = '
Tworzenie konta administratora -';
+$l['done_step_adminoptions'] = '
Zapisywanie uprawnień administratora -';
+$l['done_step_cachebuilding'] = '
Tworzenie pamięci podręcznej -';
+$l['done_step_success'] = '
MyBB zostało poprawnie zainstalowane i skonfigurowane.
+Dziękujemy za wybranie MyBB. Mamy nadzieję, że zechcesz dołączyć do grona społeczności skupionej wokół MyBB. Jeżeli szukasz pomocy w swoim ojczystym języku odwiedź Polski Support MyBB .
';
+$l['done_step_locked'] = 'Instalator został zablokowany. Aby go odblokować usuń plik \'lock\' z folderu instalatora.
Możesz teraz przejść do strony głównej swojego forum lub panelu administratora .
';
+$l['done_step_dirdelete'] = 'Usuń ten katalog przed przeglądaniem swojego forum.
';
+$l['done_whats_next'] = 'Przenosisz siÄ™ z innego silnika?
MyBB oferuje pakiet, który umożliwia łatwe przenoszenie danych z innych silników, a także łączenie wielu forów w jedno. Jeśli dopiero zamierzasz dokonać konwersji, szukasz w dobrym miejscu. Odwiedź stronę systemu Merge System aby uzyskać więcej informacji.
';
+
+/* UPGRADE LANGUAGE VARIABLES */
+$l['upgrade'] = "Aktualizacja";
+$l['upgrade_welcome'] = "
Witaj w kreatorze aktualizacji MyBB {1}.
Przed kontynuowaniem upewnij się, że znasz wersję MyBB z której chcesz dokonać aktualizacji.
Zalecane jest wykonanie pełnej kopii bazy danych zanim przystąpisz do procesu aktualizacji . W przypadku, gdy coś pójdzie nie tak, będzie można łatwo przywrócić forum do poprzedniego stanu. Upewnij się, że Twoje kopie zapasowe są kompletne.
Naciśnij przycisk Dalej dokładnie JEDEN RAZ, aby rozpocząć proces aktualizacji. Załadowanie strony może zająć trochę czasu w zależności od wielkości Twojego forum.
Wybierz posiadaną aktualnie wersję MyBB i kliknij przycisk Dalej, aby kontynuować.
";
+$l['upgrade_templates_reverted'] = 'Przywrócono szablony';
+$l['upgrade_templates_reverted_success'] = "
Niektóre szablony zostały zastąpione przez te dostępne w tej wersji. Naciśnij przycisk Dalej, aby kontynouwać proces aktualizacji.
";
+$l['upgrade_settings_sync'] = 'Synchronizacja ustawień';
+$l['upgrade_settings_sync_success'] = "
Ustawienia forum zostały zsynchronizowane z tymi dostępnymi w najnowszej wersji MyBB.
Wprowadzono {1} nowych ustawień do {2} grup.
Aby zakończyć proces aktualizacji naciśnij przycisk Dalej.
";
+$l['upgrade_datacache_building'] = 'Tworzenie pamięci podręcznej';
+$l['upgrade_building_datacache'] = '
Tworzenie nowej pamięci podręcznej...';
+$l['upgrade_continue'] = 'Naciśnij przycisk Dalej, aby kontynuować';
+$l['upgrade_locked'] = "
Instalator został zablokowany. Aby go odblokować, usuń plik 'lock' z folderu instalatora.
Możesz teraz przejść do strony głównej swojego forum lub panelu administratora .
";
+$l['upgrade_removedir'] = 'Usuń ten katalog przed przeglądaniem zaktualizowanej wersji MyBB.';
+$l['upgrade_congrats'] = "
MyBB zostało zaktualizowane do wersji {1}.
{2}
Co dalej?
Użyj narzędzia 'Znajdź zmienione' w sekcji Style i szablony w panelu administratora, aby odnaleźć szablony przywrócone do wersji pierwotnej podczas procesu aktualizacji. Możesz je zmienić według własnych potrzeb lub przywrócić do stanu oryginalnego. Upewnij się, że forum jest w pełni funkcjonalne. ";
+$l['upgrade_template_reversion'] = "Ostrzeżenie procesu przywracania szablonów";
+$l['upgrade_template_reversion_success'] = "
Wszystkie potrzebne zmiany w bazie danych zostały wykonane.
Ten proces aktualizacji wymaga, aby wszystkie szablony zostały zamienione na te dostępne w paczce z aktualizacją. Wykonaj kopię zmienionych szablonów przed kliknięciem przycisku Dalej.";
+$l['upgrade_send_stats'] = "
Wyślij anonimowe statystyki dotyczące konfiguracji serwera do twórców MyBB (Jakie informacje zostaną wysłane? )
";
+
+$l['please_login'] = "Wymagane zalogowanie";
+$l['login'] = "Zaloguj siÄ™";
+$l['login_desc'] = "Wpisz login i hasło, aby rozpocząć proces aktualizacji. Do wykonania tej operacji wymagane jest posiadanie praw administratora.";
+$l['login_username'] = "Login";
+$l['login_password'] = "Hasło";
+$l['login_password_desc'] = "Wielkość liter ma znaczenie.";
+
+/* Error messages */
+$l['development_preview'] = "
Ostrzeżenie Ta wersja MyBB jest oznaczona jako developer preview i powinna być używana jedynie w celach testowych.
W związku z tym oficjalne wsparcie techniczne dla tej wersji MyBB, oprócz używanych wtyczek i styli, nie jest zapewnione. Poprzez kontynuowanie instalacji/aktualizacji godzisz się na korzystanie z forum na własne ryzyko.
";
+$l['locked'] = 'Instalator jest zablokowany. Aby go odblokować usuń plik \'lock\' z folderu instalatora';
+$l['no_permision'] = "Do wykonania tej operacji wymagane są uprawnienia administratora, których nie posiadasz.
Jeśli chcesz spróbować ponownie,
wyloguj siÄ™ i zaloguj ponownie na konto z uprawnieniami administratora.";
+
+$l['task_versioncheck_ran'] = "Zadanie sprawdzania aktualności wersji zostało pomyślnie uruchomione.";
+
+
diff --git a/Upload/install/resources/mybb_theme.xml b/Upload/install/resources/mybb_theme.xml
new file mode 100644
index 0000000..62c2521
--- /dev/null
+++ b/Upload/install/resources/mybb_theme.xml
@@ -0,0 +1,13947 @@
+
+
+
+
+
+
+
+
+
+
+
+ .expcolimage {
+ margin-top: 0;
+}
+
+blockquote {
+ border: 1px solid #ccc;
+ margin: 0;
+ background: #fff;
+ padding: 10px;
+}
+
+blockquote cite {
+ font-weight: bold;
+ border-bottom: 1px solid #ccc;
+ font-style: normal;
+ display: block;
+ padding-bottom: 3px;
+ margin: 0 0 10px 0;
+}
+
+blockquote cite span {
+ float: right;
+ font-weight: normal;
+ font-size: 12px;
+ color: #666;
+}
+
+blockquote cite span.highlight {
+ float: none;
+ font-weight: bold;
+ padding-bottom: 0;
+}
+
+.codeblock {
+ background: #fff;
+ border: 1px solid #ccc;
+ padding: 10px;
+}
+
+.codeblock .title {
+ border-bottom: 1px solid #ccc;
+ font-weight: bold;
+ padding-bottom: 3px;
+ margin: 0 0 10px 0;
+}
+
+.codeblock code {
+ overflow: auto;
+ height: auto;
+ max-height: 200px;
+ display: block;
+ font-family: Monaco, Consolas, Courier, monospace;
+ font-size: 13px;
+}
+
+.smilie {
+ vertical-align: middle;
+}
+
+.smilie_pointer {
+ cursor: pointer;
+}
+
+.separator {
+ margin: 5px;
+ padding: 0;
+ height: 0px;
+ font-size: 1px;
+ list-style-type: none;
+}
+
+.popup_menu .popup_item_container {
+ margin: 1px;
+ text-align: left;
+}
+
+.popup_menu .popup_item {
+ display: block;
+ padding: 4px;
+ white-space: nowrap;
+ text-decoration: none;
+}
+
+.popup_menu a.popup_item:hover {
+ text-decoration: none;
+}
+
+.subject_new {
+ font-weight: bold;
+}
+
+.highlight {
+ background: #FFFFCC;
+ padding-top: 3px;
+ padding-bottom: 3px;
+}
+
+.pm_alert {
+ background: #FFF6BF;
+ border: 1px solid #FFD324;
+ text-align: center;
+ padding: 5px 20px;
+ margin-bottom: 15px;
+ font-size: 11px;
+}
+
+.red_alert {
+ background: #FBE3E4;
+ border: 1px solid #A5161A;
+ color: #A5161A;
+ text-align: center;
+ padding: 5px 20px;
+ margin-bottom: 15px;
+ font-size: 11px;
+ word-wrap: break-word;
+}
+
+.red_alert a:link,
+.red_alert a:visited,
+.red_alert a:hover,
+.red_alert a:active {
+ color: #A5161A;
+}
+
+.high_warning {
+ color: #CC0000;
+}
+
+.moderate_warning {
+ color: #F3611B;
+}
+
+.low_warning {
+ color: #AE5700;
+}
+
+.online {
+ color: #15A018;
+}
+
+.offline {
+ color: #C7C7C7;
+}
+
+div.error {
+ padding: 5px 10px;
+ border-top: 2px solid #FFD324;
+ border-bottom: 2px solid #FFD324;
+ background: #FFF6BF;
+ font-size: 12px;
+}
+
+div.error p {
+ margin: 0;
+ color: #333;
+ font-weight: normal;
+}
+
+div.error p em {
+ font-style: normal;
+ font-weight: bold;
+ padding-left: 24px;
+ display: block;
+ color: #C00;
+ background: url(images/error.png) no-repeat 0;
+}
+
+div.error ul {
+ margin-left: 24px;
+}
+
+.pagination {
+ font-size: 11px;
+ padding-top: 10px;
+ margin-bottom: 5px;
+}
+
+.tfoot .pagination,
+.tcat .pagination {
+ padding-top: 0;
+}
+
+.pagination .pages {
+ font-weight: bold;
+}
+
+.pagination .pagination_current,
+.pagination a {
+ padding: 3px 6px;
+ margin-bottom: 3px;
+}
+
+.pagination a {
+ background: #f5f5f5;
+ border: 1px solid #ccc;
+}
+
+.pagination .pagination_current {
+ background: none;
+ color: #333;
+ border: none;
+ font-weight: bold;
+}
+
+.pagination a:hover {
+ background: #0072BC;
+ color: #fff;
+ border-color: #263c30;
+ text-decoration: none;
+}
+
+.pagination .go_page img {
+ margin-bottom: -4px;
+}
+
+.drop_go_page {
+ background: #f5f5f5;
+ padding: 4px;
+}
+
+.pagination_breadcrumb {
+ background-color: #efefef;
+ border: 1px solid #fff;
+ outline: 1px solid #ccc;
+ padding: 5px;
+ margin-top: 5px;
+ font-weight: normal;
+}
+
+.pagination_breadcrumb_link {
+ vertical-align: middle;
+ cursor: pointer;
+}
+
+.thread_legend,
+.thread_legend dd {
+ margin: 0;
+ padding: 0;
+}
+
+.thread_legend dd {
+ padding-bottom: 4px;
+ margin-right: 15px;
+}
+
+.thread_legend img {
+ margin-right: 4px;
+ vertical-align: bottom;
+}
+
+.forum_legend,
+.forum_legend dt,
+.forum_legend dd {
+ margin: 0;
+ padding: 0;
+}
+
+.forum_legend dd {
+ float: left;
+ margin-right: 10px;
+ margin-top: 7px;
+}
+
+.forum_legend dt {
+ margin-right: 10px;
+ float: left;
+}
+
+.success_message {
+ color: #00b200;
+ font-weight: bold;
+ font-size: 10px;
+ margin-bottom: 10px;
+}
+
+.error_message {
+ color: #C00;
+ font-weight: bold;
+ font-size: 10px;
+ margin-bottom: 10px;
+}
+
+#posts_container {
+ padding: 0;
+}
+
+.ignored_post {
+ border-top: 3px solid #333;
+ padding: 15px;
+}
+
+.ignored_post .show_ignored_post {
+ margin-top: -15px;
+}
+
+.ignored_post .show_ignored_post a.button span {
+ background-position: 0 -400px;
+}
+
+.post {
+ overflow: hidden;
+}
+
+.post.classic {
+ padding-top: 15px;
+}
+
+.post .post_author {
+ border-bottom: 1px solid #ccc;
+ border-top: 2px solid #ccc;
+ background: #f5f5f5;
+ padding: 5px;
+ overflow: hidden;
+}
+
+.post.classic .post_author {
+ border: 1px solid #ddd;
+ float: left;
+ width: 15%;
+ margin: 0 1% 15px 0;
+ border-left: 0;
+ padding: 5px 1%;
+}
+
+.post .post_author .buddy_status {
+ vertical-align: middle;
+ margin-top: -4px;
+}
+
+.post .post_author div.author_avatar {
+ float: left;
+ margin-right: 3px;
+}
+
+.post.classic .post_author div.author_avatar {
+ float: none;
+ text-align: center;
+ margin-bottom: 8px;
+}
+
+.post .post_author div.author_avatar img {
+ padding: 5px;
+ border: 1px solid #ddd;
+ background: #fff;
+}
+
+.post .post_author div.author_information {
+ float: left;
+ padding: 6px 8px;
+}
+
+.post.classic .post_author div.author_information {
+ float: none;
+ padding: 0;
+ text-align: center;
+}
+
+.post .post_author div.author_statistics {
+ float: right;
+ font-size: 11px;
+ padding: 3px 10px 3px 5px;
+ color: #666;
+ line-height: 1.3;
+}
+
+.post.classic .post_author div.author_statistics {
+ border-top: 1px dotted #ccc;
+ margin: 6px 0 0 0;
+ padding: 6px 6px 3px 6px;
+ float: none;
+}
+
+.post .post_head {
+ font-size: 11px;
+ padding-bottom: 4px;
+ border-bottom: 1px dotted #ddd;
+ margin-bottom: 4px;
+}
+
+.post .post_head span.post_date {
+ color: #666;
+}
+
+.post .post_head span.edited_post {
+ font-size: 10px;
+ color: #999;
+}
+
+.post .post_head span.edited_post a {
+ color: #666;
+}
+
+.post_body {
+ font-size: 14px;
+ padding: 12px 0;
+}
+
+.post.classic .post_content {
+ float: left;
+ width: 79%;
+ padding: 0 1% 5px 1%;
+}
+
+.post_content {
+ padding: 9px 10px 5px 10px;
+}
+
+.post_content .signature {
+ margin-top: 5px;
+ border-top: 1px dotted #ddd;
+ padding: 10px 0 4px 0;
+}
+
+.post .post_meta {
+ margin: 4px 0;
+ font-size: 11px;
+ color: #999;
+}
+
+.post .post_meta a:link,
+.post .post_meta a:visited {
+ color: #777;
+}
+
+.post .post_meta a:hover,
+.post .post_meta a:active {
+ color: #777;
+}
+
+.post_controls {
+ clear: both;
+ background: #f5f5f5;
+ border-bottom: 1px solid #ccc;
+ padding: 5px;
+ overflow: hidden;
+}
+
+.postbit_buttons > a:link,
+.postbit_buttons > a:hover,
+.postbit_buttons > a:visited,
+.postbit_buttons > a:active {
+ display: inline-block;
+ padding: 2px 5px;
+ margin: 2px;
+ font-size: 11px;
+ background: #eee url(images/buttons_bg.png) repeat-x;
+ border: 1px solid #ccc;
+ color: #555;
+}
+
+.postbit_buttons > a:hover {
+ border-color: #bbb;
+}
+
+.postbit_buttons a span {
+ padding-left: 20px;
+ display: inline-block;
+ height: 16px;
+ background-image: url(images/buttons_sprite.png);
+ background-repeat: no-repeat;
+}
+
+.postbit_buttons a.postbit_find span {
+ background-position: 0 0;
+}
+
+.postbit_buttons a.postbit_reputation_add span {
+ background-position: 0 -20px;
+}
+
+.postbit_buttons a.postbit_email span {
+ background-position: 0 -40px;
+}
+
+.postbit_buttons a.postbit_website span {
+ background-position: 0 -60px;
+}
+
+.postbit_buttons a.postbit_pm span {
+ background-position: 0 -80px;
+}
+
+.postbit_buttons a.postbit_quote span {
+ background-position: 0 -100px;
+}
+
+.postbit_buttons a.postbit_multiquote span {
+ background-position: 0 -120px;
+}
+
+.postbit_buttons a.postbit_multiquote_on span {
+ background-position: 0 -140px;
+}
+
+.postbit_buttons a.postbit_edit span {
+ background-position: 0 -160px;
+}
+
+.postbit_buttons a.postbit_qdelete span {
+ background-position: 0 -180px;
+}
+
+.postbit_buttons a.postbit_qrestore span {
+ background-position: 0 -200px;
+}
+
+.postbit_buttons a.postbit_report span {
+ background-position: 0 -220px;
+}
+
+.postbit_buttons a.postbit_warn span {
+ background-position: 0 -240px;
+}
+
+.postbit_buttons a.postbit_purgespammer span {
+ background-position: 0 -540px;
+}
+
+.postbit_buttons a.postbit_reply_pm span {
+ background-position: 0 -260px;
+}
+
+.postbit_buttons a.postbit_reply_all span {
+ background-position: 0 -280px;
+}
+
+.postbit_buttons a.postbit_forward_pm span {
+ background-position: 0 -300px;
+}
+
+.postbit_buttons a.postbit_delete_pm span {
+ background-position: 0 -320px;
+}
+
+a.button:link,
+a.button:hover,
+a.button:visited,
+a.button:active {
+ background: #0f0f0f url(images/tcat.png) repeat-x;
+ color: #fff;
+ display: inline-block;
+ padding: 4px 8px;
+ margin: 2px 2px 6px 2px;
+ border: 1px solid #000;
+ font-size: 14px;
+}
+
+a.button.small_button {
+ font-size: 13px;
+ margin: 0;
+ padding: 3px 6px;
+}
+
+a.button span {
+ padding-left: 20px;
+ display: inline-block;
+ background-image: url(images/buttons_sprite.png);
+ background-repeat: no-repeat;
+}
+
+a.button.new_thread_button span {
+ background-position: 0 -340px;
+}
+
+a.button.new_reply_button span {
+ background-position: 0 -360px;
+}
+
+a.button.closed_button span {
+ background-position: 0 -380px;
+}
+
+a.button.rate_user_button span {
+ background-position: 0 -400px;
+}
+
+a.button.add_buddy_button span {
+ background-position: 0 -440px;
+}
+
+a.button.remove_buddy_button span {
+ background-position: 0 -480px;
+}
+
+a.button.add_ignore_button span {
+ background-position: 0 -460px;
+}
+
+a.button.remove_ignore_button span {
+ background-position: 0 -500px;
+}
+
+a.button.report_user_button span {
+ background-position: 0 -520px;
+}
+
+.quick_jump {
+ background: url(images/jump.png) no-repeat 0;
+ width: 13px;
+ height: 13px;
+ padding-left: 13px; /* amount of padding needed for image to fully show */
+ margin-top: -3px;
+ border: none;
+}
+
+.pollbar {
+ background: url(images/pollbar.png) top left repeat-x;
+ border: 1px solid #3f3f3f;
+ height: 10px;
+}
+
+.pollbar .percent {
+ display: none;
+}
+
+.posticons_label {
+ white-space: nowrap;
+}
+
+/** jGrowl Start **/
+
+/** Special IE6 Style Positioning **/
+.ie6 {
+ position: absolute;
+}
+
+.ie6.top-right {
+ right: auto;
+ bottom: auto;
+ left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+.ie6.top-left {
+ left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+.ie6.bottom-right {
+ left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+.ie6.bottom-left {
+ left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+.ie6.center {
+ left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+ width: 100%;
+}
+
+/** jGrowl Styling **/
+.jGrowl {
+ z-index: 9999;
+ color: #fff;
+ font-size: 12px;
+ position: fixed;
+}
+
+.jGrowl.top-left {
+ left: 0px;
+ top: 0px;
+}
+
+.jGrowl.top-right {
+ right: 0px;
+ top: 0px;
+}
+
+.jGrowl.bottom-left {
+ left: 0px;
+ bottom: 0px;
+}
+
+.jGrowl.bottom-right {
+ right: 0px;
+ bottom: 0px;
+}
+
+.jGrowl.center {
+ top: 0px;
+ width: 50%;
+ left: 25%;
+}
+
+/** Cross Browser Styling **/
+
+.center .jGrowl-notification,
+.center .jGrowl-closer {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.jGrowl .jGrowl-notification,
+.jGrowl .jGrowl-closer {
+ background-color: #000;
+ opacity: .85;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)";
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=85);
+ zoom: 1;
+ width: 235px;
+ padding: 10px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ text-align: left;
+ display: none;
+ border-radius: 5px;
+}
+
+.jGrowl .jGrowl-notification {
+ min-height: 40px;
+}
+
+.jGrowl .jGrowl-notification,
+.jGrowl .jGrowl-closer {
+ margin: 10px;
+}
+
+.jGrowl .jGrowl-notification .jGrowl-header {
+ font-weight: bold;
+ font-size: .85em;
+}
+
+.jGrowl .jGrowl-notification .jGrowl-close {
+ z-index: 99;
+ float: right;
+ font-weight: bold;
+ font-size: 1em;
+ cursor: pointer;
+}
+
+.jGrowl .jGrowl-closer {
+ padding-top: 4px;
+ padding-bottom: 4px;
+ cursor: pointer;
+ font-size: .9em;
+ font-weight: bold;
+ text-align: center;
+}
+
+/** Hide jGrowl when printing **/
+@media print {
+ .jGrowl {
+ display: none;
+ }
+}
+
+/** jGrowl End **/
+
+/** Modal Start **/
+
+.modal {
+ display: none;
+ width: 400px;
+ text-align: left;
+ background: #fff;
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ -o-border-radius: 8px;
+ -ms-border-radius: 8px;
+ border-radius: 8px;
+ -webkit-box-shadow: 0 0 10px #000;
+ -moz-box-shadow: 0 0 10px #000;
+ -o-box-shadow: 0 0 10px #000;
+ -ms-box-shadow: 0 0 10px #000;
+ box-shadow: 0 0 10px #000;
+}
+
+.modal a.close-modal {
+ position: absolute;
+ top: -12.5px;
+ right: -12.5px;
+ display: block;
+ width: 30px;
+ height: 30px;
+ text-indent: -9999px;
+ background: url(images/close.png) no-repeat 0 0;
+}
+
+.modal-spinner {
+ display: none;
+ width: 64px;
+ height: 64px;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin-right: -32px;
+ margin-top: -32px;
+ background: url(images/spinner_big.gif) no-repeat center center;
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ -o-border-radius: 8px;
+ -ms-border-radius: 8px;
+ border-radius: 8px;
+}
+
+/** Modal End **/
+
+/** Impromptu Start **/
+
+/*! jQuery-Impromptu - v5.2.4 - 2014-05-26
+* http://trentrichardson.com/Impromptu
+* Copyright (c) 2014 Trent Richardson; Licensed MIT */
+
+.jqifade {
+ position: absolute;
+ background-color: #777777;
+}
+
+div.jqi {
+ width: 400px;
+ max-width:90%;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ position: absolute;
+ background-color: #ffffff;
+ font-size: 11px;
+ text-align: left;
+ border: solid 1px #eeeeee;
+ border-radius: 6px;
+ -moz-border-radius: 6px;
+ -webkit-border-radius: 6px;
+ padding: 7px;
+}
+
+div.jqi .jqiclose {
+ position: absolute;
+ top: 4px; right: -2px;
+ width: 18px;
+ cursor: default;
+ color: #bbbbbb;
+ font-weight: bold;
+}
+
+div.jqi .jqistate {
+ background-color: #fff;
+}
+
+div.jqi .jqititle {
+ padding: 5px 10px;
+ font-size: 16px;
+ line-height: 20px;
+ border-bottom: solid 1px #eeeeee;
+}
+
+div.jqi .jqimessage {
+ padding: 10px;
+ line-height: 20px;
+ color: #444444;
+}
+
+div.jqi .jqibuttons {
+ text-align: right;
+ margin: 0 -7px -7px -7px;
+ border-top: solid 1px #e4e4e4;
+ background-color: #f4f4f4;
+ border-radius: 0 0 6px 6px;
+ -moz-border-radius: 0 0 6px 6px;
+ -webkit-border-radius: 0 0 6px 6px;
+}
+
+div.jqi .jqibuttons button {
+ margin: 0;
+ padding: 6px 20px;
+ background-color: transparent;
+ font-weight: normal;
+ border: none;
+ border-left: solid 1px #e4e4e4;
+ color: #777;
+ font-weight: bold;
+ font-size: 12px;
+}
+
+div.jqi .jqibuttons button.jqidefaultbutton {
+ color: #489afe;
+}
+
+div.jqi .jqibuttons button:hover,
+div.jqi .jqibuttons button:focus {
+ color: #287ade;
+ outline: none;
+}
+
+.jqiwarning .jqi .jqibuttons {
+ background-color: #b95656;
+}
+
+/* sub states */
+
+div.jqi .jqiparentstate::after {
+ background-color: #777;
+ opacity: 0.6;
+ filter: alpha(opacity=60);
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ border-radius: 6px;
+ -moz-border-radius: 6px;
+ -webkit-border-radius: 6px;
+}
+
+div.jqi .jqisubstate {
+ position: absolute;
+ top: 0;
+ left: 20%;
+ width: 60%;
+ padding: 7px;
+ border: solid 1px #eeeeee;
+ border-top: none;
+ border-radius: 0 0 6px 6px;
+ -moz-border-radius: 0 0 6px 6px;
+ -webkit-border-radius: 0 0 6px 6px;
+}
+
+div.jqi .jqisubstate .jqibuttons button {
+ padding: 10px 18px;
+}
+
+/* arrows for tooltips/tours */
+
+.jqi .jqiarrow {
+ position: absolute;
+ height: 0; width: 0;
+ line-height: 0;
+ font-size: 0;
+ border: solid 10px transparent;
+}
+
+.jqi .jqiarrowtl {
+ left: 10px;
+ top: -20px;
+ border-bottom-color: #ffffff;
+}
+
+.jqi .jqiarrowtc {
+ left: 50%;
+ top: -20px;
+ border-bottom-color: #ffffff;
+ margin-left: -10px;
+}
+
+.jqi .jqiarrowtr {
+ right: 10px;
+ top: -20px;
+ border-bottom-color: #ffffff;
+}
+
+.jqi .jqiarrowbl {
+ left: 10px;
+ bottom: -20px;
+ border-top-color: #ffffff;
+}
+
+.jqi .jqiarrowbc {
+ left: 50%;
+ bottom: -20px;
+ border-top-color: #ffffff;
+ margin-left: -10px;
+}
+
+.jqi .jqiarrowbr {
+ right: 10px;
+ bottom: -20px;
+ border-top-color: #ffffff;
+}
+
+.jqi .jqiarrowlt {
+ left: -20px;
+ top: 10px;
+ border-right-color: #ffffff;
+}
+
+.jqi .jqiarrowlm {
+ left: -20px;
+ top: 50%;
+ border-right-color: #ffffff;
+ margin-top: -10px;
+}
+
+.jqi .jqiarrowlb {
+ left: -20px;
+ bottom: 10px;
+ border-right-color: #ffffff;
+}
+
+.jqi .jqiarrowrt {
+ right: -20px;
+ top: 10px;
+ border-left-color: #ffffff;
+}
+
+.jqi .jqiarrowrm {
+ right: -20px;
+ top: 50%;
+ border-left-color: #ffffff;
+ margin-top: -10px;
+}
+
+.jqi .jqiarrowrb {
+ right: -20px;
+ bottom: 10px;
+ border-left-color: #ffffff;
+}
+
+/** Impromptu End */
+]]>
+
+
+
+
+
+
+ a,
+a.button {
+ -moz-border-radius: 6px;
+ -webkit-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.post.classic .post_author {
+ -moz-border-radius: 0 6px 6px 0;
+ -webkit-border-radius: 0 6px 6px 0;
+ border-radius: 0 6px 6px 0;
+}
+
+.popup_menu .popup_item_container:first-child .popup_item {
+ -moz-border-radius-topleft: 6px;
+ -moz-border-radius-topright: 6px;
+ -webkit-border-top-left-radius: 6px;
+ -webkit-border-top-right-radius: 6px;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+}
+
+.popup_menu .popup_item_container:last-child .popup_item {
+ -moz-border-radius-bottomleft: 6px;
+ -moz-border-radius-bottomright: 6px;
+ -webkit-border-bottom-left-radius: 6px;
+ -webkit-border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+
+.pagination a {
+ -moz-border-radius: 6px;
+ -webkit-border-radius: 6px;
+ border-radius: 6px;
+}
+
+.pollbar {
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}]]>
+
+
+
+
+{$lang->forum_announcement}
+{$headerinclude}
+
+
+
+{$header}
+
+
+{$lang->forum_announcement}
+
+
+ {$announcement}
+
+
+
+{$footer}
+
+
+]]>
+ announcement_edit}" class="postbit_edit">{$lang->postbit_button_edit} ]]>
+ post_code}" onclick="MyBB.deleteAnnouncement(this); return false;" class="postbit_qdelete">{$lang->postbit_button_qdelete} ]]>
+
+
+ {$mybb->settings['bbname']} - {$lang->calendar}
+ {$headerinclude}
+
+
+ {$header}
+
+
+
+
+
+ {$monthnames[$month]} {$year}
+
+
+
+
+ {$weekday_headers}
+
+
+
+ {$calendar_rows}
+
+
+
+
+{$footer}
+
+]]>
+
+
+{$mybb->settings['bbname']} - {$lang->calendar} - {$lang->add_event}
+{$headerinclude}
+
+
+{$header}
+{$event_errors}
+
+{$footer}
+
+