diff --git a/attentionbar.php b/attentionbar.php
deleted file mode 100644
index 25f349cb..00000000
--- a/attentionbar.php
+++ /dev/null
@@ -1,11 +0,0 @@
-0 && !preg_match('/a href/', $text)) {
- file_put_contents("attentionbar.txt",htmlspecialchars($text));
- if(strlen($_SERVER['HTTP_REFERER'])>0) { header('Location: ' . $_SERVER['HTTP_REFERER']); }
- else { header('Location: /'); }
- } else print(file_get_contents("attentionbar.txt"));
- return;
-?>
diff --git a/attentionbar.txt b/attentionbar.txt
deleted file mode 100644
index 50aa355b..00000000
--- a/attentionbar.txt
+++ /dev/null
@@ -1 +0,0 @@
-- * ( Pasek Atencji ) * -
diff --git a/inc/api.php b/inc/api.php
index 3337c613..a8ae9eed 100644
--- a/inc/api.php
+++ b/inc/api.php
@@ -26,12 +26,6 @@ class Api {
'trip' => 'trip',
'capcode' => 'capcode',
'time' => 'time',
- 'thumbheight' => 'tn_w',
- 'thumbwidth' => 'tn_h',
- 'fileheight' => 'w',
- 'filewidth' => 'h',
- 'filesize' => 'fsize',
- 'filename' => 'filename',
'omitted' => 'omitted_posts',
'omitted_images' => 'omitted_images',
'replies' => 'replies',
@@ -46,6 +40,15 @@ class Api {
'bump' => 'last_modified'
);
+ $this->fileFields = array(
+ 'thumbheight' => 'tn_w',
+ 'thumbwidth' => 'tn_h',
+ 'height' => 'w',
+ 'width' => 'h',
+ 'size' => 'fsize',
+ 'file' => 'filename',
+ );
+
if (isset($config['api']['extra_fields']) && gettype($config['api']['extra_fields']) == 'array'){
$this->postFields = array_merge($this->postFields, $config['api']['extra_fields']);
}
@@ -67,31 +70,27 @@ class Api {
'last_modified' => 1
);
- private function translatePost($post, $threadsPage = false) {
- $apiPost = array();
- $fields = $threadsPage ? $this->threadsPageFields : $this->postFields;
+ private function translateFields($fields, $object, &$apiPost) {
foreach ($fields as $local => $translated) {
- if (!isset($post->$local))
+ if (!isset($object->$local))
continue;
$toInt = isset(self::$ints[$translated]);
- $val = $post->$local;
+ $val = $object->$local;
if ($val !== null && $val !== '') {
$apiPost[$translated] = $toInt ? (int) $val : $val;
}
}
+ }
+
+ private function translatePost($post, $threadsPage = false) {
+ $apiPost = array();
+ $fields = $threadsPage ? $this->threadsPageFields : $this->postFields;
+ $this->translateFields($fields, $post, $apiPost);
if ($threadsPage) return $apiPost;
- if (isset($post->filename)) {
- $dotPos = strrpos($post->filename, '.');
- $apiPost['filename'] = substr($post->filename, 0, $dotPos);
- $apiPost['ext'] = substr($post->filename, $dotPos);
- $dotPos = strrpos($post->file, '.');
- $apiPost['tim'] = substr($post->file, 0, $dotPos);
- }
-
// Handle country field
if (isset($post->body_nomarkup) && $this->config['country_flags']) {
$modifiers = extract_modifiers($post->body_nomarkup);
@@ -104,6 +103,18 @@ class Api {
}
}
+ // Handle files
+ // Note: 4chan only supports one file, so only the first file is taken into account for 4chan-compatible API.
+ if (isset($post->files) && $post->files && !$threadsPage) {
+ $file = $post->files[0];
+ $this->translateFields($this->fileFields, $file, $apiPost);
+ $dotPos = strrpos($file->file, '.');
+ $apiPost['filename'] = substr($file->file, 0, $dotPos);
+ $apiPost['ext'] = substr($file->file, $dotPos);
+ $dotPos = strrpos($file->file, '.');
+ $apiPost['tim'] = substr($file->file, 0, $dotPos);
+ }
+
return $apiPost;
}
diff --git a/inc/config.php b/inc/config.php
index 83b298ee..494ccda1 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -270,7 +270,6 @@
'recaptcha_challenge_field',
'recaptcha_response_field',
'spoiler',
- 'quick-reply',
'page',
'file_url',
'json_response',
@@ -451,6 +450,8 @@
// Maximum filename length to display (the rest can be viewed upon mouseover).
$config['max_filename_display'] = 30;
+ // Allow users to delete their own posts?
+ $config['allow_delete'] = true;
// How long after posting should you have to wait before being able to delete that post? (In seconds.)
$config['delete_time'] = 10;
// Reply limit (stops bumping thread when this is reached).
@@ -607,6 +608,17 @@
* Image settings
* ====================
*/
+ // Maximum number of images allowed. Increasing this number enabled multi image.
+ // If you make it more than 1, make sure to enable the below script for the post form to change.
+ // $config['additional_javascript'][] = 'js/multi_image.js';
+ $config['max_images'] = 1;
+
+ // Method to use for determing the max filesize.
+ // "split" means that your max filesize is split between the images. For example, if your max filesize
+ // is 2MB, the filesizes of all files must add up to 2MB for it to work.
+ // "each" means that each file can be 2MB, so if your max_images is 3, each post could contain 6MB of
+ // images. "split" is recommended.
+ $config['multiimage_method'] = 'split';
// For resizing, maximum thumbnail dimensions.
$config['thumb_width'] = 255;
@@ -628,22 +640,22 @@
/*
* Thumbnailing method:
*
- * 'gd' PHP GD (default). Only handles the most basic image formats (GIF, JPEG, PNG).
- * GD is a prerequisite for Tinyboard no matter what method you choose.
+ * 'gd' PHP GD (default). Only handles the most basic image formats (GIF, JPEG, PNG).
+ * GD is a prerequisite for Tinyboard no matter what method you choose.
*
- * 'imagick' PHP's ImageMagick bindings. Fast and efficient, supporting many image formats.
- * A few minor bugs. http://pecl.php.net/package/imagick
+ * 'imagick' PHP's ImageMagick bindings. Fast and efficient, supporting many image formats.
+ * A few minor bugs. http://pecl.php.net/package/imagick
*
- * 'convert' The command line version of ImageMagick (`convert`). Fixes most of the bugs in
- * PHP Imagick. `convert` produces the best still thumbnails and is highly recommended.
+ * 'convert' The command line version of ImageMagick (`convert`). Fixes most of the bugs in
+ * PHP Imagick. `convert` produces the best still thumbnails and is highly recommended.
*
- * 'gm' GraphicsMagick (`gm`) is a fork of ImageMagick with many improvements. It is more
- * efficient and gets thumbnailing done using fewer resources.
+ * 'gm' GraphicsMagick (`gm`) is a fork of ImageMagick with many improvements. It is more
+ * efficient and gets thumbnailing done using fewer resources.
*
* 'convert+gifscale'
- * OR 'gm+gifsicle' Same as above, with the exception of using `gifsicle` (command line application)
- * instead of `convert` for resizing GIFs. It's faster and resulting animated
- * thumbnails have less artifacts than if resized with ImageMagick.
+ * OR 'gm+gifsicle' Same as above, with the exception of using `gifsicle` (command line application)
+ * instead of `convert` for resizing GIFs. It's faster and resulting animated
+ * thumbnails have less artifacts than if resized with ImageMagick.
*/
$config['thumb_method'] = 'gd';
// $config['thumb_method'] = 'convert';
@@ -693,7 +705,7 @@
// An alternative function for generating image filenames, instead of the default UNIX timestamp.
// $config['filename_func'] = function($post) {
- // return sprintf("%s", time() . substr(microtime(), 2, 3));
+ // return sprintf("%s", time() . substr(microtime(), 2, 3));
// };
// Thumbnail to use for the non-image file uploads.
@@ -730,8 +742,12 @@
// Display the file's original filename.
$config['show_filename'] = true;
- // Display image identification links using regex.info/exif, TinEye and Google Images.
+ // Display image identification links using ImgOps, regex.info/exif and Google Images.
$config['image_identification'] = false;
+ // Which of the identification links to display. Only works if $config['image_identification'] is true.
+ $config['image_identification_imgops'] = true;
+ $config['image_identification_exif'] = true;
+ $config['image_identification_google'] = true;
// Number of posts in a "View Last X Posts" page
$config['noko50_count'] = 50;
@@ -763,11 +779,6 @@
// Number of reports you can create at once.
$config['report_limit'] = 3;
- // Attention Whoring Bar
- // REMEMBER TO CHMOD attentionbar.txt PROPERLY
- // Oh, and add jQuery in additional_javascript.
- $config['attention_bar'] = false;
-
// Allow unfiltered HTML in board subtitle. This is useful for placing icons and links.
$config['allow_subtitle_html'] = false;
@@ -928,12 +939,6 @@
// Minify Javascript using http://code.google.com/p/minify/.
$config['minify_js'] = false;
- // Allows js/quick-reply-old.js to work. This could make your imageboard more vulnerable to flood attacks.
- $config['quick_reply'] = false;
-
- // Show "SAGE!" next to sage posts
- $config['show_sages'] = false;
-
/*
* ====================
* Video embedding
@@ -948,27 +953,27 @@
$config['embedding'] = array(
array(
'/^https?:\/\/(\w+\.)?youtube\.com\/watch\?v=([a-zA-Z0-9\-_]{10,11})(&.+)?$/i',
- ''
+ ''
),
array(
'/^https?:\/\/(\w+\.)?vimeo\.com\/(\d{2,10})(\?.+)?$/i',
- ''
+ ''
),
array(
'/^https?:\/\/(\w+\.)?dailymotion\.com\/video\/([a-zA-Z0-9]{2,10})(_.+)?$/i',
- ''
+ ''
),
array(
'/^https?:\/\/(\w+\.)?metacafe\.com\/watch\/(\d+)\/([a-zA-Z0-9_\-.]+)\/(\?.+)?$/i',
- '
'
+ ''
),
array(
'/^https?:\/\/video\.google\.com\/videoplay\?docid=(\d+)([](.+)?)?$/i',
- ''
+ ''
),
array(
'/^https?:\/\/(\w+\.)?vocaroo\.com\/i\/([a-zA-Z0-9]{2,15})$/i',
- ''
+ ''
)
);
@@ -989,6 +994,7 @@
$config['error']['toolong_body'] = _('The body was too long.');
$config['error']['tooshort_body'] = _('The body was too short or empty.');
$config['error']['noimage'] = _('You must upload an image.');
+ $config['error']['toomanyimages'] = _('You have attempted to upload too many images!');
$config['error']['nomove'] = _('The server failed to handle your upload.');
$config['error']['fileext'] = _('Unsupported image format.');
$config['error']['noboard'] = _('Invalid board!');
@@ -1099,9 +1105,9 @@
// Static images. These can be URLs OR base64 (data URI scheme). These are only used if
// $config['font_awesome'] is false (default).
- // $config['image_sticky'] = 'static/sticky.gif';
+ // $config['image_sticky'] = 'static/sticky.png';
// $config['image_locked'] = 'static/locked.gif';
- // $config['image_bumplocked'] = 'static/sage.gif'.
+ // $config['image_bumplocked'] = 'static/sage.png'.
// If you want to put images and other dynamic-static stuff on another (preferably cookieless) domain.
// This will override $config['root'] and $config['dir']['...'] directives. "%s" will get replaced with
@@ -1396,16 +1402,14 @@
$config['mod']['debug_sql'] = DISABLED;
// Look through all cache values for debugging when APC is enabled (?/debug/apc)
$config['mod']['debug_apc'] = ADMIN;
- // Look through debug information for recent posts (?/debug/recent)
- $config['mod']['debug_recent'] = ADMIN;
- // Look through debug information for the antispam system (?/debug/antispam)
- $config['mod']['debug_antispam'] = ADMIN;
// Edit the current configuration (via web interface)
$config['mod']['edit_config'] = ADMIN;
// View ban appeals
$config['mod']['view_ban_appeals'] = MOD;
// Accept and deny ban appeals
$config['mod']['ban_appeals'] = MOD;
+ // View the recent posts page
+ $config['mod']['recent'] = MOD;
// Config editor permissions
$config['mod']['config'] = array();
@@ -1440,6 +1444,9 @@
// 'db',
// );
+ // Allow OP to remove arbitrary posts in his thread
+ $config['user_moderation'] = false;
+
/*
* ====================
* Public post search
@@ -1451,16 +1458,16 @@
$config['search']['enable'] = false;
// Maximal number of queries per IP address per minutes
- $config['search']['queries_per_minutes'] = Array(15, 2);
+ $config['search']['queries_per_minutes'] = Array(15, 2);
// Global maximal number of queries per minutes
- $config['search']['queries_per_minutes_all'] = Array(50, 2);
+ $config['search']['queries_per_minutes_all'] = Array(50, 2);
// Limit of search results
- $config['search']['search_limit'] = 100;
-
+ $config['search']['search_limit'] = 100;
+
// Boards for searching
- //$config['search']['boards'] = array('a', 'b', 'c', 'd', 'e');
+ //$config['search']['boards'] = array('a', 'b', 'c', 'd', 'e');
/*
* ====================
diff --git a/inc/display.php b/inc/display.php
index bcde41d0..c836247e 100644
--- a/inc/display.php
+++ b/inc/display.php
@@ -96,7 +96,7 @@ function error($message, $priority = true, $debug_stuff = false) {
// Return the bad request header, necessary for AJAX posts
// czaks: is it really so? the ajax errors only work when this is commented out
- // better yet use it when ajax is disabled
+ // better yet use it when ajax is disabled
if (!isset ($_POST['json_response'])) {
header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request');
}
@@ -340,6 +340,9 @@ class Post {
foreach ($post as $key => $value) {
$this->{$key} = $value;
}
+
+ if (isset($this->files))
+ $this->files = json_decode($this->files);
$this->subject = utf8tohtml($this->subject);
$this->name = utf8tohtml($this->name);
@@ -370,64 +373,11 @@ class Post {
return $this->root . $board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], $this->thread) . '#' . $pre . $this->id;
}
- public function postControls() {
- global $board, $config;
-
- $built = '';
- if ($this->mod) {
- // Mod controls (on posts)
-
- // Delete
- if (hasPermission($config['mod']['delete'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_delete'], 'Delete', 'Are you sure you want to delete this?', $board['dir'] . 'delete/' . $this->id);
-
- // Delete all posts by IP
- if (hasPermission($config['mod']['deletebyip'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_deletebyip'], 'Delete all posts by IP', 'Are you sure you want to delete all posts by this IP address?', $board['dir'] . 'deletebyip/' . $this->id);
-
- // Delete all posts by IP (global)
- if (hasPermission($config['mod']['deletebyip_global'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_deletebyip_global'], 'Delete all posts by IP across all boards', 'Are you sure you want to delete all posts by this IP address, across all boards?', $board['dir'] . 'deletebyip/' . $this->id . '/global');
-
- // Ban
- if (hasPermission($config['mod']['ban'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_ban'] . '';
-
- // Ban & Delete
- if (hasPermission($config['mod']['bandelete'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_bandelete'] . '';
-
- // Delete file (keep post)
- if (!empty($this->file) && hasPermission($config['mod']['deletefile'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_deletefile'], _('Delete file'), _('Are you sure you want to delete this file?'), $board['dir'] . 'deletefile/' . $this->id);
-
- // Spoiler file (keep post)
- if (!empty($this->file) && $this->file != "deleted" && $this->file != null && $this->thumb != 'spoiler' && hasPermission($config['mod']['spoilerimage'], $board['uri'], $this->mod) && $config['spoiler_images'])
- $built .= ' ' . secure_link_confirm($config['mod']['link_spoilerimage'], _('Spoiler File'), _('Are you sure you want to spoiler this file?'), $board['uri'] . '/spoiler/' . $this->id);
-
- // Move post
- if (hasPermission($config['mod']['move'], $board['uri'], $this->mod) && $config['move_replies'])
- $built .= ' ' . $config['mod']['link_move'] . '';
-
- // Edit post
- if (hasPermission($config['mod']['editpost'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_editpost'] . '';
-
-
- if (!empty($built))
- $built = '' . $built . '';
- }
- return $built;
- }
-
- public function ratio() {
- return fraction($this->filewidth, $this->fileheight, ':');
- }
public function build($index=false) {
global $board, $config;
- return Element('post_reply.html', array('config' => $config, 'board' => $board, 'post' => &$this, 'index' => $index));
+ return Element('post_reply.html', array('config' => $config, 'board' => $board, 'post' => &$this, 'index' => $index, 'mod' => $this->mod));
}
};
@@ -441,6 +391,9 @@ class Thread {
$this->{$key} = $value;
}
+ if (isset($this->files))
+ $this->files = json_decode($this->files);
+
$this->subject = utf8tohtml($this->subject);
$this->name = utf8tohtml($this->name);
$this->mod = $mod;
@@ -479,79 +432,8 @@ class Thread {
$this->posts[] = $post;
}
public function postCount() {
- return count($this->posts) + $this->omitted;
+ return count($this->posts) + $this->omitted;
}
- public function postControls() {
- global $board, $config;
-
- $built = '';
- if ($this->mod) {
- // Mod controls (on posts)
- // Delete
- if (hasPermission($config['mod']['delete'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_delete'], _('Delete'), _('Are you sure you want to delete this?'), $board['dir'] . 'delete/' . $this->id);
-
- // Delete all posts by IP
- if (hasPermission($config['mod']['deletebyip'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_deletebyip'], _('Delete all posts by IP'), _('Are you sure you want to delete all posts by this IP address?'), $board['dir'] . 'deletebyip/' . $this->id);
-
- // Delete all posts by IP (global)
- if (hasPermission($config['mod']['deletebyip_global'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_deletebyip_global'], _('Delete all posts by IP across all boards'), _('Are you sure you want to delete all posts by this IP address, across all boards?'), $board['dir'] . 'deletebyip/' . $this->id . '/global');
-
- // Ban
- if (hasPermission($config['mod']['ban'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_ban'] . '';
-
- // Ban & Delete
- if (hasPermission($config['mod']['bandelete'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_bandelete'] . '';
-
- // Delete file (keep post)
- if (!empty($this->file) && $this->file != 'deleted' && hasPermission($config['mod']['deletefile'], $board['uri'], $this->mod))
- $built .= ' ' . secure_link_confirm($config['mod']['link_deletefile'], _('Delete file'), _('Are you sure you want to delete this file?'), $board['dir'] . 'deletefile/' . $this->id);
-
- // Spoiler file (keep post)
- if (!empty($this->file) && $this->file != "deleted" && $this->file != null && $this->thumb != 'spoiler' && hasPermission($config['mod']['spoilerimage'], $board['uri'], $this->mod) && $config['spoiler_images'])
- $built .= ' ' . secure_link_confirm($config['mod']['link_spoilerimage'], _('Spoiler File'), _('Are you sure you want to spoiler this file?'), $board['uri'] . '/spoiler/' . $this->id);
-
- // Sticky
- if (hasPermission($config['mod']['sticky'], $board['uri'], $this->mod))
- if ($this->sticky)
- $built .= ' ' . $config['mod']['link_desticky'] . '';
- else
- $built .= ' ' . $config['mod']['link_sticky'] . '';
-
- if (hasPermission($config['mod']['bumplock'], $board['uri'], $this->mod))
- if ($this->sage)
- $built .= ' ' . $config['mod']['link_bumpunlock'] . '';
- else
- $built .= ' ' . $config['mod']['link_bumplock'] . '';
-
- // Lock
- if (hasPermission($config['mod']['lock'], $board['uri'], $this->mod))
- if ($this->locked)
- $built .= ' ' . $config['mod']['link_unlock'] . '';
- else
- $built .= ' ' . $config['mod']['link_lock'] . '';
-
- if (hasPermission($config['mod']['move'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_move'] . '';
-
- // Edit post
- if (hasPermission($config['mod']['editpost'], $board['uri'], $this->mod))
- $built .= ' ' . $config['mod']['link_editpost'] . '';
-
- if (!empty($built))
- $built = '' . $built . '';
- }
- return $built;
- }
-
- public function ratio() {
- return fraction($this->filewidth, $this->fileheight, ':');
- }
-
public function build($index=false, $isnoko50=false) {
global $board, $config, $debug;
@@ -559,7 +441,7 @@ class Thread {
event('show-thread', $this);
- $built = Element('post_thread.html', array('config' => $config, 'board' => $board, 'post' => &$this, 'index' => $index, 'hasnoko50' => $hasnoko50, 'isnoko50' => $isnoko50));
+ $built = Element('post_thread.html', array('config' => $config, 'board' => $board, 'post' => &$this, 'index' => $index, 'hasnoko50' => $hasnoko50, 'isnoko50' => $isnoko50, 'mod' => $this->mod));
return $built;
}
diff --git a/inc/functions.php b/inc/functions.php
index 1cadbb6e..aa203e27 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -96,9 +96,9 @@ function loadConfig() {
$configstr = file_get_contents('inc/instance-config.php');
- if (isset($board['dir']) && file_exists($board['dir'] . '/config.php')) {
- $configstr .= file_get_contents($board['dir'] . '/config.php');
- }
+ if (isset($board['dir']) && file_exists($board['dir'] . '/config.php')) {
+ $configstr .= file_get_contents($board['dir'] . '/config.php');
+ }
$matches = array();
preg_match_all('/[^\/*#]\$config\s*\[\s*[\'"]locale[\'"]\s*\]\s*=\s*([\'"])(.*?)\1/', $configstr, $matches);
if ($matches && isset ($matches[2]) && $matches[2]) {
@@ -859,7 +859,7 @@ function insertFloodPost(array $post) {
function post(array $post) {
global $pdo, $board;
- $query = prepare(sprintf("INSERT INTO ``posts_%s`` VALUES ( NULL, :thread, :subject, :email, :name, :trip, :capcode, :body, :body_nomarkup, :time, :time, :thumb, :thumbwidth, :thumbheight, :file, :width, :height, :filesize, :filename, :filehash, :password, :ip, :sticky, :locked, 0, :embed)", $board['uri']));
+ $query = prepare(sprintf("INSERT INTO ``posts_%s`` VALUES ( NULL, :thread, :subject, :email, :name, :trip, :capcode, :body, :body_nomarkup, :time, :time, :files, :num_files, :filehash, :password, :ip, :sticky, :locked, 0, :embed)", $board['uri']));
// Basic stuff
if (!empty($post['subject'])) {
@@ -919,31 +919,12 @@ function post(array $post) {
}
if ($post['has_file']) {
- $query->bindValue(':thumb', $post['thumb']);
- $query->bindValue(':thumbwidth', $post['thumbwidth'], PDO::PARAM_INT);
- $query->bindValue(':thumbheight', $post['thumbheight'], PDO::PARAM_INT);
- $query->bindValue(':file', $post['file']);
-
- if (isset($post['width'], $post['height'])) {
- $query->bindValue(':width', $post['width'], PDO::PARAM_INT);
- $query->bindValue(':height', $post['height'], PDO::PARAM_INT);
- } else {
- $query->bindValue(':width', null, PDO::PARAM_NULL);
- $query->bindValue(':height', null, PDO::PARAM_NULL);
- }
-
- $query->bindValue(':filesize', $post['filesize'], PDO::PARAM_INT);
- $query->bindValue(':filename', $post['filename']);
+ $query->bindValue(':files', json_encode($post['files']));
+ $query->bindValue(':num_files', $post['num_files']);
$query->bindValue(':filehash', $post['filehash']);
} else {
- $query->bindValue(':thumb', null, PDO::PARAM_NULL);
- $query->bindValue(':thumbwidth', null, PDO::PARAM_NULL);
- $query->bindValue(':thumbheight', null, PDO::PARAM_NULL);
- $query->bindValue(':file', null, PDO::PARAM_NULL);
- $query->bindValue(':width', null, PDO::PARAM_NULL);
- $query->bindValue(':height', null, PDO::PARAM_NULL);
- $query->bindValue(':filesize', null, PDO::PARAM_NULL);
- $query->bindValue(':filename', null, PDO::PARAM_NULL);
+ $query->bindValue(':files', null, PDO::PARAM_NULL);
+ $query->bindValue(':num_files', 0);
$query->bindValue(':filehash', null, PDO::PARAM_NULL);
}
@@ -971,33 +952,40 @@ function bumpThread($id) {
}
// Remove file from post
-function deleteFile($id, $remove_entirely_if_already=true) {
+function deleteFile($id, $remove_entirely_if_already=true, $file=null) {
global $board, $config;
- $query = prepare(sprintf("SELECT `thread`,`thumb`,`file` FROM ``posts_%s`` WHERE `id` = :id LIMIT 1", $board['uri']));
+ $query = prepare(sprintf("SELECT `thread`, `files`, `num_files` FROM ``posts_%s`` WHERE `id` = :id LIMIT 1", $board['uri']));
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
if (!$post = $query->fetch(PDO::FETCH_ASSOC))
error($config['error']['invalidpost']);
+ $files = json_decode($post['files']);
+ $file_to_delete = $file !== false ? $files[(int)$file] : (object)array('file' => false);
- if ($post['file'] == 'deleted' && !$post['thread'])
+ if ($files[0]->file == 'deleted' && $post['num_files'] == 1 && !$post['thread'])
return; // Can't delete OP's image completely.
- $query = prepare(sprintf("UPDATE ``posts_%s`` SET `thumb` = NULL, `thumbwidth` = NULL, `thumbheight` = NULL, `filewidth` = NULL, `fileheight` = NULL, `filesize` = NULL, `filename` = NULL, `filehash` = NULL, `file` = :file WHERE `id` = :id", $board['uri']));
- if ($post['file'] == 'deleted' && $remove_entirely_if_already) {
+ $query = prepare(sprintf("UPDATE ``posts_%s`` SET `files` = :file WHERE `id` = :id", $board['uri']));
+ if (($file && $file_to_delete->file == 'deleted') && $remove_entirely_if_already) {
// Already deleted; remove file fully
- $query->bindValue(':file', null, PDO::PARAM_NULL);
+ $files[$file] = null;
} else {
- // Delete thumbnail
- file_unlink($board['dir'] . $config['dir']['thumb'] . $post['thumb']);
+ foreach ($files as $i => $f) {
+ if (($file !== false && $i == $file) || $file === null) {
+ // Delete thumbnail
+ file_unlink($board['dir'] . $config['dir']['thumb'] . $f->thumb);
+ unset($files[$i]->thumb);
- // Delete file
- file_unlink($board['dir'] . $config['dir']['img'] . $post['file']);
-
- // Set file to 'deleted'
- $query->bindValue(':file', 'deleted', PDO::PARAM_INT);
+ // Delete file
+ file_unlink($board['dir'] . $config['dir']['img'] . $f->file);
+ $files[$i]->file = 'deleted';
+ }
+ }
}
+ $query->bindValue(':file', json_encode($files), PDO::PARAM_STR);
+
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
@@ -1035,7 +1023,7 @@ function deletePost($id, $error_if_doesnt_exist=true, $rebuild_after=true) {
global $board, $config;
// Select post and replies (if thread) in one query
- $query = prepare(sprintf("SELECT `id`,`thread`,`thumb`,`file` FROM ``posts_%s`` WHERE `id` = :id OR `thread` = :id", $board['uri']));
+ $query = prepare(sprintf("SELECT `id`,`thread`,`files` FROM ``posts_%s`` WHERE `id` = :id OR `thread` = :id", $board['uri']));
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
@@ -1065,13 +1053,14 @@ function deletePost($id, $error_if_doesnt_exist=true, $rebuild_after=true) {
// Rebuild thread
$rebuild = &$post['thread'];
}
- if ($post['thumb']) {
- // Delete thumbnail
- file_unlink($board['dir'] . $config['dir']['thumb'] . $post['thumb']);
- }
- if ($post['file']) {
+ if ($post['files']) {
// Delete file
- file_unlink($board['dir'] . $config['dir']['img'] . $post['file']);
+ foreach (json_decode($post['files']) as $i => $f) {
+ if ($f->file !== 'deleted') {
+ file_unlink($board['dir'] . $config['dir']['img'] . $f->file);
+ file_unlink($board['dir'] . $config['dir']['thumb'] . $f->thumb);
+ }
+ }
}
$ids[] = (int)$post['id'];
@@ -1188,8 +1177,8 @@ function index($page, $mod=false) {
$num_images = 0;
foreach ($replies as $po) {
- if ($po['file'])
- $num_images++;
+ if ($po['num_files'])
+ $num_images+=$po['num_files'];
$thread->add(new Post($po, $mod ? '?/' : $config['root'], $mod));
}
@@ -1212,7 +1201,7 @@ function index($page, $mod=false) {
'post_url' => $config['post_url'],
'config' => $config,
'boardlist' => createBoardlist($mod),
- 'threads' => $threads
+ 'threads' => $threads,
);
}
@@ -1347,7 +1336,7 @@ function checkRobot($body) {
// Returns an associative array with 'replies' and 'images' keys
function numPosts($id) {
global $board;
- $query = prepare(sprintf("SELECT COUNT(*) AS `replies`, COUNT(NULLIF(`file`, 0)) AS `images` FROM ``posts_%s`` WHERE `thread` = :thread", $board['uri'], $board['uri']));
+ $query = prepare(sprintf("SELECT COUNT(*) AS `replies`, SUM(`num_files`) AS `images` FROM ``posts_%s`` WHERE `thread` = :thread", $board['uri'], $board['uri']));
$query->bindValue(':thread', $id, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
@@ -1897,7 +1886,7 @@ function markup(&$body, $track_cites = false) {
}
// replace tabs with 8 spaces
- $body = str_replace("\t", ' ', $body);
+ $body = str_replace("\t", ' ', $body);
return $tracked_cites;
}
@@ -2044,8 +2033,8 @@ function buildThread50($id, $return = false, $mod = false, $thread = null, $anti
if (!isset($thread)) {
$thread = new Thread($post, $mod ? '?/' : $config['root'], $mod);
} else {
- if ($post['file'])
- $num_images++;
+ if ($post['files'])
+ $num_images += $post['num_files'];
$thread->add(new Post($post, $mod ? '?/' : $config['root'], $mod));
}
@@ -2077,8 +2066,8 @@ function buildThread50($id, $return = false, $mod = false, $thread = null, $anti
foreach ($allPosts as $index => $post) {
if ($index == count($allPosts)-count($thread->posts))
break;
- if ($post->file)
- $thread->omitted_images++;
+ if ($post->files)
+ $thread->omitted_images += $post->num_files;
}
}
@@ -2224,13 +2213,15 @@ function getPostByHashInThread($hash, $thread) {
}
function undoImage(array $post) {
- if (!$post['has_file'])
+ if (!$post['has_file'] || !isset($post['files']))
return;
- if (isset($post['file_path']))
- file_unlink($post['file_path']);
- if (isset($post['thumb_path']))
- file_unlink($post['thumb_path']);
+ foreach ($post['files'] as $key => $file) {
+ if (isset($file['file_path']))
+ file_unlink($file['file_path']);
+ if (isset($file['thumb_path']))
+ file_unlink($file['thumb_path']);
+ }
}
function rDNS($ip_addr) {
diff --git a/inc/lib/Twig/Extensions/Extension/Tinyboard.php b/inc/lib/Twig/Extensions/Extension/Tinyboard.php
index 727d5d2c..986ecf45 100644
--- a/inc/lib/Twig/Extensions/Extension/Tinyboard.php
+++ b/inc/lib/Twig/Extensions/Extension/Tinyboard.php
@@ -13,6 +13,7 @@ class Twig_Extensions_Extension_Tinyboard extends Twig_Extension
new Twig_SimpleFilter('filesize', 'format_bytes'),
new Twig_SimpleFilter('truncate', 'twig_truncate_filter'),
new Twig_SimpleFilter('truncate_body', 'truncate'),
+ new Twig_SimpleFilter('truncate_filename', 'twig_filename_truncate_filter'),
new Twig_SimpleFilter('extension', 'twig_extension_filter'),
new Twig_SimpleFilter('sprintf', 'sprintf'),
new Twig_SimpleFilter('capcode', 'capcode'),
@@ -25,7 +26,7 @@ class Twig_Extensions_Extension_Tinyboard extends Twig_Extension
new Twig_SimpleFilter('until', 'until'),
new Twig_SimpleFilter('push', 'twig_push_filter'),
new Twig_SimpleFilter('bidi_cleanup', 'bidi_cleanup'),
- new Twig_SimpleFilter('addslashes', 'addslashes')
+ new Twig_SimpleFilter('addslashes', 'addslashes'),
);
}
@@ -42,6 +43,9 @@ class Twig_Extensions_Extension_Tinyboard extends Twig_Extension
new Twig_SimpleFunction('timezone', 'twig_timezone_function'),
new Twig_SimpleFunction('hiddenInputs', 'hiddenInputs'),
new Twig_SimpleFunction('hiddenInputsHash', 'hiddenInputsHash'),
+ new Twig_SimpleFunction('ratio', 'twig_ratio_function'),
+ new Twig_SimpleFunction('secure_link_confirm', 'twig_secure_link_confirm'),
+ new Twig_SimpleFunction('secure_link', 'twig_secure_link')
);
}
@@ -100,3 +104,30 @@ function twig_truncate_filter($value, $length = 30, $preserve = false, $separato
return $value;
}
+function twig_filename_truncate_filter($value, $length = 30, $separator = '…') {
+ if (mb_strlen($value) > $length) {
+ $value = strrev($value);
+ $array = array_reverse(explode(".", $value, 2));
+ $array = array_map("strrev", $array);
+
+ $filename = &$array[0];
+ $extension = isset($array[1]) ? $array[1] : false;
+
+ $filename = mb_substr($filename, 0, $length - ($extension ? mb_strlen($extension) + 1 : 0)) . $separator;
+
+ return implode(".", $array);
+ }
+ return $value;
+}
+
+function twig_ratio_function($w, $h) {
+ return fraction($w, $h, ':');
+}
+function twig_secure_link_confirm($text, $title, $confirm_message, $href) {
+ global $config;
+
+ return '' . $text . '';
+}
+function twig_secure_link($href) {
+ return $href . '/' . make_secure_link_token($href);
+}
diff --git a/inc/lib/minify/JSMin.php b/inc/lib/minify/JSMin.php
index b6879f37..9840d8b3 100755
--- a/inc/lib/minify/JSMin.php
+++ b/inc/lib/minify/JSMin.php
@@ -7,14 +7,14 @@
*
*
* This is a modified port of jsmin.c. Improvements:
- *
+ *
* Does not choke on some regexp literals containing quote characters. E.g. /'/
- *
- * Spaces are preserved after some add/sub operators, so they are not mistakenly
+ *
+ * Spaces are preserved after some add/sub operators, so they are not mistakenly
* converted to post-inc/dec. E.g. a + ++b -> a+ ++b
*
* Preserves multi-line comments that begin with /*!
- *
+ *
* PHP 5 or higher is required.
*
* Permission is hereby granted to use this version of the library under the
@@ -69,6 +69,7 @@ class JSMin {
protected $lookAhead = null;
protected $output = '';
protected $lastByteOut = '';
+ protected $keptComment = '';
/**
* Minify Javascript.
@@ -116,8 +117,8 @@ class JSMin {
// determine next command
$command = self::ACTION_KEEP_A; // default
if ($this->a === ' ') {
- if (($this->lastByteOut === '+' || $this->lastByteOut === '-')
- && ($this->b === $this->lastByteOut)) {
+ if (($this->lastByteOut === '+' || $this->lastByteOut === '-')
+ && ($this->b === $this->lastByteOut)) {
// Don't delete this space. If we do, the addition/subtraction
// could be parsed as a post-increment
} elseif (! $this->isAlphaNum($this->b)) {
@@ -126,16 +127,17 @@ class JSMin {
} elseif ($this->a === "\n") {
if ($this->b === ' ') {
$command = self::ACTION_DELETE_A_B;
- // in case of mbstring.func_overload & 2, must check for null b,
- // otherwise mb_strpos will give WARNING
+
+ // in case of mbstring.func_overload & 2, must check for null b,
+ // otherwise mb_strpos will give WARNING
} elseif ($this->b === null
- || (false === strpos('{[(+-', $this->b)
+ || (false === strpos('{[(+-!~', $this->b)
&& ! $this->isAlphaNum($this->b))) {
$command = self::ACTION_DELETE_A;
}
} elseif (! $this->isAlphaNum($this->a)) {
if ($this->b === ' '
- || ($this->b === "\n"
+ || ($this->b === "\n"
&& (false === strpos('}])+-"\'', $this->a)))) {
$command = self::ACTION_DELETE_A_B;
}
@@ -160,7 +162,8 @@ class JSMin {
*/
protected function action($command)
{
- if ($command === self::ACTION_DELETE_A_B
+ // make sure we don't compress "a + ++b" to "a+++b", etc.
+ if ($command === self::ACTION_DELETE_A_B
&& $this->b === ' '
&& ($this->a === '+' || $this->a === '-')) {
// Note: we're at an addition/substraction operator; the inputIndex
@@ -170,58 +173,88 @@ class JSMin {
$command = self::ACTION_KEEP_A;
}
}
+
switch ($command) {
- case self::ACTION_KEEP_A:
+ case self::ACTION_KEEP_A: // 1
$this->output .= $this->a;
+
+ if ($this->keptComment) {
+ $this->output = rtrim($this->output, "\n");
+ $this->output .= $this->keptComment;
+ $this->keptComment = '';
+ }
+
$this->lastByteOut = $this->a;
-
- // fallthrough
- case self::ACTION_DELETE_A:
+
+ // fallthrough intentional
+ case self::ACTION_DELETE_A: // 2
$this->a = $this->b;
if ($this->a === "'" || $this->a === '"') { // string literal
$str = $this->a; // in case needed for exception
- while (true) {
+ for(;;) {
$this->output .= $this->a;
$this->lastByteOut = $this->a;
-
- $this->a = $this->get();
+
+ $this->a = $this->get();
if ($this->a === $this->b) { // end quote
break;
}
- if (ord($this->a) <= self::ORD_LF) {
+ if ($this->isEOF($this->a)) {
+ $byte = $this->inputIndex - 1;
throw new JSMin_UnterminatedStringException(
- "JSMin: Unterminated String at byte "
- . $this->inputIndex . ": {$str}");
+ "JSMin: Unterminated String at byte {$byte}: {$str}");
}
$str .= $this->a;
if ($this->a === '\\') {
$this->output .= $this->a;
$this->lastByteOut = $this->a;
-
+
$this->a = $this->get();
$str .= $this->a;
}
}
}
- // fallthrough
- case self::ACTION_DELETE_A_B:
+
+ // fallthrough intentional
+ case self::ACTION_DELETE_A_B: // 3
$this->b = $this->next();
- if ($this->b === '/' && $this->isRegexpLiteral()) { // RegExp literal
+ if ($this->b === '/' && $this->isRegexpLiteral()) {
$this->output .= $this->a . $this->b;
- $pattern = '/'; // in case needed for exception
- while (true) {
+ $pattern = '/'; // keep entire pattern in case we need to report it in the exception
+ for(;;) {
$this->a = $this->get();
$pattern .= $this->a;
+ if ($this->a === '[') {
+ for(;;) {
+ $this->output .= $this->a;
+ $this->a = $this->get();
+ $pattern .= $this->a;
+ if ($this->a === ']') {
+ break;
+ }
+ if ($this->a === '\\') {
+ $this->output .= $this->a;
+ $this->a = $this->get();
+ $pattern .= $this->a;
+ }
+ if ($this->isEOF($this->a)) {
+ throw new JSMin_UnterminatedRegExpException(
+ "JSMin: Unterminated set in RegExp at byte "
+ . $this->inputIndex .": {$pattern}");
+ }
+ }
+ }
+
if ($this->a === '/') { // end pattern
break; // while (true)
} elseif ($this->a === '\\') {
$this->output .= $this->a;
- $this->a = $this->get();
- $pattern .= $this->a;
- } elseif (ord($this->a) <= self::ORD_LF) {
+ $this->a = $this->get();
+ $pattern .= $this->a;
+ } elseif ($this->isEOF($this->a)) {
+ $byte = $this->inputIndex - 1;
throw new JSMin_UnterminatedRegExpException(
- "JSMin: Unterminated RegExp at byte "
- . $this->inputIndex .": {$pattern}");
+ "JSMin: Unterminated RegExp at byte {$byte}: {$pattern}");
}
$this->output .= $this->a;
$this->lastByteOut = $this->a;
@@ -237,31 +270,43 @@ class JSMin {
*/
protected function isRegexpLiteral()
{
- if (false !== strpos("\n{;(,=:[!&|?", $this->a)) { // we aren't dividing
+ if (false !== strpos("(,=:[!&|?+-~*{;", $this->a)) {
+ // we obviously aren't dividing
return true;
}
- if (' ' === $this->a) {
- $length = strlen($this->output);
- if ($length < 2) { // weird edge case
- return true;
+
+ // we have to check for a preceding keyword, and we don't need to pattern
+ // match over the whole output.
+ $recentOutput = substr($this->output, -10);
+
+ // check if return/typeof directly precede a pattern without a space
+ foreach (array('return', 'typeof') as $keyword) {
+ if ($this->a !== substr($keyword, -1)) {
+ // certainly wasn't keyword
+ continue;
}
- // you can't divide a keyword
- if (preg_match('/(?:case|else|in|return|typeof)$/', $this->output, $m)) {
- if ($this->output === $m[0]) { // odd but could happen
- return true;
- }
- // make sure it's a keyword, not end of an identifier
- $charBeforeKeyword = substr($this->output, $length - strlen($m[0]) - 1, 1);
- if (! $this->isAlphaNum($charBeforeKeyword)) {
+ if (preg_match("~(^|[\\s\\S])" . substr($keyword, 0, -1) . "$~", $recentOutput, $m)) {
+ if ($m[1] === '' || !$this->isAlphaNum($m[1])) {
return true;
}
}
}
+
+ // check all keywords
+ if ($this->a === ' ' || $this->a === "\n") {
+ if (preg_match('~(^|[\\s\\S])(?:case|else|in|return|typeof)$~', $recentOutput, $m)) {
+ if ($m[1] === '' || !$this->isAlphaNum($m[1])) {
+ return true;
+ }
+ }
+ }
+
return false;
}
/**
- * Get next char. Convert ctrl char to space.
+ * Return the next character from stdin. Watch out for lookahead. If the character is a control character,
+ * translate it to a space or linefeed.
*
* @return string
*/
@@ -270,24 +315,36 @@ class JSMin {
$c = $this->lookAhead;
$this->lookAhead = null;
if ($c === null) {
+ // getc(stdin)
if ($this->inputIndex < $this->inputLength) {
$c = $this->input[$this->inputIndex];
$this->inputIndex += 1;
} else {
- return null;
+ $c = null;
}
}
- if ($c === "\r" || $c === "\n") {
+ if (ord($c) >= self::ORD_SPACE || $c === "\n" || $c === null) {
+ return $c;
+ }
+ if ($c === "\r") {
return "\n";
}
- if (ord($c) < self::ORD_SPACE) { // control char
- return ' ';
- }
- return $c;
+ return ' ';
}
/**
- * Get next char. If is ctrl character, translate to a space or newline.
+ * Does $a indicate end of input?
+ *
+ * @param string $a
+ * @return bool
+ */
+ protected function isEOF($a)
+ {
+ return ord($a) <= self::ORD_LF;
+ }
+
+ /**
+ * Get next char (without getting it). If is ctrl character, translate to a space or newline.
*
* @return string
*/
@@ -298,7 +355,7 @@ class JSMin {
}
/**
- * Is $c a letter, digit, underscore, dollar sign, escape, or non-ASCII?
+ * Return true if the character is a letter, digit, underscore, dollar sign, or non-ASCII character.
*
* @param string $c
*
@@ -306,77 +363,84 @@ class JSMin {
*/
protected function isAlphaNum($c)
{
- return (preg_match('/^[0-9a-zA-Z_\\$\\\\]$/', $c) || ord($c) > 126);
+ return (preg_match('/^[a-z0-9A-Z_\\$\\\\]$/', $c) || ord($c) > 126);
}
/**
- * @return string
+ * Consume a single line comment from input (possibly retaining it)
*/
- protected function singleLineComment()
+ protected function consumeSingleLineComment()
{
$comment = '';
while (true) {
$get = $this->get();
$comment .= $get;
- if (ord($get) <= self::ORD_LF) { // EOL reached
+ if (ord($get) <= self::ORD_LF) { // end of line reached
// if IE conditional comment
if (preg_match('/^\\/@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
- return "/{$comment}";
+ $this->keptComment .= "/{$comment}";
}
- return $get;
+ return;
}
}
}
/**
- * @return string
+ * Consume a multiple line comment from input (possibly retaining it)
+ *
* @throws JSMin_UnterminatedCommentException
*/
- protected function multipleLineComment()
+ protected function consumeMultipleLineComment()
{
$this->get();
$comment = '';
- while (true) {
+ for(;;) {
$get = $this->get();
if ($get === '*') {
if ($this->peek() === '/') { // end of comment reached
$this->get();
- // if comment preserved by YUI Compressor
if (0 === strpos($comment, '!')) {
- return "\n/*!" . substr($comment, 1) . "*/\n";
+ // preserved by YUI Compressor
+ if (!$this->keptComment) {
+ // don't prepend a newline if two comments right after one another
+ $this->keptComment = "\n";
+ }
+ $this->keptComment .= "/*!" . substr($comment, 1) . "*/\n";
+ } else if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
+ // IE conditional
+ $this->keptComment .= "/*{$comment}*/";
}
- // if IE conditional comment
- if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
- return "/*{$comment}*/";
- }
- return ' ';
+ return;
}
} elseif ($get === null) {
throw new JSMin_UnterminatedCommentException(
- "JSMin: Unterminated comment at byte "
- . $this->inputIndex . ": /*{$comment}");
+ "JSMin: Unterminated comment at byte {$this->inputIndex}: /*{$comment}");
}
$comment .= $get;
}
}
/**
- * Get the next character, skipping over comments.
- * Some comments may be preserved.
+ * Get the next character, skipping over comments. Some comments may be preserved.
*
* @return string
*/
protected function next()
{
$get = $this->get();
- if ($get !== '/') {
- return $get;
- }
- switch ($this->peek()) {
- case '/': return $this->singleLineComment();
- case '*': return $this->multipleLineComment();
- default: return $get;
+ if ($get === '/') {
+ switch ($this->peek()) {
+ case '/':
+ $this->consumeSingleLineComment();
+ $get = "\n";
+ break;
+ case '*':
+ $this->consumeMultipleLineComment();
+ $get = ' ';
+ break;
+ }
}
+ return $get;
}
}
diff --git a/inc/lib/minify/Minify.php b/inc/lib/minify/Minify.php
index 9634f221..2b38f89b 100755
--- a/inc/lib/minify/Minify.php
+++ b/inc/lib/minify/Minify.php
@@ -3,11 +3,6 @@
* Class Minify
* @package Minify
*/
-
-/**
- * Minify_Source
- */
-require_once 'Minify/Source.php';
/**
* Minify - Combines, minifies, and caches JavaScript and CSS files on demand.
@@ -29,7 +24,7 @@ require_once 'Minify/Source.php';
*/
class Minify {
- const VERSION = '2.1.5';
+ const VERSION = '2.2.0';
const TYPE_CSS = 'text/css';
const TYPE_HTML = 'text/html';
// there is some debate over the ideal JS Content-Type, but this is the
@@ -85,7 +80,6 @@ class Minify {
public static function setCache($cache = '', $fileLocking = true)
{
if (is_string($cache)) {
- require_once 'Minify/Cache/File.php';
self::$_cache = new Minify_Cache_File($cache, $fileLocking);
} else {
self::$_cache = $cache;
@@ -161,9 +155,11 @@ class Minify {
*
* @param array $options controller/serve options
*
- * @return mixed null, or, if the 'quiet' option is set to true, an array
+ * @return null|array if the 'quiet' option is set to true, an array
* with keys "success" (bool), "statusCode" (int), "content" (string), and
* "headers" (array).
+ *
+ * @throws Exception
*/
public static function serve($controller, $options = array())
{
@@ -174,10 +170,6 @@ class Minify {
if (is_string($controller)) {
// make $controller into object
$class = 'Minify_Controller_' . $controller;
- if (! class_exists($class, false)) {
- require_once "Minify/Controller/"
- . str_replace('_', '/', $controller) . ".php";
- }
$controller = new $class();
/* @var Minify_Controller_Base $controller */
}
@@ -219,8 +211,7 @@ class Minify {
$contentEncoding = self::$_options['encodeMethod'];
} else {
// sniff request header
- require_once 'HTTP/Encoder.php';
- // depending on what the client accepts, $contentEncoding may be
+ // depending on what the client accepts, $contentEncoding may be
// 'x-gzip' while our internal encodeMethod is 'gzip'. Calling
// getAcceptedEncoding(false, false) leaves out compress and deflate as options.
list(self::$_options['encodeMethod'], $contentEncoding) = HTTP_Encoder::getAcceptedEncoding(false, false);
@@ -231,7 +222,6 @@ class Minify {
}
// check client cache
- require_once 'HTTP/ConditionalGet.php';
$cgOptions = array(
'lastModifiedTime' => self::$_options['lastModifiedTime']
,'isPublic' => self::$_options['isPublic']
@@ -300,7 +290,7 @@ class Minify {
throw $e;
}
self::$_cache->store($cacheId, $content);
- if (function_exists('gzencode')) {
+ if (function_exists('gzencode') && self::$_options['encodeMethod']) {
self::$_cache->store($cacheId . '.gz', gzencode($content, self::$_options['encodeLevel']));
}
}
@@ -451,7 +441,7 @@ class Minify {
/**
* Set up sources to use Minify_Lines
*
- * @param array $sources Minify_Source instances
+ * @param Minify_Source[] $sources Minify_Source instances
*/
protected static function _setupDebug($sources)
{
@@ -468,6 +458,8 @@ class Minify {
* Combines sources and minifies the result.
*
* @return string
+ *
+ * @throws Exception
*/
protected static function _combineMinify()
{
@@ -526,7 +518,6 @@ class Minify {
$imploded = implode($implodeSeparator, $groupToProcessTogether);
$groupToProcessTogether = array();
if ($lastMinifier) {
- self::$_controller->loadMinifier($lastMinifier);
try {
$content[] = call_user_func($lastMinifier, $imploded, $lastOptions);
} catch (Exception $e) {
@@ -574,7 +565,7 @@ class Minify {
{
$name = preg_replace('/[^a-zA-Z0-9\\.=_,]/', '', self::$_controller->selectionId);
$name = preg_replace('/\\.+/', '.', $name);
- $name = substr($name, 0, 200 - 34 - strlen($prefix));
+ $name = substr($name, 0, 100 - 34 - strlen($prefix));
$md5 = md5(serialize(array(
Minify_Source::getDigest(self::$_controller->sources)
,self::$_options['minifiers']
diff --git a/inc/lib/minify/Minify/Build.php b/inc/lib/minify/Minify/Build.php
index e625165e..1185fbe7 100755
--- a/inc/lib/minify/Minify/Build.php
+++ b/inc/lib/minify/Minify/Build.php
@@ -4,8 +4,6 @@
* @package Minify
*/
-require_once 'Minify/Source.php';
-
/**
* Maintain a single last modification time for a group of Minify sources to
* allow use of far off Expires headers in Minify.
diff --git a/inc/lib/minify/Minify/CSS.php b/inc/lib/minify/Minify/CSS.php
index 49882e9d..32414551 100755
--- a/inc/lib/minify/Minify/CSS.php
+++ b/inc/lib/minify/Minify/CSS.php
@@ -56,6 +56,7 @@ class Minify_CSS {
public static function minify($css, $options = array())
{
$options = array_merge(array(
+ 'compress' => true,
'removeCharsets' => true,
'preserveComments' => true,
'currentDir' => null,
@@ -67,21 +68,20 @@ class Minify_CSS {
if ($options['removeCharsets']) {
$css = preg_replace('/@charset[^;]+;\\s*/', '', $css);
}
- require_once 'Minify/CSS/Compressor.php';
- if (! $options['preserveComments']) {
- $css = Minify_CSS_Compressor::process($css, $options);
- } else {
- require_once 'Minify/CommentPreserver.php';
- $css = Minify_CommentPreserver::process(
- $css
- ,array('Minify_CSS_Compressor', 'process')
- ,array($options)
- );
+ if ($options['compress']) {
+ if (! $options['preserveComments']) {
+ $css = Minify_CSS_Compressor::process($css, $options);
+ } else {
+ $css = Minify_CommentPreserver::process(
+ $css
+ ,array('Minify_CSS_Compressor', 'process')
+ ,array($options)
+ );
+ }
}
if (! $options['currentDir'] && ! $options['prependRelativePath']) {
return $css;
}
- require_once 'Minify/CSS/UriRewriter.php';
if ($options['currentDir']) {
return Minify_CSS_UriRewriter::rewrite(
$css
diff --git a/inc/lib/minify/Minify/CSS/UriRewriter.php b/inc/lib/minify/Minify/CSS/UriRewriter.php
index 8845f156..43cc2548 100755
--- a/inc/lib/minify/Minify/CSS/UriRewriter.php
+++ b/inc/lib/minify/Minify/CSS/UriRewriter.php
@@ -70,7 +70,7 @@ class Minify_CSS_UriRewriter {
// rewrite
$css = preg_replace_callback('/@import\\s+([\'"])(.*?)[\'"]/'
,array(self::$className, '_processUriCB'), $css);
- $css = preg_replace_callback('/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
+ $css = preg_replace_callback('/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/'
,array(self::$className, '_processUriCB'), $css);
return $css;
@@ -94,7 +94,7 @@ class Minify_CSS_UriRewriter {
// append
$css = preg_replace_callback('/@import\\s+([\'"])(.*?)[\'"]/'
,array(self::$className, '_processUriCB'), $css);
- $css = preg_replace_callback('/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
+ $css = preg_replace_callback('/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/'
,array(self::$className, '_processUriCB'), $css);
self::$_prependPath = null;
@@ -282,11 +282,8 @@ class Minify_CSS_UriRewriter {
? $m[1]
: substr($m[1], 1, strlen($m[1]) - 2);
}
- // analyze URI
- if ('/' !== $uri[0] // root-relative
- && false === strpos($uri, '//') // protocol (non-data)
- && 0 !== strpos($uri, 'data:') // data protocol
- ) {
+ // if not root/scheme relative and not starts with scheme
+ if (!preg_match('~^(/|[a-z]+\:)~', $uri)) {
// URI is file-relative: rewrite depending on options
if (self::$_prependPath === null) {
$uri = self::rewriteRelative($uri, self::$_currentDir, self::$_docRoot, self::$_symlinks);
diff --git a/inc/lib/minify/Minify/Cache/File.php b/inc/lib/minify/Minify/Cache/File.php
index 3fa6b18f..c228eb2b 100755
--- a/inc/lib/minify/Minify/Cache/File.php
+++ b/inc/lib/minify/Minify/Cache/File.php
@@ -98,6 +98,9 @@ class Minify_Cache_File {
{
if ($this->_locking) {
$fp = fopen($this->_path . '/' . $id, 'rb');
+ if (!$fp) {
+ return false;
+ }
flock($fp, LOCK_SH);
$ret = stream_get_contents($fp);
flock($fp, LOCK_UN);
@@ -186,7 +189,6 @@ class Minify_Cache_File {
*/
protected function _log($msg)
{
- require_once 'Minify/Logger.php';
Minify_Logger::log($msg);
}
diff --git a/inc/lib/minify/Minify/Controller/Base.php b/inc/lib/minify/Minify/Controller/Base.php
index 240b5449..5a863290 100755
--- a/inc/lib/minify/Minify/Controller/Base.php
+++ b/inc/lib/minify/Minify/Controller/Base.php
@@ -78,33 +78,6 @@ abstract class Minify_Controller_Base {
return $ret;
}
- /**
- * Load any code necessary to execute the given minifier callback.
- *
- * The controller is responsible for loading minification code on demand
- * via this method. This built-in function will only load classes for
- * static method callbacks where the class isn't already defined. It uses
- * the PEAR convention, so, given array('Jimmy_Minifier', 'minCss'), this
- * function will include 'Jimmy/Minifier.php'.
- *
- * If you need code loaded on demand and this doesn't suit you, you'll need
- * to override this function in your subclass.
- * @see Minify_Controller_Page::loadMinifier()
- *
- * @param callback $minifierCallback callback of minifier function
- *
- * @return null
- */
- public function loadMinifier($minifierCallback)
- {
- if (is_array($minifierCallback)
- && is_string($minifierCallback[0])
- && !class_exists($minifierCallback[0], false)) {
-
- require str_replace('_', '/', $minifierCallback[0]) . '.php';
- }
- }
-
/**
* Is a user-given file within an allowable directory, existing,
* and having an extension js/css/html/txt ?
@@ -244,7 +217,6 @@ abstract class Minify_Controller_Base {
* @return null
*/
public function log($msg) {
- require_once 'Minify/Logger.php';
Minify_Logger::log($msg);
}
}
diff --git a/inc/lib/minify/Minify/Controller/Files.php b/inc/lib/minify/Minify/Controller/Files.php
index 83f028ad..f084cd07 100755
--- a/inc/lib/minify/Minify/Controller/Files.php
+++ b/inc/lib/minify/Minify/Controller/Files.php
@@ -4,8 +4,6 @@
* @package Minify
*/
-require_once 'Minify/Controller/Base.php';
-
/**
* Controller class for minifying a set of files
*
diff --git a/inc/lib/minify/Minify/Controller/Groups.php b/inc/lib/minify/Minify/Controller/Groups.php
index 2d4e43b2..c4c25db1 100755
--- a/inc/lib/minify/Minify/Controller/Groups.php
+++ b/inc/lib/minify/Minify/Controller/Groups.php
@@ -4,8 +4,6 @@
* @package Minify
*/
-require_once 'Minify/Controller/Base.php';
-
/**
* Controller class for serving predetermined groups of minimized sets, selected
* by PATH_INFO
diff --git a/inc/lib/minify/Minify/Controller/MinApp.php b/inc/lib/minify/Minify/Controller/MinApp.php
index d47c60d9..6943ee6b 100755
--- a/inc/lib/minify/Minify/Controller/MinApp.php
+++ b/inc/lib/minify/Minify/Controller/MinApp.php
@@ -4,8 +4,6 @@
* @package Minify
*/
-require_once 'Minify/Controller/Base.php';
-
/**
* Controller class for requests to /min/index.php
*
@@ -22,6 +20,13 @@ class Minify_Controller_MinApp extends Minify_Controller_Base {
* @return array Minify options
*/
public function setupSources($options) {
+ // PHP insecure by default: realpath() and other FS functions can't handle null bytes.
+ foreach (array('g', 'b', 'f') as $key) {
+ if (isset($_GET[$key])) {
+ $_GET[$key] = str_replace("\x00", '', (string)$_GET[$key]);
+ }
+ }
+
// filter controller options
$cOptions = array_merge(
array(
@@ -36,7 +41,6 @@ class Minify_Controller_MinApp extends Minify_Controller_Base {
$sources = array();
$this->selectionId = '';
$firstMissingResource = null;
-
if (isset($_GET['g'])) {
// add group(s)
$this->selectionId .= 'g=' . $_GET['g'];
@@ -195,9 +199,12 @@ class Minify_Controller_MinApp extends Minify_Controller_Base {
protected function _getFileSource($file, $cOptions)
{
$spec['filepath'] = $file;
- if ($cOptions['noMinPattern']
- && preg_match($cOptions['noMinPattern'], basename($file))) {
- $spec['minifier'] = '';
+ if ($cOptions['noMinPattern'] && preg_match($cOptions['noMinPattern'], basename($file))) {
+ if (preg_match('~\.css$~i', $file)) {
+ $spec['minifyOptions']['compress'] = false;
+ } else {
+ $spec['minifier'] = '';
+ }
}
return new Minify_Source($spec);
}
diff --git a/inc/lib/minify/Minify/Controller/Page.php b/inc/lib/minify/Minify/Controller/Page.php
index de471e12..1095fb46 100755
--- a/inc/lib/minify/Minify/Controller/Page.php
+++ b/inc/lib/minify/Minify/Controller/Page.php
@@ -4,8 +4,6 @@
* @package Minify
*/
-require_once 'Minify/Controller/Base.php';
-
/**
* Controller class for serving a single HTML page
*
@@ -59,7 +57,6 @@ class Minify_Controller_Page extends Minify_Controller_Base {
'cssMinifier' => array('Minify_CSS', 'minify')
,'jsMinifier' => array('JSMin', 'minify')
);
- $this->_loadCssJsMinifiers = true;
unset($options['minifyAll']);
}
$this->sources[] = new Minify_Source($sourceSpec);
@@ -67,21 +64,5 @@ class Minify_Controller_Page extends Minify_Controller_Base {
$options['contentType'] = Minify::TYPE_HTML;
return $options;
}
-
- protected $_loadCssJsMinifiers = false;
-
- /**
- * @see Minify_Controller_Base::loadMinifier()
- */
- public function loadMinifier($minifierCallback)
- {
- if ($this->_loadCssJsMinifiers) {
- // Minify will not call for these so we must manually load
- // them when Minify/HTML.php is called for.
- require_once 'Minify/CSS.php';
- require_once 'JSMin.php';
- }
- parent::loadMinifier($minifierCallback); // load Minify/HTML.php
- }
}
diff --git a/inc/lib/minify/Minify/Controller/Version1.php b/inc/lib/minify/Minify/Controller/Version1.php
index 5279d36d..91fcf614 100755
--- a/inc/lib/minify/Minify/Controller/Version1.php
+++ b/inc/lib/minify/Minify/Controller/Version1.php
@@ -4,8 +4,6 @@
* @package Minify
*/
-require_once 'Minify/Controller/Base.php';
-
/**
* Controller class for emulating version 1 of minify.php (mostly a proof-of-concept)
*
@@ -26,6 +24,11 @@ class Minify_Controller_Version1 extends Minify_Controller_Base {
*
*/
public function setupSources($options) {
+ // PHP insecure by default: realpath() and other FS functions can't handle null bytes.
+ if (isset($_GET['files'])) {
+ $_GET['files'] = str_replace("\x00", '', (string)$_GET['files']);
+ }
+
self::_setupDefines();
if (MINIFY_USE_CACHE) {
$cacheDir = defined('MINIFY_CACHE_DIR')
@@ -51,8 +54,7 @@ class Minify_Controller_Version1 extends Minify_Controller_Base {
) {
return $options;
}
- $extension = $m[1];
-
+
$files = explode(',', $_GET['files']);
if (count($files) > MINIFY_MAX_FILES) {
return $options;
@@ -63,7 +65,6 @@ class Minify_Controller_Version1 extends Minify_Controller_Base {
. DIRECTORY_SEPARATOR;
$prependAbsPaths = $_SERVER['DOCUMENT_ROOT'];
- $sources = array();
$goodFiles = array();
$hasBadSource = false;
diff --git a/inc/lib/minify/Minify/HTML.php b/inc/lib/minify/Minify/HTML.php
index e9453ffb..40f73076 100755
--- a/inc/lib/minify/Minify/HTML.php
+++ b/inc/lib/minify/Minify/HTML.php
@@ -1,22 +1,26 @@
*/
class Minify_HTML {
+ /**
+ * @var boolean
+ */
+ protected $_jsCleanComments = true;
/**
* "Minify" an HTML page
@@ -27,21 +31,21 @@ class Minify_HTML {
*
* 'cssMinifier' : (optional) callback function to process content of STYLE
* elements.
- *
+ *
* 'jsMinifier' : (optional) callback function to process content of SCRIPT
* elements. Note: the type attribute is ignored.
- *
+ *
* 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
* unset, minify will sniff for an XHTML doctype.
- *
+ *
* @return string
*/
public static function minify($html, $options = array()) {
- $min = new Minify_HTML($html, $options);
+ $min = new self($html, $options);
return $min->process();
}
-
-
+
+
/**
* Create a minifier object
*
@@ -51,14 +55,14 @@ class Minify_HTML {
*
* 'cssMinifier' : (optional) callback function to process content of STYLE
* elements.
- *
+ *
* 'jsMinifier' : (optional) callback function to process content of SCRIPT
* elements. Note: the type attribute is ignored.
- *
+ *
+ * 'jsCleanComments' : (optional) whether to remove HTML comments beginning and end of script block
+ *
* 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
* unset, minify will sniff for an XHTML doctype.
- *
- * @return null
*/
public function __construct($html, $options = array())
{
@@ -72,9 +76,12 @@ class Minify_HTML {
if (isset($options['jsMinifier'])) {
$this->_jsMinifier = $options['jsMinifier'];
}
+ if (isset($options['jsCleanComments'])) {
+ $this->_jsCleanComments = (bool)$options['jsCleanComments'];
+ }
}
-
-
+
+
/**
* Minify the markeup given in the constructor
*
@@ -124,7 +131,7 @@ class Minify_HTML {
// remove ws around block/undisplayed elements
$this->_html = preg_replace('/\\s+(<\\/?(?:area|base(?:font)?|blockquote|body'
- .'|caption|center|cite|col(?:group)?|dd|dir|div|dl|dt|fieldset|form'
+ .'|caption|center|col(?:group)?|dd|dir|div|dl|dt|fieldset|form'
.'|frame(?:set)?|h[1-6]|head|hr|html|legend|li|link|map|menu|meta'
.'|ol|opt(?:group|ion)|p|param|t(?:able|body|head|d|h||r|foot|itle)'
.'|ul)\\b[^>]*>)/i', '$1', $this->_html);
@@ -213,17 +220,19 @@ class Minify_HTML {
// whitespace surrounding? preserve at least one space
$ws1 = ($m[1] === '') ? '' : ' ';
$ws2 = ($m[4] === '') ? '' : ' ';
-
+
// remove HTML comments (and ending "//" if present)
- $js = preg_replace('/(?:^\\s*\\s*$)/', '', $js);
-
+ if ($this->_jsCleanComments) {
+ $js = preg_replace('/(?:^\\s*\\s*$)/', '', $js);
+ }
+
// remove CDATA section markers
$js = $this->_removeCdata($js);
// minify
$minifier = $this->_jsMinifier
? $this->_jsMinifier
- : 'trim';
+ : 'trim';
$js = call_user_func($minifier, $js);
return $this->_reservePlace($this->_needsCdata($js)
diff --git a/inc/lib/minify/Minify/HTML/Helper.php b/inc/lib/minify/Minify/HTML/Helper.php
index 807fdc9c..f92ab854 100755
--- a/inc/lib/minify/Minify/HTML/Helper.php
+++ b/inc/lib/minify/Minify/HTML/Helper.php
@@ -15,10 +15,10 @@ class Minify_HTML_Helper {
public $minAppUri = '/min';
public $groupsConfigFile = '';
- /*
+ /**
* Get an HTML-escaped Minify URI for a group or set of files
*
- * @param mixed $keyOrFiles a group key or array of filepaths/URIs
+ * @param string|array $keyOrFiles a group key or array of filepaths/URIs
* @param array $opts options:
* 'farExpires' : (default true) append a modified timestamp for cache revving
* 'debug' : (default false) append debug flag
@@ -51,8 +51,12 @@ class Minify_HTML_Helper {
return htmlspecialchars($uri, ENT_QUOTES, $opts['charset']);
}
- /*
+ /**
* Get non-HTML-escaped URI to minify the specified files
+ *
+ * @param bool $farExpires
+ * @param bool $debug
+ * @return string
*/
public function getRawUri($farExpires = true, $debug = false)
{
@@ -74,6 +78,12 @@ class Minify_HTML_Helper {
return $path;
}
+ /**
+ * Set the files that will comprise the URI we're building
+ *
+ * @param array $files
+ * @param bool $checkLastModified
+ */
public function setFiles($files, $checkLastModified = true)
{
$this->_groupKey = null;
@@ -94,6 +104,12 @@ class Minify_HTML_Helper {
$this->_filePaths = $files;
}
+ /**
+ * Set the group of files that will comprise the URI we're building
+ *
+ * @param string $key
+ * @param bool $checkLastModified
+ */
public function setGroup($key, $checkLastModified = true)
{
$this->_groupKey = $key;
@@ -103,13 +119,23 @@ class Minify_HTML_Helper {
}
if (is_file($this->groupsConfigFile)) {
$gc = (require $this->groupsConfigFile);
- if (isset($gc[$key])) {
- $this->_lastModified = self::getLastModified($gc[$key]);
+ $keys = explode(',', $key);
+ foreach ($keys as $key) {
+ if (isset($gc[$key])) {
+ $this->_lastModified = self::getLastModified($gc[$key], $this->_lastModified);
+ }
}
}
}
}
-
+
+ /**
+ * Get the max(lastModified) of all files
+ *
+ * @param array|string $sources
+ * @param int $lastModified
+ * @return int
+ */
public static function getLastModified($sources, $lastModified = 0)
{
$max = $lastModified;
@@ -142,13 +168,19 @@ class Minify_HTML_Helper {
* @return mixed a common char or '' if any do not match
*/
protected static function _getCommonCharAtPos($arr, $pos) {
- $l = count($arr);
+ if (!isset($arr[0][$pos])) {
+ return '';
+ }
$c = $arr[0][$pos];
- if ($c === '' || $l === 1)
+ $l = count($arr);
+ if ($l === 1) {
return $c;
- for ($i = 1; $i < $l; ++$i)
- if ($arr[$i][$pos] !== $c)
+ }
+ for ($i = 1; $i < $l; ++$i) {
+ if ($arr[$i][$pos] !== $c) {
return '';
+ }
+ }
return $c;
}
@@ -157,11 +189,11 @@ class Minify_HTML_Helper {
*
* @param array $paths root-relative URIs of files
* @param string $minRoot root-relative URI of the "min" application
+ * @return string
*/
protected static function _getShortestUri($paths, $minRoot = '/min/') {
$pos = 0;
$base = '';
- $c;
while (true) {
$c = self::_getCommonCharAtPos($paths, $pos);
if ($c === '') {
diff --git a/inc/lib/minify/Minify/JS/ClosureCompiler.php b/inc/lib/minify/Minify/JS/ClosureCompiler.php
index f4ed5bdb..e067d7c8 100755
--- a/inc/lib/minify/Minify/JS/ClosureCompiler.php
+++ b/inc/lib/minify/Minify/JS/ClosureCompiler.php
@@ -14,13 +14,68 @@
* @todo can use a stream wrapper to unit test this?
*/
class Minify_JS_ClosureCompiler {
- const URL = 'http://closure-compiler.appspot.com/compile';
/**
- * Minify Javascript code via HTTP request to the Closure Compiler API
+ * @var string The option key for the maximum POST byte size
+ */
+ const OPTION_MAX_BYTES = 'maxBytes';
+
+ /**
+ * @var string The option key for additional params. @see __construct
+ */
+ const OPTION_ADDITIONAL_OPTIONS = 'additionalParams';
+
+ /**
+ * @var string The option key for the fallback Minifier
+ */
+ const OPTION_FALLBACK_FUNCTION = 'fallbackFunc';
+
+ /**
+ * @var string The option key for the service URL
+ */
+ const OPTION_COMPILER_URL = 'compilerUrl';
+
+ /**
+ * @var int The default maximum POST byte size according to https://developers.google.com/closure/compiler/docs/api-ref
+ */
+ const DEFAULT_MAX_BYTES = 200000;
+
+ /**
+ * @var string[] $DEFAULT_OPTIONS The default options to pass to the compiler service
+ *
+ * @note This would be a constant if PHP allowed it
+ */
+ private static $DEFAULT_OPTIONS = array(
+ 'output_format' => 'text',
+ 'compilation_level' => 'SIMPLE_OPTIMIZATIONS'
+ );
+
+ /**
+ * @var string $url URL of compiler server. defaults to Google's
+ */
+ protected $serviceUrl = 'http://closure-compiler.appspot.com/compile';
+
+ /**
+ * @var int $maxBytes The maximum JS size that can be sent to the compiler server in bytes
+ */
+ protected $maxBytes = self::DEFAULT_MAX_BYTES;
+
+ /**
+ * @var string[] $additionalOptions Additional options to pass to the compiler service
+ */
+ protected $additionalOptions = array();
+
+ /**
+ * @var callable Function to minify JS if service fails. Default is JSMin
+ */
+ protected $fallbackMinifier = array('JSMin', 'minify');
+
+ /**
+ * Minify JavaScript code via HTTP request to a Closure Compiler API
*
* @param string $js input code
- * @param array $options unused at this point
+ * @param array $options Options passed to __construct(). @see __construct
+ *
* @return string
*/
public static function minify($js, array $options = array())
@@ -30,63 +85,101 @@ class Minify_JS_ClosureCompiler {
}
/**
+ * @param array $options Options with keys available below:
*
- * @param array $options
+ * fallbackFunc : (callable) function to minify if service unavailable. Default is JSMin.
*
- * fallbackFunc : default array($this, 'fallback');
+ * compilerUrl : (string) URL to closure compiler server
+ *
+ * maxBytes : (int) The maximum amount of bytes to be sent as js_code in the POST request.
+ * Defaults to 200000.
+ *
+ * additionalParams : (string[]) Additional parameters to pass to the compiler server. Can be anything named
+ * in https://developers.google.com/closure/compiler/docs/api-ref except for js_code and
+ * output_info
*/
public function __construct(array $options = array())
{
- $this->_fallbackFunc = isset($options['fallbackMinifier'])
- ? $options['fallbackMinifier']
- : array($this, '_fallback');
+ if (isset($options[self::OPTION_FALLBACK_FUNCTION])) {
+ $this->fallbackMinifier = $options[self::OPTION_FALLBACK_FUNCTION];
+ }
+ if (isset($options[self::OPTION_COMPILER_URL])) {
+ $this->serviceUrl = $options[self::OPTION_COMPILER_URL];
+ }
+ if (isset($options[self::OPTION_ADDITIONAL_OPTIONS]) && is_array($options[self::OPTION_ADDITIONAL_OPTIONS])) {
+ $this->additionalOptions = $options[self::OPTION_ADDITIONAL_OPTIONS];
+ }
+ if (isset($options[self::OPTION_MAX_BYTES])) {
+ $this->maxBytes = (int) $options[self::OPTION_MAX_BYTES];
+ }
}
+ /**
+ * Call the service to perform the minification
+ *
+ * @param string $js JavaScript code
+ * @return string
+ * @throws Minify_JS_ClosureCompiler_Exception
+ */
public function min($js)
{
- $postBody = $this->_buildPostBody($js);
- $bytes = (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2))
- ? mb_strlen($postBody, '8bit')
- : strlen($postBody);
- if ($bytes > 200000) {
- throw new Minify_JS_ClosureCompiler_Exception(
- 'POST content larger than 200000 bytes'
- );
+ $postBody = $this->buildPostBody($js);
+
+ if ($this->maxBytes > 0) {
+ $bytes = (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2))
+ ? mb_strlen($postBody, '8bit')
+ : strlen($postBody);
+ if ($bytes > $this->maxBytes) {
+ throw new Minify_JS_ClosureCompiler_Exception(
+ 'POST content larger than ' . $this->maxBytes . ' bytes'
+ );
+ }
}
- $response = $this->_getResponse($postBody);
+
+ $response = $this->getResponse($postBody);
+
if (preg_match('/^Error\(\d\d?\):/', $response)) {
- if (is_callable($this->_fallbackFunc)) {
+ if (is_callable($this->fallbackMinifier)) {
+ // use fallback
$response = "/* Received errors from Closure Compiler API:\n$response"
. "\n(Using fallback minifier)\n*/\n";
- $response .= call_user_func($this->_fallbackFunc, $js);
+ $response .= call_user_func($this->fallbackMinifier, $js);
} else {
throw new Minify_JS_ClosureCompiler_Exception($response);
}
}
+
if ($response === '') {
- $errors = $this->_getResponse($this->_buildPostBody($js, true));
+ $errors = $this->getResponse($this->buildPostBody($js, true));
throw new Minify_JS_ClosureCompiler_Exception($errors);
}
+
return $response;
}
-
- protected $_fallbackFunc = null;
- protected function _getResponse($postBody)
+ /**
+ * Get the response for a given POST body
+ *
+ * @param string $postBody
+ * @return string
+ * @throws Minify_JS_ClosureCompiler_Exception
+ */
+ protected function getResponse($postBody)
{
$allowUrlFopen = preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen'));
+
if ($allowUrlFopen) {
- $contents = file_get_contents(self::URL, false, stream_context_create(array(
+ $contents = file_get_contents($this->serviceUrl, false, stream_context_create(array(
'http' => array(
'method' => 'POST',
- 'header' => 'Content-type: application/x-www-form-urlencoded',
+ 'header' => "Content-type: application/x-www-form-urlencoded\r\nConnection: close\r\n",
'content' => $postBody,
'max_redirects' => 0,
'timeout' => 15,
)
)));
} elseif (defined('CURLOPT_POST')) {
- $ch = curl_init(self::URL);
+ $ch = curl_init($this->serviceUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/x-www-form-urlencoded'));
@@ -100,33 +193,37 @@ class Minify_JS_ClosureCompiler {
"Could not make HTTP request: allow_url_open is false and cURL not available"
);
}
+
if (false === $contents) {
throw new Minify_JS_ClosureCompiler_Exception(
"No HTTP response from server"
);
}
+
return trim($contents);
}
- protected function _buildPostBody($js, $returnErrors = false)
- {
- return http_build_query(array(
- 'js_code' => $js,
- 'output_info' => ($returnErrors ? 'errors' : 'compiled_code'),
- 'output_format' => 'text',
- 'compilation_level' => 'SIMPLE_OPTIMIZATIONS'
- ), null, '&');
- }
-
/**
- * Default fallback function if CC API fails
- * @param string $js
+ * Build a POST request body
+ *
+ * @param string $js JavaScript code
+ * @param bool $returnErrors
* @return string
*/
- protected function _fallback($js)
+ protected function buildPostBody($js, $returnErrors = false)
{
- require_once 'JSMin.php';
- return JSMin::minify($js);
+ return http_build_query(
+ array_merge(
+ self::$DEFAULT_OPTIONS,
+ $this->additionalOptions,
+ array(
+ 'js_code' => $js,
+ 'output_info' => ($returnErrors ? 'errors' : 'compiled_code')
+ )
+ ),
+ null,
+ '&'
+ );
}
}
diff --git a/inc/lib/minify/Minify/Lines.php b/inc/lib/minify/Minify/Lines.php
index ca8afa1b..e999a6c2 100755
--- a/inc/lib/minify/Minify/Lines.php
+++ b/inc/lib/minify/Minify/Lines.php
@@ -55,7 +55,11 @@ class Minify_Lines {
$newLines = array();
while (null !== ($line = array_shift($lines))) {
if (('' !== $id) && (0 == $i % 50)) {
- array_push($newLines, '', "/* {$id} */", '');
+ if ($inComment) {
+ array_push($newLines, '', "/* {$id} *|", '');
+ } else {
+ array_push($newLines, '', "/* {$id} */", '');
+ }
}
++$i;
$newLines[] = self::_addNote($line, $i, $inComment, $padTo);
@@ -65,7 +69,6 @@ class Minify_Lines {
// check for desired URI rewriting
if (isset($options['currentDir'])) {
- require_once 'Minify/CSS/UriRewriter.php';
Minify_CSS_UriRewriter::$debugText = '';
$content = Minify_CSS_UriRewriter::rewrite(
$content
@@ -93,6 +96,9 @@ class Minify_Lines {
*/
private static function _eolInComment($line, $inComment)
{
+ // crude way to avoid things like // */
+ $line = preg_replace('~//.*?(\\*/|/\\*).*~', '', $line);
+
while (strlen($line)) {
$search = $inComment
? '*/'
diff --git a/inc/lib/minify/Minify/YUICompressor.php b/inc/lib/minify/Minify/YUICompressor.php
index c5bd8a1e..5762e890 100755
--- a/inc/lib/minify/Minify/YUICompressor.php
+++ b/inc/lib/minify/Minify/YUICompressor.php
@@ -13,14 +13,17 @@
* Java environment.
*
*
- * Minify_YUICompressor::$jarFile = '/path/to/yuicompressor-2.3.5.jar';
+ * Minify_YUICompressor::$jarFile = '/path/to/yuicompressor-2.4.6.jar';
* Minify_YUICompressor::$tempDir = '/tmp';
* $code = Minify_YUICompressor::minifyJs(
* $code
* ,array('nomunge' => true, 'line-break' => 1000)
* );
*
- *
+ *
+ * Note: In case you run out stack (default is 512k), you may increase stack size in $options:
+ * array('stack-size' => '2048k')
+ *
* @todo unit tests, $options docs
*
* @package Minify
@@ -87,7 +90,7 @@ class Minify_YUICompressor {
{
self::_prepare();
if (! ($tmpFile = tempnam(self::$tempDir, 'yuic_'))) {
- throw new Exception('Minify_YUICompressor : could not create temp file.');
+ throw new Exception('Minify_YUICompressor : could not create temp file in "'.self::$tempDir.'".');
}
file_put_contents($tmpFile, $content);
exec(self::_getCmd($options, $type, $tmpFile), $output, $result_code);
@@ -108,10 +111,15 @@ class Minify_YUICompressor {
,'nomunge' => false
,'preserve-semi' => false
,'disable-optimizations' => false
+ ,'stack-size' => ''
)
,$userOptions
);
- $cmd = self::$javaExecutable . ' -jar ' . escapeshellarg(self::$jarFile)
+ $cmd = self::$javaExecutable
+ . (!empty($o['stack-size'])
+ ? ' -Xss' . $o['stack-size']
+ : '')
+ . ' -jar ' . escapeshellarg(self::$jarFile)
. " --type {$type}"
. (preg_match('/^[\\da-zA-Z0-9\\-]+$/', $o['charset'])
? " --charset {$o['charset']}"
@@ -134,8 +142,8 @@ class Minify_YUICompressor {
if (! is_file(self::$jarFile)) {
throw new Exception('Minify_YUICompressor : $jarFile('.self::$jarFile.') is not a valid file.');
}
- if (! is_executable(self::$jarFile)) {
- throw new Exception('Minify_YUICompressor : $jarFile('.self::$jarFile.') is not executable.');
+ if (! is_readable(self::$jarFile)) {
+ throw new Exception('Minify_YUICompressor : $jarFile('.self::$jarFile.') is not readable.');
}
if (! is_dir(self::$tempDir)) {
throw new Exception('Minify_YUICompressor : $tempDir('.self::$tempDir.') is not a valid direcotry.');
diff --git a/inc/lib/minify/MrClay/Cli.php b/inc/lib/minify/MrClay/Cli.php
index ac201582..9aa8e06f 100755
--- a/inc/lib/minify/MrClay/Cli.php
+++ b/inc/lib/minify/MrClay/Cli.php
@@ -2,6 +2,9 @@
namespace MrClay;
+use MrClay\Cli\Arg;
+use InvalidArgumentException;
+
/**
* Forms a front controller for a console app, handling and validating arguments (options)
*
@@ -51,7 +54,7 @@ class Cli {
public $isHelpRequest = false;
/**
- * @var array of Cli\Arg
+ * @var Arg[]
*/
protected $_args = array();
@@ -80,8 +83,8 @@ class Cli {
}
/**
- * @param Cli\Arg|string $letter
- * @return Cli\Arg
+ * @param Arg|string $letter
+ * @return Arg
*/
public function addOptionalArg($letter)
{
@@ -89,8 +92,8 @@ class Cli {
}
/**
- * @param Cli\Arg|string $letter
- * @return Cli\Arg
+ * @param Arg|string $letter
+ * @return Arg
*/
public function addRequiredArg($letter)
{
@@ -100,17 +103,17 @@ class Cli {
/**
* @param string $letter
* @param bool $required
- * @param Cli\Arg|null $arg
- * @return Cli\Arg
- * @throws \InvalidArgumentException
+ * @param Arg|null $arg
+ * @return Arg
+ * @throws InvalidArgumentException
*/
- public function addArgument($letter, $required, Cli\Arg $arg = null)
+ public function addArgument($letter, $required, Arg $arg = null)
{
if (! preg_match('/^[a-zA-Z]$/', $letter)) {
- throw new \InvalidArgumentException('$letter must be in [a-zA-z]');
+ throw new InvalidArgumentException('$letter must be in [a-zA-Z]');
}
if (! $arg) {
- $arg = new Cli\Arg($required);
+ $arg = new Arg($required);
}
$this->_args[$letter] = $arg;
return $arg;
@@ -118,7 +121,7 @@ class Cli {
/**
* @param string $letter
- * @return Cli\Arg|null
+ * @return Arg|null
*/
public function getArgument($letter)
{
@@ -143,7 +146,7 @@ class Cli {
$lettersUsed = '';
foreach ($this->_args as $letter => $arg) {
- /* @var Cli\Arg $arg */
+ /* @var Arg $arg */
$options .= $letter;
$lettersUsed .= $letter;
@@ -159,7 +162,7 @@ class Cli {
$this->debug['getopt_return'] = $o;
foreach ($this->_args as $letter => $arg) {
- /* @var Cli\Arg $arg */
+ /* @var Arg $arg */
$this->values[$letter] = false;
if (isset($o[$letter])) {
if (is_bool($o[$letter])) {
@@ -295,7 +298,7 @@ class Cli {
{
$r = "\n";
foreach ($this->_args as $letter => $arg) {
- /* @var Cli\Arg $arg */
+ /* @var Arg $arg */
$desc = $arg->getDescription();
$flag = " -$letter ";
if ($arg->mayHaveValue) {
diff --git a/inc/lib/minify/MrClay/Cli/Arg.php b/inc/lib/minify/MrClay/Cli/Arg.php
index 81146a7f..5fa59327 100755
--- a/inc/lib/minify/MrClay/Cli/Arg.php
+++ b/inc/lib/minify/MrClay/Cli/Arg.php
@@ -2,6 +2,8 @@
namespace MrClay\Cli;
+use BadMethodCallException;
+
/**
* An argument for a CLI app. This specifies the argument, what values it expects and
* how it's treated during validation.
@@ -150,7 +152,7 @@ class Arg {
* @param string $name
* @param array $args
* @return Arg
- * @throws \BadMethodCallException
+ * @throws BadMethodCallException
*/
public function __call($name, array $args = array())
{
@@ -160,7 +162,7 @@ class Arg {
$this->spec['mustHaveValue'] = true;
}
} else {
- throw new \BadMethodCallException('Method does not exist');
+ throw new BadMethodCallException('Method does not exist');
}
return $this;
}
diff --git a/inc/lib/webm/posthandler.php b/inc/lib/webm/posthandler.php
index 50adbe80..1f831f5a 100644
--- a/inc/lib/webm/posthandler.php
+++ b/inc/lib/webm/posthandler.php
@@ -5,43 +5,43 @@
function postHandler($post) {
global $board, $config;
- if ($post->has_file && $post->extension == 'webm') {
+ if ($post->has_file) foreach ($post->files as &$file) if ($file->extension == 'webm') {
require_once dirname(__FILE__) . '/videodata.php';
- $videoDetails = videoData($post->file_path);
+ $videoDetails = videoData($file->file_path);
if (!isset($videoDetails['container']) || $videoDetails['container'] != 'webm') return "not a WebM file";
// Set thumbnail
- $thumbName = $board['dir'] . $config['dir']['thumb'] . $post->file_id . '.webm';
+ $thumbName = $board['dir'] . $config['dir']['thumb'] . $file->file_id . '.webm';
if ($config['spoiler_images'] && isset($_POST['spoiler'])) {
// Use spoiler thumbnail
- $post->thumb = 'spoiler';
+ $file->thumb = 'spoiler';
$size = @getimagesize($config['spoiler_image']);
- $post->thumbwidth = $size[0];
- $post->thumbheight = $size[1];
+ $file->thumbwidth = $size[0];
+ $file->thumbheight = $size[1];
} elseif (isset($videoDetails['frame']) && $thumbFile = fopen($thumbName, 'wb')) {
// Use single frame from video as pseudo-thumbnail
fwrite($thumbFile, $videoDetails['frame']);
fclose($thumbFile);
- $post->thumb = $post->file_id . '.webm';
+ $file->thumb = $file->file_id . '.webm';
} else {
// Fall back to file thumbnail
- $post->thumb = 'file';
+ $file->thumb = 'file';
}
unset($videoDetails['frame']);
// Set width and height
if (isset($videoDetails['width']) && isset($videoDetails['height'])) {
- $post->width = $videoDetails['width'];
- $post->height = $videoDetails['height'];
- if ($post->thumb != 'file' && $post->thumb != 'spoiler') {
+ $file->width = $videoDetails['width'];
+ $file->height = $videoDetails['height'];
+ if ($file->thumb != 'file' && $file->thumb != 'spoiler') {
$thumbMaxWidth = $post->op ? $config['thumb_op_width'] : $config['thumb_width'];
$thumbMaxHeight = $post->op ? $config['thumb_op_height'] : $config['thumb_height'];
if ($videoDetails['width'] > $thumbMaxWidth || $videoDetails['height'] > $thumbMaxHeight) {
- $post->thumbwidth = min($thumbMaxWidth, intval(round($videoDetails['width'] * $thumbMaxHeight / $videoDetails['height'])));
- $post->thumbheight = min($thumbMaxHeight, intval(round($videoDetails['height'] * $thumbMaxWidth / $videoDetails['width'])));
+ $file->thumbwidth = min($thumbMaxWidth, intval(round($videoDetails['width'] * $thumbMaxHeight / $videoDetails['height'])));
+ $file->thumbheight = min($thumbMaxHeight, intval(round($videoDetails['height'] * $thumbMaxWidth / $videoDetails['width'])));
} else {
- $post->thumbwidth = $videoDetails['width'];
- $post->thumbheight = $videoDetails['height'];
+ $file->thumbwidth = $videoDetails['width'];
+ $file->thumbheight = $videoDetails['height'];
}
}
}
diff --git a/inc/locale/eo/LC_MESSAGES/javascript.js b/inc/locale/eo/LC_MESSAGES/javascript.js
index 4f759a3f..31120d5a 100644
--- a/inc/locale/eo/LC_MESSAGES/javascript.js
+++ b/inc/locale/eo/LC_MESSAGES/javascript.js
@@ -1 +1 @@
-l10n = {"Style: ":"Stilo:","File":"Dosiero","hide":"ka\u015di","show":"malka\u015di","Show locked threads":"Vidigi fermitajn fadenojn","Hide locked threads":"Ka\u015di fermitajn fadenojn","URL":"URL","Select":"Elekti","Remote":"Dista","Embed":"Enmeti","Oekaki":"Oekaki","hidden":"ka\u015dita","Show images":"Vidigi bildojn","Hide images":"Ka\u015di bildojn","Password":"Pasvorto","Delete file only":"Forvi\u015di nur la dosieron","Delete":"Forvi\u015di","Reason":"Kialo","Report":"Raporti","Click reply to view.":"Klaku respondi por vidi.","Click to expand":"Klaku por grandigi","Hide expanded replies":"Ka\u015di grandigitajn respondojn","Brush size":"Penika grandeco","Set text":"Fiksi tekston","Clear":"Vi\u015di","Save":"Konservi","Load":"\u015car\u011di","Toggle eraser":"Baskuli vi\u015dilon","Get color":"Preni koloron","Fill":"Plenumi","Use oekaki instead of file?":"\u0108u uzi oekaki-on anstata\u016d dosieron?","Edit in oekaki":"Redakti en oekaki","Enter some text":"Entajpu tekston","Enter font or leave empty":"Enigu tiparon a\u016d lasu malplena","Forced anonymity":"Perforta anonimeco","enabled":"ebligita","disabled":"malebligita","Sun":"Dim","Mon":"Lun","Tue":"Mar","Wed":"Mer","Thu":"\u0134a\u016d","Fri":"Ven","Sat":"Sab","Catalog":"Katalogo","Submit":"Sendi","Quick reply":"Rapida respondo","Posting mode: Replying to >>{0}<\/small>":"Afi\u015dtipo: Respondo al >>{0}<\/small>","Return":"Reiri","Expand all images":"Grandigi \u0109iujn bildojn","Hello!":"Saluton!","{0} users":"{0} uzantoj","(hide threads from this board)":"(ka\u015di fadenojn de \u0109i tiu tabulo)","(show threads from this board)":"(vidigi fadenojn de \u0109i tiu tabulo)","No more threads to display":"Neniom plu fadenoj por vidigi","Loading...":"\u015car\u011danta...","Save as original filename":"Konservi kiel originala dosiernomo","Reported post(s).":"Raportita(j) afi\u015do(j)","An unknown error occured!":"Nekonata eraro okazis!","Something went wrong... An unknown error occured!":"Io mal\u011dustis...Nekonata eraro okazis!","Working...":"Laborado...","Posting... (#%)":"Afi\u015dando... (#%)","Posted...":"Afi\u015dita...","An unknown error occured when posting!":"Nekonata eraro okazis dum afi\u015dando!","Posting...":"Afi\u015dando...","Upload URL":"Al\u015duti URL","Spoiler Image":"Ka\u015di Bildon","Comment":"Komento","Quick Reply":"Rapida Respondo","Stop watching this thread":"\u0108esi de gvati \u0109i tiun fadenon","Watch this thread":"Gvati \u0109i tiun fadenon","Unpin this board":"Malfiksi \u0109i tiun tabulon","Pin this board":"Fiksi \u0109i tiun tabulon","Stop watching this board":"\u0108esi de gvati \u0109i tiun tabulon","Watch this board":"Gvati \u0109i tiun tabulon","Click on any image on this site to load it into oekaki applet":"Klaku je iu ajn bildo en \u0109i tiu retejo por \u015dar\u011digi \u011din al aplika\u0135o oekaki","Sunday":"Diman\u0109o","Monday":"Lundo","Tuesday":"Mardo","Wednesday":"Merkredo","Thursday":"\u0134a\u016ddo","Friday":"Vendredo","Saturday":"Sabato","January":"Januaro","February":"Februaro","March":"Marto","April":"Aprilo","May":"Majo","June":"Junio","July":"Julio","August":"A\u016dgusto","September":"Septembro","October":"Oktobro","November":"Novembro","December":"Decembro","Jan":"Jan","Feb":"Feb","Mar":"Mar","Apr":"Apr","Jun":"Jun","Jul":"Jul","Aug":"A\u016dg","Sep":"Sep","Oct":"Okt","Nov":"Nov","Dec":"Dec","AM":"AM","PM":"PM","am":"am","pm":"pm","Your browser does not support HTML5 video.":"Via retumilo ne subtenas HTML5 videon.","[play once]":"[ludi unufoje]","[loop]":"[ludi da\u016dre]","WebM Settings":"WebM Opcioj","Expand videos inline":"Grandigi videojn interne","Play videos on hover":"Ludi videojn en \u015dvebi","Default volume":"Defa\u016dlta la\u016dteco","Tree view":"Arba vido"};
\ No newline at end of file
+l10n = {"Style: ":"Stilo:","File":"Dosiero","hide":"ka\u015di","show":"malka\u015di","Show locked threads":"Vidigi fermitajn fadenojn","Hide locked threads":"Ka\u015di fermitajn fadenojn","URL":"URL","Select":"Elekti","Remote":"Dista","Embed":"Enmeti","Oekaki":"Oekaki","hidden":"ka\u015dita","Show images":"Vidigi bildojn","Hide images":"Ka\u015di bildojn","Password":"Pasvorto","Delete file only":"Forvi\u015di nur la dosieron","Delete":"Forvi\u015di","Reason":"Kialo","Report":"Raporti","Click reply to view.":"Klaku je respondi por vidi.","Click to expand":"Klaku por grandigi","Hide expanded replies":"Ka\u015di grandigitajn respondojn","Brush size":"Penika grandeco","Set text":"Fiksi tekston","Clear":"Vi\u015di","Save":"Konservi","Load":"\u015car\u011di","Toggle eraser":"Baskuli vi\u015dilon","Get color":"Preni koloron","Fill":"Plenumi","Use oekaki instead of file?":"\u0108u uzi oekaki-on anstata\u016d dosieron?","Edit in oekaki":"Redakti en oekaki","Enter some text":"Entajpu tekston","Enter font or leave empty":"Enigu tiparon a\u016d lasu malplena","Forced anonymity":"Perforta anonimeco","enabled":"ebligita","disabled":"malebligita","Sun":"Dim","Mon":"Lun","Tue":"Mar","Wed":"Mer","Thu":"\u0134a\u016d","Fri":"Ven","Sat":"Sab","Catalog":"Katalogo","Submit":"Sendi","Quick reply":"Rapida respondo","Posting mode: Replying to >>{0}<\/small>":"Afi\u015dtipo: Respondo al >>{0}<\/small>","Return":"Reiri","Expand all images":"Grandigi \u0109iujn bildojn","Hello!":"Saluton!","{0} users":"{0} uzantoj","(hide threads from this board)":"(ka\u015di fadenojn de \u0109i tiu tabulo)","(show threads from this board)":"(vidigi fadenojn de \u0109i tiu tabulo)","No more threads to display":"Neniom plu fadenoj por vidigi","Loading...":"\u015car\u011danta...","Save as original filename":"Konservi kiel originala dosiernomo","Reported post(s).":"Raportita(j) afi\u015do(j)","An unknown error occured!":"Nekonata eraro okazis!","Something went wrong... An unknown error occured!":"Io mal\u011dustis...Nekonata eraro okazis!","Working...":"Laborado...","Posting... (#%)":"Afi\u015dando... (#%)","Posted...":"Afi\u015dita...","An unknown error occured when posting!":"Nekonata eraro okazis dum afi\u015dando!","Posting...":"Afi\u015dando...","Upload URL":"Al\u015duti URL","Spoiler Image":"Ka\u015di Bildon","Comment":"Komento","Quick Reply":"Rapida Respondo","Stop watching this thread":"\u0108esi de gvati \u0109i tiun fadenon","Watch this thread":"Gvati \u0109i tiun fadenon","Unpin this board":"Malfiksi \u0109i tiun tabulon","Pin this board":"Fiksi \u0109i tiun tabulon","Stop watching this board":"\u0108esi de gvati \u0109i tiun tabulon","Watch this board":"Gvati \u0109i tiun tabulon","Click on any image on this site to load it into oekaki applet":"Klaku je iu ajn bildo en \u0109i tiu retejo por \u015dar\u011digi \u011din al aplika\u0135o oekaki","Sunday":"Diman\u0109o","Monday":"Lundo","Tuesday":"Mardo","Wednesday":"Merkredo","Thursday":"\u0134a\u016ddo","Friday":"Vendredo","Saturday":"Sabato","January":"Januaro","February":"Februaro","March":"Marto","April":"Aprilo","May":"Majo","June":"Junio","July":"Julio","August":"A\u016dgusto","September":"Septembro","October":"Oktobro","November":"Novembro","December":"Decembro","Jan":"Jan","Feb":"Feb","Mar":"Mar","Apr":"Apr","Jun":"Jun","Jul":"Jul","Aug":"A\u016dg","Sep":"Sep","Oct":"Okt","Nov":"Nov","Dec":"Dec","AM":"AM","PM":"PM","am":"am","pm":"pm","Your browser does not support HTML5 video.":"Via retumilo ne subtenas HTML5 videon.","[play once]":"[ludi unufoje]","[loop]":"[ludi da\u016dre]","WebM Settings":"WebM Opcioj","Expand videos inline":"Grandigi videojn interne","Play videos on hover":"Ludi videojn en \u015dvebi","Default volume":"Defa\u016dlta la\u016dteco","Tree view":"Arba vido"};
\ No newline at end of file
diff --git a/inc/locale/eo/LC_MESSAGES/javascript.po b/inc/locale/eo/LC_MESSAGES/javascript.po
index 06264e66..b8addc22 100644
--- a/inc/locale/eo/LC_MESSAGES/javascript.po
+++ b/inc/locale/eo/LC_MESSAGES/javascript.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-24 04:27+0000\n"
+"PO-Revision-Date: 2014-05-05 18:55+0000\n"
"Last-Translator: neniu \n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/eo/)\n"
"MIME-Version: 1.0\n"
@@ -116,7 +116,7 @@ msgstr "Raporti"
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click reply to view."
-msgstr "Klaku respondi por vidi."
+msgstr "Klaku je respondi por vidi."
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click to expand"
diff --git a/inc/locale/eo/LC_MESSAGES/tinyboard.mo b/inc/locale/eo/LC_MESSAGES/tinyboard.mo
index b3d36bc1..75d92962 100644
Binary files a/inc/locale/eo/LC_MESSAGES/tinyboard.mo and b/inc/locale/eo/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/eo/LC_MESSAGES/tinyboard.po b/inc/locale/eo/LC_MESSAGES/tinyboard.po
index 78fba862..14533057 100644
--- a/inc/locale/eo/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/eo/LC_MESSAGES/tinyboard.po
@@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-30 18:20+0000\n"
+"PO-Revision-Date: 2014-05-05 18:49+0000\n"
"Last-Translator: neniu \n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/eo/)\n"
"MIME-Version: 1.0\n"
@@ -536,13 +536,13 @@ msgstr "Vi devos esperi %s antaŭ vi povos forviŝi tion."
#: ../../../../inc/config.php:997 ../../../../inc/config.php:999
#: ../../../../inc/config.php:1001 ../../../../inc/config.php:1017
msgid "MIME type detection XSS exploit (IE) detected; post discarded."
-msgstr "MIME-tipo percepto XSS exploit (IE) perceptita; afiŝon forigita."
+msgstr "MIME-tipo detection XSS exploit (IE) perceptita; afiŝon forigita."
#: ../../../../inc/config.php:902 ../../../../inc/config.php:1007
#: ../../../../inc/config.php:998 ../../../../inc/config.php:1000
#: ../../../../inc/config.php:1002 ../../../../inc/config.php:1018
msgid "Couldn't make sense of the URL of the video you tried to embed."
-msgstr "Maleblis kompreni la URL-on de la videon vi provis enmeti."
+msgstr "Maleblis kompreni la URL-on de la videon kiun vi provis enmeti."
#: ../../../../inc/config.php:903 ../../../../inc/config.php:1008
#: ../../../../inc/config.php:999 ../../../../inc/config.php:1001
@@ -590,7 +590,7 @@ msgstr "Malvalidaj/misformitaj cookie-oj."
#: ../../../../inc/config.php:1007 ../../../../inc/config.php:1009
#: ../../../../inc/config.php:1011 ../../../../inc/config.php:1027
msgid "Your browser didn't submit an input when it should have."
-msgstr "Via retumilo ne faris enigon kiam enigo farendis."
+msgstr "Via retumilo ne faris enigon kiam ĝi devis."
#: ../../../../inc/config.php:912 ../../../../inc/config.php:1017
#: ../../../../inc/config.php:1008 ../../../../inc/config.php:1010
diff --git a/inc/locale/fi_FI/LC_MESSAGES/javascript.js b/inc/locale/fi_FI/LC_MESSAGES/javascript.js
index e4e2cd8e..ba166796 100644
--- a/inc/locale/fi_FI/LC_MESSAGES/javascript.js
+++ b/inc/locale/fi_FI/LC_MESSAGES/javascript.js
@@ -1 +1 @@
-l10n = [];
\ No newline at end of file
+l10n = {"Style: ":"Tyyli:","File":"Tiedosto","hide":"piilota","show":"n\u00e4yt\u00e4","Show locked threads":"N\u00e4yt\u00e4 lukitut langat","Hide locked threads":"Piilota lukitut langat","URL":"URL","Select":"Valitse","Remote":"Et\u00e4","Embed":"Upote","Oekaki":"Oekaki","hidden":"piilotettu","Show images":"N\u00e4yt\u00e4 kuvat","Hide images":"Piiloita kuvat","Password":"Salasana","Delete file only":"Poista vain tiedosto","Delete":"Poista","Reason":"Syy","Report":"Raportoi","Click reply to view.":"Paina vastaa n\u00e4ytt\u00e4\u00e4ksesi.","Click to expand":"Paina laajentaaksesi","Hide expanded replies":"Piiloita laajennetut vastaukset","Brush size":"Sudin koko","Set text":"Aseta teksti\u00e4","Clear":"Pyyhi","Save":"Tallenna","Load":"Lataa","Toggle eraser":"K\u00e4yt\u00e4 kumia","Get color":"Poimi v\u00e4ri","Fill":"T\u00e4yt\u00e4","Use oekaki instead of file?":"K\u00e4yt\u00e4 oekakia tekstin sijasta?","Edit in oekaki":"Muokkaa oekakissa","Enter some text":"Kirjoita teksti\u00e4","Enter font or leave empty":"Anna fontti tai j\u00e4t\u00e4 tyhj\u00e4ksi","Forced anonymity":"Pakotettu anonyymiys","enabled":"k\u00e4yt\u00f6ss\u00e4","disabled":"ei k\u00e4yt\u00f6ss\u00e4","Sun":"Sun","Mon":"Maa","Tue":"Tii","Wed":"Kes","Thu":"Tor","Fri":"Per","Sat":"Lau","Catalog":"Katalogi","Submit":"L\u00e4het\u00e4","Quick reply":"Pikavastaus","Posting mode: Replying to >>{0}<\/small>":"Vastaustila: Vastataan >>{0}<\/small>","Return":"Palaa","Expand all images":"Laajenna kaikki kuvat","Hello!":"Hei!","{0} users":"{0} k\u00e4ytt\u00e4j\u00e4\u00e4","(hide threads from this board)":"(piiloita langat t\u00e4lt\u00e4 laudalta)","(show threads from this board)":"(n\u00e4yt\u00e4 langat t\u00e4lt\u00e4 laudalta)","No more threads to display":"Ei enemp\u00e4\u00e4 lankoja n\u00e4ytett\u00e4v\u00e4ksi","Loading...":"Lataa...","Save as original filename":"Tallenna alkuper\u00e4isell\u00e4 nimell\u00e4","Reported post(s).":"Raportoitua viesti(\u00e4)","An unknown error occured!":"Tuntematon virhe tapahtui!","Something went wrong... An unknown error occured!":"Jokin meni pieleen...Tuntematon virhe tapahtui!","Working...":"Suoritan...","Posting... (#%)":"Postataan... (#%)","Posted...":"Postattu...","An unknown error occured when posting!":"Tuntematon virhe tapahtui postatessa!","Posting...":"Postataan...","Upload URL":"Ladattavan URL","Spoiler Image":"Piilokuva","Comment":"Viesti","Quick Reply":"Pikavastaus","Stop watching this thread":"Lopeta t\u00e4m\u00e4n langan seuraaminen","Watch this thread":"Seuraa t\u00e4t\u00e4 lankaa","Unpin this board":"Poista t\u00e4m\u00e4n laudan nastoitus","Pin this board":"Nastoita t\u00e4m\u00e4 lauta","Stop watching this board":"Lopeta laudan seuraaminen","Watch this board":"Seuraa t\u00e4t\u00e4 lautaa","Click on any image on this site to load it into oekaki applet":"Paina mit\u00e4 tahansa kuvaa t\u00e4ll\u00e4 sivulla ladataksesi sen oekaki ohjelmaan","Sunday":"Sunnuntai","Monday":"Maanantai","Tuesday":"Tiistai","Wednesday":"Keskiviikko","Thursday":"Torstai","Friday":"Perjantai","Saturday":"Lauantai","January":"Tammikuu","February":"Helmikuu","March":"Maaliskuu","April":"Huhtikuu","May":"Toukokuu","June":"Kes\u00e4kuu","July":"Hein\u00e4kuu","August":"Elokuu","September":"Syyskuu","October":"Lokakuu","November":"Marraskuu","December":"Joulukuu","Jan":"Tammi","Feb":"Helmi","Mar":"Maalis","Apr":"Huhti","Jun":"Kes\u00e4","Jul":"Hein\u00e4","Aug":"Elo","Sep":"Syys","Oct":"Loka","Nov":"Marras","Dec":"JoulunJoulu","AM":"AP","PM":"IP","am":"ap","pm":"ip","Your browser does not support HTML5 video.":"Selaimesi ei tue HTML5 videota.","[play once]":"[toista kerran]","[loop]":"[silmukka]","WebM Settings":"WebM-asetukset","Expand videos inline":"Laajenna videot sivun sis\u00e4ll\u00e4","Play videos on hover":"Toista videot hoveroitaessa","Default volume":"Oletus volyymi","Tree view":"Puun\u00e4kym\u00e4"};
\ No newline at end of file
diff --git a/inc/locale/fi_FI/LC_MESSAGES/javascript.po b/inc/locale/fi_FI/LC_MESSAGES/javascript.po
index 280a9143..c9610e4f 100644
--- a/inc/locale/fi_FI/LC_MESSAGES/javascript.po
+++ b/inc/locale/fi_FI/LC_MESSAGES/javascript.po
@@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Alrahambra , 2014
msgid ""
msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-04-20 00:49+0200\n"
-"PO-Revision-Date: 2014-04-19 22:53+0000\n"
-"Last-Translator: czaks \n"
+"POT-Creation-Date: 2014-04-21 21:04+0200\n"
+"PO-Revision-Date: 2014-05-04 14:54+0000\n"
+"Last-Translator: Alrahambra \n"
"Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/fi_FI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,22 +20,22 @@ msgstr ""
#: ../../../../js/style-select.js:40 ../../../../js/style-select.js:41
msgid "Style: "
-msgstr ""
+msgstr "Tyyli:"
#: ../../../../js/hide-images.js:50 ../../../../js/upload-selection.js:51
#: ../../../../js/quick-post-controls.js:30 ../../../../js/hide-images.js:51
#: ../../../../js/quick-post-controls.js:32
#: ../../../../js/upload-selection.js:61
msgid "File"
-msgstr ""
+msgstr "Tiedosto"
#: ../../../../js/hide-images.js:50 ../../../../js/hide-images.js:51
msgid "hide"
-msgstr ""
+msgstr "piilota"
#: ../../../../js/hide-images.js:56 ../../../../js/hide-images.js:57
msgid "show"
-msgstr ""
+msgstr "näytä"
#: ../../../../js/toggle-locked-threads.js:39
#: ../../../../js/toggle-locked-threads.js:54
@@ -43,7 +44,7 @@ msgstr ""
#: ../../../../js/toggle-locked-threads.js:41
#: ../../../../js/toggle-locked-threads.js:56
msgid "Show locked threads"
-msgstr ""
+msgstr "Näytä lukitut langat"
#: ../../../../js/toggle-locked-threads.js:39
#: ../../../../js/toggle-locked-threads.js:54
@@ -52,126 +53,126 @@ msgstr ""
#: ../../../../js/toggle-locked-threads.js:41
#: ../../../../js/toggle-locked-threads.js:56
msgid "Hide locked threads"
-msgstr ""
+msgstr "Piilota lukitut langat"
#: ../../../../js/upload-selection.js:32 ../../../../js/upload-selection.js:45
msgid "URL"
-msgstr ""
+msgstr "URL"
#: ../../../../js/upload-selection.js:50 ../../../../js/upload-selection.js:60
msgid "Select"
-msgstr ""
+msgstr "Valitse"
#: ../../../../js/upload-selection.js:53 ../../../../js/upload-selection.js:63
msgid "Remote"
-msgstr ""
+msgstr "Etä"
#: ../../../../js/upload-selection.js:56 ../../../../js/upload-selection.js:66
msgid "Embed"
-msgstr ""
+msgstr "Upote"
#: ../../../../js/upload-selection.js:59 ../../../../js/upload-selection.js:69
msgid "Oekaki"
-msgstr ""
+msgstr "Oekaki"
#: ../../../../js/toggle-images.js:41 ../../../../js/toggle-images.js:42
msgid "hidden"
-msgstr ""
+msgstr "piilotettu"
#: ../../../../js/toggle-images.js:57 ../../../../js/toggle-images.js:70
#: ../../../../js/toggle-images.js:58 ../../../../js/toggle-images.js:71
msgid "Show images"
-msgstr ""
+msgstr "Näytä kuvat"
#: ../../../../js/toggle-images.js:57 ../../../../js/toggle-images.js:70
#: ../../../../js/toggle-images.js:58 ../../../../js/toggle-images.js:71
msgid "Hide images"
-msgstr ""
+msgstr "Piiloita kuvat"
#: ../../../../js/quick-post-controls.js:27
#: ../../../../js/quick-post-controls.js:29
msgid "Password"
-msgstr ""
+msgstr "Salasana"
#: ../../../../js/quick-post-controls.js:29
#: ../../../../js/quick-post-controls.js:31
msgid "Delete file only"
-msgstr ""
+msgstr "Poista vain tiedosto"
#: ../../../../js/quick-post-controls.js:31
#: ../../../../js/quick-post-controls.js:33
msgid "Delete"
-msgstr ""
+msgstr "Poista"
#: ../../../../js/quick-post-controls.js:35
#: ../../../../js/quick-post-controls.js:37
msgid "Reason"
-msgstr ""
+msgstr "Syy"
#: ../../../../js/quick-post-controls.js:37
#: ../../../../js/quick-post-controls.js:39
msgid "Report"
-msgstr ""
+msgstr "Raportoi"
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click reply to view."
-msgstr ""
+msgstr "Paina vastaa näyttääksesi."
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click to expand"
-msgstr ""
+msgstr "Paina laajentaaksesi"
#: ../../../../js/expand.js:44 ../../../../js/expand.js:46
msgid "Hide expanded replies"
-msgstr ""
+msgstr "Piiloita laajennetut vastaukset"
#: ../../../../js/oekaki.js:10
msgid "Brush size"
-msgstr ""
+msgstr "Sudin koko"
#: ../../../../js/oekaki.js:10
msgid "Set text"
-msgstr ""
+msgstr "Aseta tekstiä"
#: ../../../../js/oekaki.js:10
msgid "Clear"
-msgstr ""
+msgstr "Pyyhi"
#: ../../../../js/oekaki.js:10
msgid "Save"
-msgstr ""
+msgstr "Tallenna"
#: ../../../../js/oekaki.js:10
msgid "Load"
-msgstr ""
+msgstr "Lataa"
#: ../../../../js/oekaki.js:11
msgid "Toggle eraser"
-msgstr ""
+msgstr "Käytä kumia"
#: ../../../../js/oekaki.js:11
msgid "Get color"
-msgstr ""
+msgstr "Poimi väri"
#: ../../../../js/oekaki.js:11
msgid "Fill"
-msgstr ""
+msgstr "Täytä"
#: ../../../../js/oekaki.js:12
msgid "Use oekaki instead of file?"
-msgstr ""
+msgstr "Käytä oekakia tekstin sijasta?"
#: ../../../../js/oekaki.js:21
msgid "Edit in oekaki"
-msgstr ""
+msgstr "Muokkaa oekakissa"
#: ../../../../js/oekaki.js:152
msgid "Enter some text"
-msgstr ""
+msgstr "Kirjoita tekstiä"
#: ../../../../js/oekaki.js:153
msgid "Enter font or leave empty"
-msgstr ""
+msgstr "Anna fontti tai jätä tyhjäksi"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:69 ../../../../js/forced-anon.js:60
@@ -179,190 +180,190 @@ msgstr ""
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
#: ../../../../js/forced-anon.js:71
msgid "Forced anonymity"
-msgstr ""
+msgstr "Pakotettu anonyymiys"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:66
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
msgid "enabled"
-msgstr ""
+msgstr "käytössä"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:69
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:70
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:71
msgid "disabled"
-msgstr ""
+msgstr "ei käytössä"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sun"
-msgstr ""
+msgstr "Sun"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Mon"
-msgstr ""
+msgstr "Maa"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Tue"
-msgstr ""
+msgstr "Tii"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Wed"
-msgstr ""
+msgstr "Kes"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Thu"
-msgstr ""
+msgstr "Tor"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Fri"
-msgstr ""
+msgstr "Per"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sat"
-msgstr ""
+msgstr "Lau"
#: ../../../../js/catalog-link.js:21 ../../../../js/catalog-link.js:32
#: ../../../../js/catalog-link.js:40 ../../../../js/catalog-link.js:33
#: ../../../../js/catalog-link.js:44 ../../../../js/catalog-link.js:52
msgid "Catalog"
-msgstr ""
+msgstr "Katalogi"
#: ../../../../js/quick-reply.js:21 ../../../../js/quick-reply-old.js:21
#: ../../../../js/quick-reply-old.js:23
msgid "Submit"
-msgstr ""
+msgstr "Lähetä"
#: ../../../../js/quick-reply.js:31 ../../../../js/quick-reply-old.js:31
#: ../../../../js/quick-reply-old.js:33
msgid "Quick reply"
-msgstr ""
+msgstr "Pikavastaus"
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
#, python-brace-format
msgid "Posting mode: Replying to >>{0}"
-msgstr ""
+msgstr "Vastaustila: Vastataan >>{0}"
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
msgid "Return"
-msgstr ""
+msgstr "Palaa"
#: ../../../../js/expand-all-images.js:20
#: ../../../../js/expand-all-images.js:21
#: ../../../../js/expand-all-images.js:22
msgid "Expand all images"
-msgstr ""
+msgstr "Laajenna kaikki kuvat"
#: ../../../../templates/main.js:6
msgid "Hello!"
-msgstr ""
+msgstr "Hei!"
#: ../../../../templates/main.js:18
#, python-brace-format
msgid "{0} users"
-msgstr ""
+msgstr "{0} käyttäjää"
#: ../../../../templates/themes/ukko/ukko.js:28
#: ../../../../templates/themes/ukko/ukko.js:39
#: ../../../../templates/themes/ukko/ukko.js:29
#: ../../../../templates/themes/ukko/ukko.js:40
msgid "(hide threads from this board)"
-msgstr ""
+msgstr "(piiloita langat tältä laudalta)"
#: ../../../../templates/themes/ukko/ukko.js:32
#: ../../../../templates/themes/ukko/ukko.js:44
#: ../../../../templates/themes/ukko/ukko.js:33
#: ../../../../templates/themes/ukko/ukko.js:45
msgid "(show threads from this board)"
-msgstr ""
+msgstr "(näytä langat tältä laudalta)"
#: ../../../../templates/themes/ukko/ukko.js:57
#: ../../../../templates/themes/ukko/ukko.js:58
msgid "No more threads to display"
-msgstr ""
+msgstr "Ei enempää lankoja näytettäväksi"
#: ../../../../templates/themes/ukko/ukko.js:79
#: ../../../../templates/themes/ukko/ukko.js:80
msgid "Loading..."
-msgstr ""
+msgstr "Lataa..."
#: ../../../../js/download-original.js:32
#: ../../../../js/download-original.js:33
msgid "Save as original filename"
-msgstr ""
+msgstr "Tallenna alkuperäisellä nimellä"
#: ../../../../js/ajax-post-controls.js:43
msgid "Reported post(s)."
-msgstr ""
+msgstr "Raportoitua viesti(ä)"
#: ../../../../js/ajax-post-controls.js:53
msgid "An unknown error occured!"
-msgstr ""
+msgstr "Tuntematon virhe tapahtui!"
#: ../../../../js/ajax-post-controls.js:60
msgid "Something went wrong... An unknown error occured!"
-msgstr ""
+msgstr "Jokin meni pieleen...Tuntematon virhe tapahtui!"
#: ../../../../js/ajax-post-controls.js:68
msgid "Working..."
-msgstr ""
+msgstr "Suoritan..."
#: ../../../../js/ajax.js:42 ../../../../js/ajax.js:45
msgid "Posting... (#%)"
-msgstr ""
+msgstr "Postataan... (#%)"
#: ../../../../js/ajax.js:104 ../../../../js/ajax.js:109
msgid "Posted..."
-msgstr ""
+msgstr "Postattu..."
#: ../../../../js/ajax.js:106 ../../../../js/ajax.js:111
msgid "An unknown error occured when posting!"
-msgstr ""
+msgstr "Tuntematon virhe tapahtui postatessa!"
#: ../../../../js/ajax.js:130 ../../../../js/ajax.js:135
msgid "Posting..."
-msgstr ""
+msgstr "Postataan..."
#: ../../../../js/quick-reply.js:223 ../../../../js/quick-reply.js:224
#: ../../../../js/quick-reply.js:225
msgid "Upload URL"
-msgstr ""
+msgstr "Ladattavan URL"
#: ../../../../js/quick-reply.js:266 ../../../../js/quick-reply.js:267
#: ../../../../js/quick-reply.js:268
msgid "Spoiler Image"
-msgstr ""
+msgstr "Piilokuva"
#: ../../../../js/quick-reply.js:277 ../../../../js/quick-reply.js:278
#: ../../../../js/quick-reply.js:279
msgid "Comment"
-msgstr ""
+msgstr "Viesti"
#: ../../../../js/quick-reply.js:285 ../../../../js/quick-reply.js:406
#: ../../../../js/quick-reply.js:286 ../../../../js/quick-reply.js:407
#: ../../../../js/quick-reply.js:287 ../../../../js/quick-reply.js:408
msgid "Quick Reply"
-msgstr ""
+msgstr "Pikavastaus"
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Stop watching this thread"
-msgstr ""
+msgstr "Lopeta tämän langan seuraaminen"
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Watch this thread"
-msgstr ""
+msgstr "Seuraa tätä lankaa"
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
@@ -370,7 +371,7 @@ msgstr ""
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Unpin this board"
-msgstr ""
+msgstr "Poista tämän laudan nastoitus"
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
@@ -378,7 +379,7 @@ msgstr ""
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Pin this board"
-msgstr ""
+msgstr "Nastoita tämä lauta"
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
@@ -386,7 +387,7 @@ msgstr ""
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Stop watching this board"
-msgstr ""
+msgstr "Lopeta laudan seuraaminen"
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
@@ -394,176 +395,176 @@ msgstr ""
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Watch this board"
-msgstr ""
+msgstr "Seuraa tätä lautaa"
#: ../../../../js/wpaint.js:113
msgid "Click on any image on this site to load it into oekaki applet"
-msgstr ""
+msgstr "Paina mitä tahansa kuvaa tällä sivulla ladataksesi sen oekaki ohjelmaan"
#: ../../../../js/local-time.js:29
msgid "Sunday"
-msgstr ""
+msgstr "Sunnuntai"
#: ../../../../js/local-time.js:29
msgid "Monday"
-msgstr ""
+msgstr "Maanantai"
#: ../../../../js/local-time.js:29
msgid "Tuesday"
-msgstr ""
+msgstr "Tiistai"
#: ../../../../js/local-time.js:29
msgid "Wednesday"
-msgstr ""
+msgstr "Keskiviikko"
#: ../../../../js/local-time.js:29
msgid "Thursday"
-msgstr ""
+msgstr "Torstai"
#: ../../../../js/local-time.js:29
msgid "Friday"
-msgstr ""
+msgstr "Perjantai"
#: ../../../../js/local-time.js:29
msgid "Saturday"
-msgstr ""
+msgstr "Lauantai"
#: ../../../../js/local-time.js:31
msgid "January"
-msgstr ""
+msgstr "Tammikuu"
#: ../../../../js/local-time.js:31
msgid "February"
-msgstr ""
+msgstr "Helmikuu"
#: ../../../../js/local-time.js:31
msgid "March"
-msgstr ""
+msgstr "Maaliskuu"
#: ../../../../js/local-time.js:31
msgid "April"
-msgstr ""
+msgstr "Huhtikuu"
#: ../../../../js/local-time.js:31 ../../../../js/local-time.js:32
msgid "May"
-msgstr ""
+msgstr "Toukokuu"
#: ../../../../js/local-time.js:31
msgid "June"
-msgstr ""
+msgstr "Kesäkuu"
#: ../../../../js/local-time.js:31
msgid "July"
-msgstr ""
+msgstr "Heinäkuu"
#: ../../../../js/local-time.js:31
msgid "August"
-msgstr ""
+msgstr "Elokuu"
#: ../../../../js/local-time.js:31
msgid "September"
-msgstr ""
+msgstr "Syyskuu"
#: ../../../../js/local-time.js:31
msgid "October"
-msgstr ""
+msgstr "Lokakuu"
#: ../../../../js/local-time.js:31
msgid "November"
-msgstr ""
+msgstr "Marraskuu"
#: ../../../../js/local-time.js:31
msgid "December"
-msgstr ""
+msgstr "Joulukuu"
#: ../../../../js/local-time.js:32
msgid "Jan"
-msgstr ""
+msgstr "Tammi"
#: ../../../../js/local-time.js:32
msgid "Feb"
-msgstr ""
+msgstr "Helmi"
#: ../../../../js/local-time.js:32
msgid "Mar"
-msgstr ""
+msgstr "Maalis"
#: ../../../../js/local-time.js:32
msgid "Apr"
-msgstr ""
+msgstr "Huhti"
#: ../../../../js/local-time.js:32
msgid "Jun"
-msgstr ""
+msgstr "Kesä"
#: ../../../../js/local-time.js:32
msgid "Jul"
-msgstr ""
+msgstr "Heinä"
#: ../../../../js/local-time.js:32
msgid "Aug"
-msgstr ""
+msgstr "Elo"
#: ../../../../js/local-time.js:32
msgid "Sep"
-msgstr ""
+msgstr "Syys"
#: ../../../../js/local-time.js:32
msgid "Oct"
-msgstr ""
+msgstr "Loka"
#: ../../../../js/local-time.js:32
msgid "Nov"
-msgstr ""
+msgstr "Marras"
#: ../../../../js/local-time.js:32
msgid "Dec"
-msgstr ""
+msgstr "Joulu\nJoulu"
#: ../../../../js/local-time.js:33
msgid "AM"
-msgstr ""
+msgstr "AP"
#: ../../../../js/local-time.js:34
msgid "PM"
-msgstr ""
+msgstr "IP"
#: ../../../../js/local-time.js:35
msgid "am"
-msgstr ""
+msgstr "ap"
#: ../../../../js/local-time.js:36
msgid "pm"
-msgstr ""
+msgstr "ip"
#: ../../../../js/expand-video.js:45 ../../../../js/expand-video.js:48
msgid "Your browser does not support HTML5 video."
-msgstr ""
+msgstr "Selaimesi ei tue HTML5 videota."
#: ../../../../js/expand-video.js:189 ../../../../js/expand-video.js:192
msgid "[play once]"
-msgstr ""
+msgstr "[toista kerran]"
#: ../../../../js/expand-video.js:190 ../../../../js/expand-video.js:193
msgid "[loop]"
-msgstr ""
+msgstr "[silmukka]"
#: ../../../../js/webm-settings.js:42
msgid "WebM Settings"
-msgstr ""
+msgstr "WebM-asetukset"
#: ../../../../js/webm-settings.js:44
msgid "Expand videos inline"
-msgstr ""
+msgstr "Laajenna videot sivun sisällä"
#: ../../../../js/webm-settings.js:45
msgid "Play videos on hover"
-msgstr ""
+msgstr "Toista videot hoveroitaessa"
#: ../../../../js/webm-settings.js:46
msgid "Default volume"
-msgstr ""
+msgstr "Oletus volyymi"
#: ../../../../js/treeview.js:18
msgid "Tree view"
-msgstr ""
+msgstr "Puunäkymä"
diff --git a/inc/locale/fi_FI/LC_MESSAGES/tinyboard.mo b/inc/locale/fi_FI/LC_MESSAGES/tinyboard.mo
index ba374765..22d1a647 100644
Binary files a/inc/locale/fi_FI/LC_MESSAGES/tinyboard.mo and b/inc/locale/fi_FI/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/fi_FI/LC_MESSAGES/tinyboard.po b/inc/locale/fi_FI/LC_MESSAGES/tinyboard.po
index 3d29a39f..b5b4c1c7 100644
--- a/inc/locale/fi_FI/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/fi_FI/LC_MESSAGES/tinyboard.po
@@ -1,254 +1,2608 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Codegroove.net
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr "Project-Id-Version: Tinyboard i18n\n"
- "Report-Msgid-Bugs-To: savetheinternet@tinyboard.org\n"
- "POT-Creation-Date: 2010-05-28 06:18-0500\n"
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
- "Last-Translator: Riku \n"
- "Language-Team: Tinyboard \n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
+#
+# Translators:
+# Alrahambra , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: vichan\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-04-21 21:04+0200\n"
+"PO-Revision-Date: 2014-05-04 15:05+0000\n"
+"Last-Translator: Alrahambra \n"
+"Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/fi_FI/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi_FI\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Name"
-msgstr "Nimi"
+#: ../../../../inc/functions.php:583 ../../../../inc/functions.php:600
+#: ../../../../inc/functions.php:591 ../../../../inc/functions.php:608
+#: ../../../../inc/functions.php:620 ../../../../inc/functions.php:637
+#: ../../../../inc/functions.php:623 ../../../../inc/functions.php:640
+#: ../../../../inc/functions.php:629 ../../../../inc/functions.php:646
+#: ../../../../inc/functions.php:643 ../../../../inc/functions.php:660
+#: ../../../../inc/functions.php:653 ../../../../inc/functions.php:670
+msgid "second"
+msgid_plural "seconds"
+msgstr[0] ""
+msgstr[1] ""
-msgid "Email"
-msgstr "Email"
+#: ../../../../inc/functions.php:585 ../../../../inc/functions.php:602
+#: ../../../../inc/functions.php:593 ../../../../inc/functions.php:610
+#: ../../../../inc/functions.php:622 ../../../../inc/functions.php:639
+#: ../../../../inc/functions.php:625 ../../../../inc/functions.php:642
+#: ../../../../inc/functions.php:631 ../../../../inc/functions.php:648
+#: ../../../../inc/functions.php:645 ../../../../inc/functions.php:662
+#: ../../../../inc/functions.php:655 ../../../../inc/functions.php:672
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] ""
+msgstr[1] ""
-msgid "Subject"
-msgstr "Aihe"
+#: ../../../../inc/functions.php:587 ../../../../inc/functions.php:604
+#: ../../../../inc/functions.php:595 ../../../../inc/functions.php:612
+#: ../../../../inc/functions.php:624 ../../../../inc/functions.php:641
+#: ../../../../inc/functions.php:627 ../../../../inc/functions.php:644
+#: ../../../../inc/functions.php:633 ../../../../inc/functions.php:650
+#: ../../../../inc/functions.php:647 ../../../../inc/functions.php:664
+#: ../../../../inc/functions.php:657 ../../../../inc/functions.php:674
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] ""
+msgstr[1] ""
-msgid "Comment"
-msgstr "Viesti"
+#: ../../../../inc/functions.php:589 ../../../../inc/functions.php:606
+#: ../../../../inc/functions.php:597 ../../../../inc/functions.php:614
+#: ../../../../inc/functions.php:626 ../../../../inc/functions.php:643
+#: ../../../../inc/functions.php:629 ../../../../inc/functions.php:646
+#: ../../../../inc/functions.php:635 ../../../../inc/functions.php:652
+#: ../../../../inc/functions.php:649 ../../../../inc/functions.php:666
+#: ../../../../inc/functions.php:659 ../../../../inc/functions.php:676
+msgid "day"
+msgid_plural "days"
+msgstr[0] ""
+msgstr[1] ""
-msgid "Verification"
-msgstr "Varmennus"
+#: ../../../../inc/functions.php:591 ../../../../inc/functions.php:608
+#: ../../../../inc/functions.php:599 ../../../../inc/functions.php:616
+#: ../../../../inc/functions.php:628 ../../../../inc/functions.php:645
+#: ../../../../inc/functions.php:631 ../../../../inc/functions.php:648
+#: ../../../../inc/functions.php:637 ../../../../inc/functions.php:654
+#: ../../../../inc/functions.php:651 ../../../../inc/functions.php:668
+#: ../../../../inc/functions.php:661 ../../../../inc/functions.php:678
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] ""
+msgstr[1] ""
-msgid "File"
-msgstr "Tiedosto"
+#: ../../../../inc/functions.php:594 ../../../../inc/functions.php:611
+#: ../../../../inc/functions.php:602 ../../../../inc/functions.php:619
+#: ../../../../inc/functions.php:631 ../../../../inc/functions.php:648
+#: ../../../../inc/functions.php:634 ../../../../inc/functions.php:651
+#: ../../../../inc/functions.php:640 ../../../../inc/functions.php:657
+#: ../../../../inc/functions.php:654 ../../../../inc/functions.php:671
+#: ../../../../inc/functions.php:664 ../../../../inc/functions.php:681
+msgid "year"
+msgid_plural "years"
+msgstr[0] ""
+msgstr[1] ""
-msgid "Embed"
-msgstr "Upote"
-
-msgid "Flags"
-msgstr "Arvot"
-
-msgid "Password"
-msgstr "Salasana"
-
-msgid "(For file deletion.)"
-msgstr "(Tiedoston poistoon.)"
-
-msgid "Spoiler Image"
-msgstr "Spoiler Image"
-
-msgid "Return"
-msgstr "Takaisin"
-
-msgid "Posting mode: Reply"
-msgstr "Viestin tyyppi: Vastaus"
-
-msgid "Reply"
-msgstr "Vastaa"
-
-msgid "Sticky"
-msgstr "Sticky"
-
-msgid "Lock"
-msgstr "Lukko"
-
-msgid "Raw HTML"
-msgstr "Raaka HTML"
-
-msgid "Delete Post"
-msgstr "Poista Viesti"
-
-msgid "Delete"
-msgstr "Poista"
-
-msgid "Reason"
-msgstr "Syy"
-
-msgid "Report"
-msgstr "Report"
+#: ../../../../inc/functions.php:628 ../../../../inc/functions.php:670
+#: ../../../../inc/functions.php:699 ../../../../inc/functions.php:702
+#: ../../../../inc/functions.php:708 ../../../../inc/functions.php:722
+#: ../../../../inc/functions.php:732
+msgid "Banned!"
+msgstr "Bannittu!"
+#. There is no previous page.
+#: ../../../../inc/functions.php:1125 ../../../../inc/functions.php:1139
+#: ../../../../inc/functions.php:1165 ../../../../inc/functions.php:1179
+#: ../../../../inc/functions.php:1168 ../../../../inc/functions.php:1182
+#: ../../../../inc/functions.php:1197 ../../../../inc/functions.php:1211
+#: ../../../../inc/functions.php:1200 ../../../../inc/functions.php:1214
+#: ../../../../inc/functions.php:1206 ../../../../inc/functions.php:1220
+#: ../../../../inc/functions.php:1234 ../../../../inc/functions.php:1230
+#: ../../../../inc/functions.php:1244
msgid "Previous"
msgstr "Edellinen"
+#. There is no next page.
+#: ../../../../inc/functions.php:1144 ../../../../inc/functions.php:1153
+#: ../../../../inc/functions.php:1184 ../../../../inc/functions.php:1193
+#: ../../../../inc/functions.php:1187 ../../../../inc/functions.php:1196
+#: ../../../../inc/functions.php:1216 ../../../../inc/functions.php:1225
+#: ../../../../inc/functions.php:1219 ../../../../inc/functions.php:1228
+#: ../../../../inc/functions.php:1234 ../../../../inc/functions.php:1239
+#: ../../../../inc/functions.php:1248 ../../../../inc/functions.php:1249
+#: ../../../../inc/functions.php:1258
msgid "Next"
msgstr "Seuraava"
-msgid "Return to dashboard"
-msgstr "Palaa hallintaan"
+#: ../../../../inc/display.php:93 ../../../../inc/display.php:105
+#: ../../../../inc/display.php:108 ../../../../inc/display.php:112
+msgid "Error"
+msgstr "Virhe"
-msgid "PM Inbox"
-msgstr "Viestilaatikko"
-
-msgid "empty"
-msgstr "tyhjä"
-
-msgid "unread"
-msgstr "lukematon"
-
-msgid "No private messages for you."
-msgstr "Sinulle ei ole uusia viestejä."
-
-msgid "Manage users"
-msgstr "Hallitse käyttäjiä"
-
-msgid "ID"
-msgstr ""
-
-msgid "Username"
-msgstr "Käyttäjänimi"
-
-msgid "User"
-msgstr "Käyttäjä"
-
-msgid "IP address"
-msgstr "IP osoite"
-
-msgid "Type"
-msgstr "Tyyppi"
-
-msgid "Last action"
-msgstr "Viimeinen tapahtuma"
-
-msgid "Boards"
-msgstr "Laudat"
-
-msgid "Create new board"
-msgstr "Luo uusi lauta"
-
-msgid "Create new user"
-msgstr "Luo uusi käyttäjä"
-
-msgid "News"
-msgstr "Uutiset"
-
-msgid "no subject"
-msgstr "ei aihetta"
-
-msgid "View all entries"
-msgstr "Näytä kaikki tiedotteet"
-
-msgid "Dashboard"
-msgstr "Hallinta"
-
-msgid "Noticeboard"
-msgstr "Tiedotteet"
-
-msgid "Report queue"
-msgstr "Ilmiannot"
-
-msgid "Ban list"
-msgstr "Bannit"
-
-msgid "Moderation log"
-msgstr "Moderaatio logi"
-
-msgid "Rebuild static files"
-msgstr "Rakenna uudelleen"
-
-msgid "Show configuration"
-msgstr "Näytä asetukset"
-
-msgid "Configuration"
-msgstr "Asetukset"
-
-msgid "Themes"
-msgstr "Teemat"
-
-msgid "Manage themes"
-msgstr "Hallitse teemoja"
-
-msgid "Search"
-msgstr "Etsi"
-
-msgid "Phrase:"
-msgstr "Lause tai sana:"
-
-msgid "(Search is case-insensitive, and based on keywords. To match exact phrases, use \"quotes\". Use an asterisk (*) for wildcard.)"
-msgstr "(Haku etsii sanoja ja lauseita myös muiden lauseiden ja sanojen sisältä. Löytääksesi tietyn fraasin käytä \"lainausmerkkejä\". Voit käyttää myös (*) merkkiä jokerina.)"
-
-msgid "Version"
-msgstr "Versio"
-
-msgid "Description"
-msgstr "Kuvaus"
-
-msgid "Thumbnail"
-msgstr ""
-
-msgid "Uninstall all themes."
-msgstr "Poista kaikki teemat"
-
-msgid "Reconfigure"
-msgstr "Asetukset"
-
-msgid "Rebuild"
-msgstr "Rakenna uudelleen"
-
-msgid "Uninstall"
-msgstr "Poista"
-
-msgid "Install"
-msgstr "Asenna"
-
-msgid "Use theme"
-msgstr "Käytä teemaa"
-
-msgid "Actions"
-msgstr "Toiminto"
-
-msgid "Body"
-msgstr "Viesti"
-
-msgid "Ago"
-msgstr "Viesti"
-
-msgid "Board"
-msgstr "Lauta"
-
-msgid "Action"
-msgstr "Tapahtuma"
-
-msgid "Set"
-msgstr "Aseta"
-
-msgid "Expires"
-msgstr "Vanhenee"
-
-msgid "Staff"
-msgstr "Moderaattori"
-
-msgid "all boards"
-msgstr "kaikki laudat"
-
-msgid "Post to news"
-msgstr "Lähetä uutisiin"
-
-msgid "Post to noticeboard"
-msgstr "Lähetä tiedotteisiin"
-
-msgid "Showing all %d reports."
-msgstr ""
-
-msgid "Logout"
-msgstr "Kirjaudu ulos"
+#: ../../../../inc/display.php:94 ../../../../inc/display.php:106
+#: ../../../../inc/display.php:109 ../../../../inc/display.php:113
+msgid "An error has occured."
+msgstr "Tapahtui virhe"
+#: ../../../../inc/display.php:110 ../../../../inc/mod/pages.php:62
+#: ../../../../inc/mod/pages.php:60 ../../../../inc/display.php:122
+#: ../../../../inc/display.php:125 ../../../../inc/display.php:129
msgid "Login"
msgstr "Kirjaudu sisään"
-msgid "Continue"
-msgstr "Jatka"
+#: ../../../../inc/display.php:229 ../../../../inc/display.php:241
+#: ../../../../inc/display.php:244 ../../../../inc/display.php:248
+#, php-format
+msgid "Post too long. Click here to view the full text."
+msgstr "Postaus on liian pitkä. Paina tästä näyttääksesi koko tekstin."
+#: ../../../../inc/display.php:368 ../../../../inc/display.php:473
+#: ../../../../inc/display.php:385 ../../../../inc/display.php:495
+#: ../../../../inc/display.php:388 ../../../../inc/display.php:498
+#: ../../../../inc/display.php:392 ../../../../inc/display.php:502
+msgid "Ban"
+msgstr "Bannaa"
+
+#: ../../../../inc/display.php:372 ../../../../inc/display.php:477
+#: ../../../../inc/display.php:389 ../../../../inc/display.php:499
+#: ../../../../inc/display.php:392 ../../../../inc/display.php:502
+#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
+msgid "Ban & Delete"
+msgstr "Bannaa ja poista"
+
+#: ../../../../inc/display.php:376 ../../../../inc/display.php:481
+#: ../../../../inc/display.php:393 ../../../../inc/display.php:503
+#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
+#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
+msgid "Delete file"
+msgstr "Poista tiedosto"
+
+#: ../../../../inc/display.php:376 ../../../../inc/display.php:481
+#: ../../../../inc/display.php:393 ../../../../inc/display.php:503
+#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
+#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
+msgid "Are you sure you want to delete this file?"
+msgstr "Haluatko varmasti poistaa tämän tiedoston"
+
+#: ../../../../inc/display.php:380 ../../../../inc/display.php:485
+#: ../../../../inc/display.php:397 ../../../../inc/display.php:507
+#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
+#: ../../../../inc/display.php:404 ../../../../inc/display.php:514
+msgid "Spoiler File"
+msgstr "Piilokuva"
+
+#: ../../../../inc/display.php:380 ../../../../inc/display.php:485
+#: ../../../../inc/display.php:397 ../../../../inc/display.php:507
+#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
+#: ../../../../inc/display.php:404 ../../../../inc/display.php:514
+msgid "Are you sure you want to spoiler this file?"
+msgstr "Haluatko varmasti piiloittaa tämän kuvan?"
+
+#: ../../../../inc/display.php:384 ../../../../inc/display.php:401
+#: ../../../../inc/display.php:404 ../../../../inc/display.php:408
+msgid "Move reply to another board"
+msgstr "Siirrä viesti toiselle laudalle"
+
+#: ../../../../inc/display.php:388 ../../../../inc/display.php:512
+#: ../../../../inc/mod/pages.php:1425 ../../../../inc/mod/pages.php:1494
+#: ../../../../inc/display.php:405 ../../../../inc/display.php:534
+#: ../../../../inc/display.php:408 ../../../../inc/display.php:537
+#: ../../../../inc/display.php:412 ../../../../inc/display.php:541
+msgid "Edit post"
+msgstr "Muokkaa postausta"
+
+#. line 5
+#: ../../../../inc/display.php:461
+#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:33
+#: ../../../../inc/display.php:483
+#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:36
+#: ../../../../inc/display.php:486 ../../../../inc/display.php:490
+msgid "Delete"
+msgstr "Poista"
+
+#: ../../../../inc/display.php:461 ../../../../inc/display.php:483
+#: ../../../../inc/display.php:486 ../../../../inc/display.php:490
+msgid "Are you sure you want to delete this?"
+msgstr "Haluatko varmasti poistaa tämän?"
+
+#: ../../../../inc/display.php:465 ../../../../inc/display.php:487
+#: ../../../../inc/display.php:490 ../../../../inc/display.php:494
+msgid "Delete all posts by IP"
+msgstr "Poista viestit IP:n perusteella"
+
+#: ../../../../inc/display.php:465 ../../../../inc/display.php:487
+#: ../../../../inc/display.php:490 ../../../../inc/display.php:494
+msgid "Are you sure you want to delete all posts by this IP address?"
+msgstr "Haluatko varmasti poistaa kaikki postaukset tämän IP osoitteen perusteella?"
+
+#: ../../../../inc/display.php:469 ../../../../inc/display.php:491
+#: ../../../../inc/display.php:494 ../../../../inc/display.php:498
+msgid "Delete all posts by IP across all boards"
+msgstr "Poista kaikki viestit lautojen välillä IP osoitteen perusteella"
+
+#: ../../../../inc/display.php:469 ../../../../inc/display.php:491
+#: ../../../../inc/display.php:494 ../../../../inc/display.php:498
+msgid ""
+"Are you sure you want to delete all posts by this IP address, across all "
+"boards?"
+msgstr "Haluatko varmasti poistaa kaikki postaukset tämän IP:n perusteella kaikilla laudoilla?"
+
+#: ../../../../inc/display.php:490 ../../../../inc/display.php:512
+#: ../../../../inc/display.php:515 ../../../../inc/display.php:519
+msgid "Make thread not sticky"
+msgstr "Poista langan tahma"
+
+#: ../../../../inc/display.php:492 ../../../../inc/display.php:514
+#: ../../../../inc/display.php:517 ../../../../inc/display.php:521
+msgid "Make thread sticky"
+msgstr "Tahmaa lanka"
+
+#: ../../../../inc/display.php:496 ../../../../inc/display.php:518
+#: ../../../../inc/display.php:521 ../../../../inc/display.php:525
+msgid "Allow thread to be bumped"
+msgstr "Salli langan bumppaukset"
+
+#: ../../../../inc/display.php:498 ../../../../inc/display.php:520
+#: ../../../../inc/display.php:523 ../../../../inc/display.php:527
+msgid "Prevent thread from being bumped"
+msgstr "Estä langan bumpit"
+
+#: ../../../../inc/display.php:503 ../../../../inc/display.php:525
+#: ../../../../inc/display.php:528 ../../../../inc/display.php:532
+msgid "Unlock thread"
+msgstr "Poista langan lukitus"
+
+#: ../../../../inc/display.php:505 ../../../../inc/display.php:527
+#: ../../../../inc/display.php:530 ../../../../inc/display.php:534
+msgid "Lock thread"
+msgstr "Lukitse lanka"
+
+#: ../../../../inc/display.php:508 ../../../../inc/display.php:530
+#: ../../../../inc/display.php:533 ../../../../inc/display.php:537
+msgid "Move thread to another board"
+msgstr "Siirrä lankasi toiselle laudalle"
+
+#. How long before Tinyboard forgets about a mute?
+#. 2 weeks
+#. If you want to alter the algorithm a bit. Default value is 2.
+#. (n^x where x is the number of previous mutes)
+#: ../../../../inc/config.php:346 ../../../../inc/config.php:473
+#: ../../../../inc/config.php:474 ../../../../inc/config.php:475
+msgid "You have been muted for unoriginal content."
+msgstr "Sinut on mykistetty ei-alkuperäisen sisällöln vuoksi"
+
+#. The names on the post buttons. (On most imageboards, these are both just
+#. "Post").
+#. The names on the post buttons. (On most imageboards, these are both just
+#. "Post").
+#: ../../../../inc/config.php:677 ../../../../inc/config.php:781
+#: ../../../../inc/config.php:772 ../../../../inc/config.php:774
+#: ../../../../inc/config.php:776 ../../../../inc/config.php:792
+msgid "New Topic"
+msgstr "Uusi lanka"
+
+#: ../../../../inc/config.php:678 ../../../../inc/config.php:782
+#: ../../../../inc/config.php:773 ../../../../inc/config.php:775
+#: ../../../../inc/config.php:777 ../../../../inc/config.php:793
+msgid "New Reply"
+msgstr "Uusi aihe"
+
+#. Additional lines added to the footer of all pages.
+#: ../../../../inc/config.php:689 ../../../../inc/config.php:793
+#: ../../../../inc/config.php:784 ../../../../inc/config.php:786
+#: ../../../../inc/config.php:788 ../../../../inc/config.php:804
+msgid ""
+"All trademarks, copyrights, comments, and images on this page are owned by "
+"and are the responsibility of their respective parties."
+msgstr "Kaikki tavaramerkit, tekijäinoikeudet ja kuvat tällä sivulla kuuluvat niiden oikeille omistajilleen."
+
+#. * ====================
+#. * Error messages
+#. * ====================
+#. Error messages
+#: ../../../../inc/config.php:866
+msgid "Lurk some more before posting."
+msgstr "Lurkkaa lisää ennenkuin postaat."
+
+#. * ====================
+#. * Error messages
+#. * ====================
+#. Error messages
+#. * ====================
+#. * Error messages
+#. * ====================
+#. Error messages
+#: ../../../../inc/config.php:867 ../../../../inc/config.php:972
+#: ../../../../inc/config.php:963 ../../../../inc/config.php:965
+#: ../../../../inc/config.php:967 ../../../../inc/config.php:983
+msgid "You look like a bot."
+msgstr "Näytät botilta."
+
+#: ../../../../inc/config.php:868 ../../../../inc/config.php:973
+#: ../../../../inc/config.php:964 ../../../../inc/config.php:966
+#: ../../../../inc/config.php:968 ../../../../inc/config.php:984
+msgid "Your browser sent an invalid or no HTTP referer."
+msgstr "Selaimesi ei lähettänyt tai lähetti vääristyneen HTTP-välitteen."
+
+#: ../../../../inc/config.php:869 ../../../../inc/config.php:974
+#: ../../../../inc/config.php:965 ../../../../inc/config.php:967
+#: ../../../../inc/config.php:969 ../../../../inc/config.php:985
+#, php-format
+msgid "The %s field was too long."
+msgstr "%s kenttä oli liian pitkä."
+
+#: ../../../../inc/config.php:870 ../../../../inc/config.php:975
+#: ../../../../inc/config.php:966 ../../../../inc/config.php:968
+#: ../../../../inc/config.php:970 ../../../../inc/config.php:986
+msgid "The body was too long."
+msgstr "Viestin runko oli liian pitkä"
+
+#: ../../../../inc/config.php:871 ../../../../inc/config.php:976
+#: ../../../../inc/config.php:967 ../../../../inc/config.php:969
+#: ../../../../inc/config.php:971 ../../../../inc/config.php:987
+msgid "The body was too short or empty."
+msgstr "Viestin runko oli liian lyhyt tai tyhjä."
+
+#: ../../../../inc/config.php:872 ../../../../inc/config.php:977
+#: ../../../../inc/config.php:968 ../../../../inc/config.php:970
+#: ../../../../inc/config.php:972 ../../../../inc/config.php:988
+msgid "You must upload an image."
+msgstr "Sinun täytyy antaa kuva."
+
+#: ../../../../inc/config.php:873 ../../../../inc/config.php:978
+#: ../../../../inc/config.php:969 ../../../../inc/config.php:971
+#: ../../../../inc/config.php:973 ../../../../inc/config.php:989
+msgid "The server failed to handle your upload."
+msgstr "Serveri ei pystynyt käsittelemään lähetystäsi."
+
+#: ../../../../inc/config.php:874 ../../../../inc/config.php:979
+#: ../../../../inc/config.php:970 ../../../../inc/config.php:972
+#: ../../../../inc/config.php:974 ../../../../inc/config.php:990
+msgid "Unsupported image format."
+msgstr "Tukematon kuvaformaatti."
+
+#: ../../../../inc/config.php:875 ../../../../inc/config.php:980
+#: ../../../../inc/config.php:971 ../../../../inc/config.php:973
+#: ../../../../inc/config.php:975 ../../../../inc/config.php:991
+msgid "Invalid board!"
+msgstr "Väärä lauta!"
+
+#: ../../../../inc/config.php:876 ../../../../inc/config.php:981
+#: ../../../../inc/config.php:972 ../../../../inc/config.php:974
+#: ../../../../inc/config.php:976 ../../../../inc/config.php:992
+msgid "Thread specified does not exist."
+msgstr "Lankaa ei ole olemassa."
+
+#: ../../../../inc/config.php:877 ../../../../inc/config.php:982
+#: ../../../../inc/config.php:973 ../../../../inc/config.php:975
+#: ../../../../inc/config.php:977 ../../../../inc/config.php:993
+msgid "Thread locked. You may not reply at this time."
+msgstr "Lanka lukittu. Et saa vastata."
+
+#: ../../../../inc/config.php:878 ../../../../inc/config.php:983
+#: ../../../../inc/config.php:974 ../../../../inc/config.php:976
+#: ../../../../inc/config.php:978 ../../../../inc/config.php:994
+msgid "Thread has reached its maximum reply limit."
+msgstr "Lanka on ylittänyt bumplimitin."
+
+#: ../../../../inc/config.php:879 ../../../../inc/config.php:984
+#: ../../../../inc/config.php:975 ../../../../inc/config.php:977
+#: ../../../../inc/config.php:979 ../../../../inc/config.php:995
+msgid "Thread has reached its maximum image limit."
+msgstr "Lanka on ylittänyt sallittujen kuvien rajan."
+
+#: ../../../../inc/config.php:880 ../../../../inc/config.php:985
+#: ../../../../inc/config.php:976 ../../../../inc/config.php:978
+#: ../../../../inc/config.php:980 ../../../../inc/config.php:996
+msgid "You didn't make a post."
+msgstr "Et postannut."
+
+#: ../../../../inc/config.php:881 ../../../../inc/config.php:986
+#: ../../../../inc/config.php:977 ../../../../inc/config.php:979
+#: ../../../../inc/config.php:981 ../../../../inc/config.php:997
+msgid "Flood detected; Post discarded."
+msgstr "Floodia havaittu; viestiä ei huomioida."
+
+#: ../../../../inc/config.php:882 ../../../../inc/config.php:987
+#: ../../../../inc/config.php:978 ../../../../inc/config.php:980
+#: ../../../../inc/config.php:982 ../../../../inc/config.php:998
+msgid "Your request looks automated; Post discarded."
+msgstr "Pyyntösi vaikuttaa olevan automatisoitu; viestiä ei huomioida."
+
+#: ../../../../inc/config.php:883 ../../../../inc/config.php:988
+#: ../../../../inc/config.php:979 ../../../../inc/config.php:981
+#: ../../../../inc/config.php:983 ../../../../inc/config.php:999
+msgid "Unoriginal content!"
+msgstr "Ei-alkuperäistä sisältöä!"
+
+#: ../../../../inc/config.php:884 ../../../../inc/config.php:989
+#: ../../../../inc/config.php:980 ../../../../inc/config.php:982
+#: ../../../../inc/config.php:984 ../../../../inc/config.php:1000
+#, php-format
+msgid "Unoriginal content! You have been muted for %d seconds."
+msgstr "Ei-alkuperäistä sisältöä! Sinut on mykistetty %d sekunniksi"
+
+#: ../../../../inc/config.php:885 ../../../../inc/config.php:990
+#: ../../../../inc/config.php:981 ../../../../inc/config.php:983
+#: ../../../../inc/config.php:985 ../../../../inc/config.php:1001
+#, php-format
+msgid "You are muted! Expires in %d seconds."
+msgstr "Olet mykistetty! Loppuu %d sekunnissa."
+
+#: ../../../../inc/config.php:886 ../../../../inc/config.php:991
+#: ../../../../inc/config.php:982 ../../../../inc/config.php:984
+#: ../../../../inc/config.php:986 ../../../../inc/config.php:1002
+#, php-format
+msgid "Your IP address is listed in %s."
+msgstr "IP osoitteesi on listattu %s"
+
+#: ../../../../inc/config.php:887 ../../../../inc/config.php:992
+#: ../../../../inc/config.php:983 ../../../../inc/config.php:985
+#: ../../../../inc/config.php:987 ../../../../inc/config.php:1003
+msgid "Too many links; flood detected."
+msgstr "Liian monta linkkiä; floodia havaittu."
+
+#: ../../../../inc/config.php:888 ../../../../inc/config.php:993
+#: ../../../../inc/config.php:984 ../../../../inc/config.php:986
+#: ../../../../inc/config.php:988 ../../../../inc/config.php:1004
+msgid "Too many cites; post discarded."
+msgstr "Liian monta lainausta; viestiä ei huomioida."
+
+#: ../../../../inc/config.php:889 ../../../../inc/config.php:994
+#: ../../../../inc/config.php:985 ../../../../inc/config.php:987
+#: ../../../../inc/config.php:989 ../../../../inc/config.php:1005
+msgid "Too many cross-board links; post discarded."
+msgstr "Liian monta lautojen välistä linkkiä; postausta ei huomioida."
+
+#: ../../../../inc/config.php:890 ../../../../inc/config.php:995
+#: ../../../../inc/config.php:986 ../../../../inc/config.php:988
+#: ../../../../inc/config.php:990 ../../../../inc/config.php:1006
+msgid "You didn't select anything to delete."
+msgstr "Et valinnut mitään poistettavaksi."
+
+#: ../../../../inc/config.php:891 ../../../../inc/config.php:996
+#: ../../../../inc/config.php:987 ../../../../inc/config.php:989
+#: ../../../../inc/config.php:991 ../../../../inc/config.php:1007
+msgid "You didn't select anything to report."
+msgstr "Et valinnut mitään raportoitavaksi."
+
+#: ../../../../inc/config.php:892 ../../../../inc/config.php:997
+#: ../../../../inc/config.php:988 ../../../../inc/config.php:990
+#: ../../../../inc/config.php:992 ../../../../inc/config.php:1008
+msgid "You can't report that many posts at once."
+msgstr "Et voi raportoida niin monta postausta kerralla."
+
+#: ../../../../inc/config.php:893 ../../../../inc/config.php:998
+#: ../../../../inc/config.php:989 ../../../../inc/config.php:991
+#: ../../../../inc/config.php:993 ../../../../inc/config.php:1009
+msgid "Wrong password…"
+msgstr "Väärä salasana..."
+
+#: ../../../../inc/config.php:894 ../../../../inc/config.php:999
+#: ../../../../inc/config.php:990 ../../../../inc/config.php:992
+#: ../../../../inc/config.php:994 ../../../../inc/config.php:1010
+msgid "Invalid image."
+msgstr "Väärä kuva."
+
+#: ../../../../inc/config.php:895 ../../../../inc/config.php:1000
+#: ../../../../inc/config.php:991 ../../../../inc/config.php:993
+#: ../../../../inc/config.php:995 ../../../../inc/config.php:1011
+msgid "Unknown file extension."
+msgstr "Tuntematon tiedostotyyppi."
+
+#: ../../../../inc/config.php:896 ../../../../inc/config.php:1001
+#: ../../../../inc/config.php:992 ../../../../inc/config.php:994
+#: ../../../../inc/config.php:996 ../../../../inc/config.php:1012
+msgid "Maximum file size: %maxsz% bytes Your file's size: %filesz% bytes"
+msgstr "Maksimi tiedoston koko: %maxsz% bittiä Tiedostosi koko: %filesz% bittiä"
+
+#: ../../../../inc/config.php:897 ../../../../inc/config.php:1002
+#: ../../../../inc/config.php:993 ../../../../inc/config.php:995
+#: ../../../../inc/config.php:997 ../../../../inc/config.php:1013
+msgid "The file was too big."
+msgstr "Tiedosto oli liian suuri"
+
+#: ../../../../inc/config.php:898 ../../../../inc/config.php:1003
+#: ../../../../inc/config.php:994 ../../../../inc/config.php:996
+#: ../../../../inc/config.php:998 ../../../../inc/config.php:1014
+#, php-format
+msgid "That file already exists!"
+msgstr "Tämä tiedosto on jo olemassa!"
+
+#: ../../../../inc/config.php:899 ../../../../inc/config.php:1004
+#: ../../../../inc/config.php:995 ../../../../inc/config.php:997
+#: ../../../../inc/config.php:999 ../../../../inc/config.php:1015
+#, php-format
+msgid "That file already exists in this thread!"
+msgstr "Tuo tiedosto on jo tässä langassa!"
+
+#: ../../../../inc/config.php:900 ../../../../inc/config.php:1005
+#: ../../../../inc/config.php:996 ../../../../inc/config.php:998
+#: ../../../../inc/config.php:1000 ../../../../inc/config.php:1016
+#, php-format
+msgid "You'll have to wait another %s before deleting that."
+msgstr "Sinun täytyy odottaa %s ennenkuin poistat tuon."
+
+#: ../../../../inc/config.php:901 ../../../../inc/config.php:1006
+#: ../../../../inc/config.php:997 ../../../../inc/config.php:999
+#: ../../../../inc/config.php:1001 ../../../../inc/config.php:1017
+msgid "MIME type detection XSS exploit (IE) detected; post discarded."
+msgstr "MIME tyypin XSS hyökkäys (IE) havaittu; postausta ei huomioida."
+
+#: ../../../../inc/config.php:902 ../../../../inc/config.php:1007
+#: ../../../../inc/config.php:998 ../../../../inc/config.php:1000
+#: ../../../../inc/config.php:1002 ../../../../inc/config.php:1018
+msgid "Couldn't make sense of the URL of the video you tried to embed."
+msgstr "Upotteen URLista ei saatu selvää."
+
+#: ../../../../inc/config.php:903 ../../../../inc/config.php:1008
+#: ../../../../inc/config.php:999 ../../../../inc/config.php:1001
+#: ../../../../inc/config.php:1003 ../../../../inc/config.php:1019
+msgid "You seem to have mistyped the verification."
+msgstr "Et kirjoittanut oikein varmistusta."
+
+#. Moderator errors
+#: ../../../../inc/config.php:906 ../../../../inc/config.php:1011
+#: ../../../../inc/config.php:1002 ../../../../inc/config.php:1004
+#: ../../../../inc/config.php:1006 ../../../../inc/config.php:1022
+#, php-format
+msgid ""
+"You are only allowed to unban %s users at a time. You tried to unban %u "
+"users."
+msgstr ""
+
+#: ../../../../inc/config.php:907 ../../../../inc/config.php:1012
+#: ../../../../inc/config.php:1003 ../../../../inc/config.php:1005
+#: ../../../../inc/config.php:1007 ../../../../inc/config.php:1023
+msgid "Invalid username and/or password."
+msgstr ""
+
+#: ../../../../inc/config.php:908 ../../../../inc/config.php:1013
+#: ../../../../inc/config.php:1004 ../../../../inc/config.php:1006
+#: ../../../../inc/config.php:1008 ../../../../inc/config.php:1024
+msgid "You are not a mod…"
+msgstr ""
+
+#: ../../../../inc/config.php:909 ../../../../inc/config.php:1014
+#: ../../../../inc/config.php:1005 ../../../../inc/config.php:1007
+#: ../../../../inc/config.php:1009 ../../../../inc/config.php:1025
+msgid ""
+"Invalid username and/or password. Your user may have been deleted or "
+"changed."
+msgstr ""
+
+#: ../../../../inc/config.php:910 ../../../../inc/config.php:1015
+#: ../../../../inc/config.php:1006 ../../../../inc/config.php:1008
+#: ../../../../inc/config.php:1010 ../../../../inc/config.php:1026
+msgid "Invalid/malformed cookies."
+msgstr ""
+
+#: ../../../../inc/config.php:911 ../../../../inc/config.php:1016
+#: ../../../../inc/config.php:1007 ../../../../inc/config.php:1009
+#: ../../../../inc/config.php:1011 ../../../../inc/config.php:1027
+msgid "Your browser didn't submit an input when it should have."
+msgstr ""
+
+#: ../../../../inc/config.php:912 ../../../../inc/config.php:1017
+#: ../../../../inc/config.php:1008 ../../../../inc/config.php:1010
+#: ../../../../inc/config.php:1012 ../../../../inc/config.php:1028
+#, php-format
+msgid "The %s field is required."
+msgstr ""
+
+#: ../../../../inc/config.php:913 ../../../../inc/config.php:1018
+#: ../../../../inc/config.php:1009 ../../../../inc/config.php:1011
+#: ../../../../inc/config.php:1013 ../../../../inc/config.php:1029
+#, php-format
+msgid "The %s field was invalid."
+msgstr ""
+
+#: ../../../../inc/config.php:914 ../../../../inc/config.php:1019
+#: ../../../../inc/config.php:1010 ../../../../inc/config.php:1012
+#: ../../../../inc/config.php:1014 ../../../../inc/config.php:1030
+#, php-format
+msgid "There is already a %s board."
+msgstr ""
+
+#: ../../../../inc/config.php:915 ../../../../inc/config.php:1020
+#: ../../../../inc/config.php:1011 ../../../../inc/config.php:1013
+#: ../../../../inc/config.php:1015 ../../../../inc/config.php:1031
+msgid "You don't have permission to do that."
+msgstr ""
+
+#: ../../../../inc/config.php:916 ../../../../inc/config.php:1021
+#: ../../../../inc/config.php:1012 ../../../../inc/config.php:1014
+#: ../../../../inc/config.php:1016 ../../../../inc/config.php:1032
+msgid "That post doesn't exist…"
+msgstr ""
+
+#: ../../../../inc/config.php:917 ../../../../inc/config.php:1022
+#: ../../../../inc/config.php:1013 ../../../../inc/config.php:1015
+#: ../../../../inc/config.php:1017 ../../../../inc/config.php:1033
+msgid "Page not found."
+msgstr ""
+
+#: ../../../../inc/config.php:918 ../../../../inc/config.php:1023
+#: ../../../../inc/config.php:1014 ../../../../inc/config.php:1016
+#: ../../../../inc/config.php:1018 ../../../../inc/config.php:1034
+#, php-format
+msgid "That mod already exists!"
+msgstr ""
+
+#: ../../../../inc/config.php:919 ../../../../inc/config.php:1024
+#: ../../../../inc/config.php:1015 ../../../../inc/config.php:1017
+#: ../../../../inc/config.php:1019 ../../../../inc/config.php:1035
+msgid "That theme doesn't exist!"
+msgstr ""
+
+#: ../../../../inc/config.php:920 ../../../../inc/config.php:1025
+#: ../../../../inc/config.php:1016 ../../../../inc/config.php:1018
+#: ../../../../inc/config.php:1020 ../../../../inc/config.php:1036
+msgid "Invalid security token! Please go back and try again."
+msgstr ""
+
+#. Default public ban message. In public ban messages, %length% is replaced
+#. with "for x days" or
+#. "permanently" (with %LENGTH% being the uppercase equivalent).
+#. Default public ban message. In public ban messages, %length% is replaced
+#. with "for x days" or
+#. "permanently" (with %LENGTH% being the uppercase equivalent).
+#: ../../../../inc/config.php:1086 ../../../../inc/config.php:1189
+#: ../../../../inc/config.php:1180 ../../../../inc/config.php:1185
+#: ../../../../inc/config.php:1187 ../../../../inc/config.php:1203
+msgid "USER WAS BANNED FOR THIS POST"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:66 ../../../../inc/mod/pages.php:64
+msgid "Confirm action"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:110 ../../../../inc/mod/pages.php:108
+msgid "Could not find current version! (Check .installed)"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:162
+msgid "Dashboard"
+msgstr "Hallinta"
+
+#: ../../../../inc/mod/pages.php:267 ../../../../inc/mod/pages.php:265
+msgid "There are no boards to search!"
+msgstr ""
+
+#. $results now contains the search results
+#: ../../../../inc/mod/pages.php:335 ../../../../inc/mod/pages.php:334
+msgid "Search results"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:436 ../../../../inc/mod/pages.php:438
+msgid "Edit board"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:486 ../../../../inc/mod/pages.php:491
+msgid "Couldn't open board after creation."
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:506 ../../../../inc/mod/pages.php:511
+msgid "New board"
+msgstr ""
+
+#. line 37
+#: ../../../../inc/mod/pages.php:553 ../../../../inc/mod/pages.php:562
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:121
+msgid "Noticeboard"
+msgstr "Tiedotteet"
+
+#: ../../../../inc/mod/pages.php:614 ../../../../inc/mod/pages.php:631
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:194
+msgid "News"
+msgstr "Uutiset"
+
+#: ../../../../inc/mod/pages.php:654 ../../../../inc/mod/pages.php:681
+#: ../../../../inc/mod/pages.php:671 ../../../../inc/mod/pages.php:698
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:300
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:75
+msgid "Moderation log"
+msgstr "Moderaatio logi"
+
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 104
+#. line 20
+#. line 18
+#. line 104
+#. line 20
+#. line 18
+#: ../../../../inc/mod/pages.php:838 ../../../../inc/mod/pages.php:852
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:275
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:71
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:64
+msgid "IP"
+msgstr ""
+
+#. line 171
+#: ../../../../inc/mod/pages.php:848 ../../../../inc/mod/pages.php:1367
+#: ../../../../inc/mod/pages.php:862 ../../../../inc/mod/pages.php:1432
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:440
+msgid "New ban"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:931 ../../../../inc/mod/pages.php:914
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:256
+msgid "Ban list"
+msgstr "Bannit"
+
+#: ../../../../inc/mod/pages.php:1105 ../../../../inc/mod/pages.php:1165
+msgid "Move reply"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1131 ../../../../inc/mod/pages.php:1191
+msgid "Target and source board are the same."
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1296 ../../../../inc/mod/pages.php:1357
+msgid "Impossible to move thread; there is only one board."
+msgstr ""
+
+#. line 39
+#: ../../../../inc/mod/pages.php:1300 ../../../../inc/mod/pages.php:1361
+#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:114
+msgid "Move thread"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1698 ../../../../inc/mod/pages.php:1751
+#: ../../../../inc/mod/pages.php:1775
+msgid "Edit user"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1764 ../../../../inc/mod/pages.php:1855
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:274
+msgid "Manage users"
+msgstr "Hallitse käyttäjiä"
+
+#. deleted?
+#: ../../../../inc/mod/pages.php:1826 ../../../../inc/mod/pages.php:1899
+#: ../../../../inc/mod/pages.php:1945 ../../../../inc/mod/pages.php:2021
+msgid "New PM for"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1830 ../../../../inc/mod/pages.php:1952
+msgid "Private message"
+msgstr ""
+
+#. line 68
+#: ../../../../inc/mod/pages.php:1851 ../../../../inc/mod/pages.php:1973
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:200
+msgid "PM inbox"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1963 ../../../../inc/mod/pages.php:1967
+#: ../../../../inc/mod/pages.php:2090 ../../../../inc/mod/pages.php:2094
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:309
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:115
+msgid "Rebuild"
+msgstr "Rakenna uudelleen"
+
+#: ../../../../inc/mod/pages.php:2043 ../../../../inc/mod/pages.php:2179
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:238
+msgid "Report queue"
+msgstr "Ilmiannot"
+
+#: ../../../../inc/mod/pages.php:2111 ../../../../inc/mod/pages.php:2210
+#: ../../../../inc/mod/pages.php:2256 ../../../../inc/mod/pages.php:2350
+msgid "Config editor"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2226 ../../../../inc/mod/pages.php:2367
+msgid "Themes directory doesn't exist!"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2228 ../../../../inc/mod/pages.php:2369
+msgid "Cannot open themes directory; check permissions."
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2242 ../../../../inc/mod/pages.php:2388
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:291
+msgid "Manage themes"
+msgstr "Hallitse teemoja"
+
+#: ../../../../inc/mod/pages.php:2307 ../../../../inc/mod/pages.php:2453
+#, php-format
+msgid "Installed theme: %s"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2318 ../../../../inc/mod/pages.php:2464
+#, php-format
+msgid "Configuring theme: %s"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2346 ../../../../inc/mod/pages.php:2493
+#, php-format
+msgid "Rebuilt theme: %s"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2385 ../../../../inc/mod/pages.php:2532
+msgid "Debug: Anti-spam"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2409 ../../../../inc/mod/pages.php:2566
+msgid "Debug: Recent posts"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2433 ../../../../inc/mod/pages.php:2590
+msgid "Debug: SQL"
+msgstr ""
+
+#. Print error
+#: ../../../../inc/database.php:72 ../../../../inc/database.php:94
+msgid "Database error: "
+msgstr ""
+
+#: ../../../../banned.php:4
+msgid "Banned?"
+msgstr ""
+
+#: ../../../../banned.php:5
+msgid "You are not banned."
+msgstr ""
+
+#. line 6
+#: ../../../../templates/cache/3c/80/0ebbee302f4fad8d0d7f13e62db5.php:41
+#: ../../../../templates/cache/e1/4c/f58701138b0d44bc13ada3e46deec60da83d42ff4f39720ccd6955b641f7.php:44
+msgid "Go back"
+msgstr ""
+
+#. line 13
+#: ../../../../templates/cache/3c/80/0ebbee302f4fad8d0d7f13e62db5.php:56
+#: ../../../../templates/cache/e1/4c/f58701138b0d44bc13ada3e46deec60da83d42ff4f39720ccd6955b641f7.php:59
+msgid "Error information"
+msgstr ""
+
+#. line 2
+#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:22
+#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:25
+msgid "Delete Post"
+msgstr "Poista Viesti"
+
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 84
+#. line 3
+#. line 97
+#. line 3
+#. line 97
+#. line 3
+#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:26
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:250
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:253
+#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:29
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:290
+msgid "File"
+msgstr "Tiedosto"
+
+#. line 132
+#. line 14
+#. line 132
+#. line 14
+#. line 131
+#. line 14
+#. line 131
+#. line 14
+#. line 131
+#. line 14
+#. line 131
+#. line 21
+#. line 14
+#. line 131
+#. line 14
+#. line 144
+#. line 14
+#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:28
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:364
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:367
+#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:31
+#: ../../../../templates/cache/00/31/a027d7b6d57819b6e43e58620f3f4c76194dd75db65fc888a5053ce62803.php:48
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:363
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:69
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:400
+msgid "Password"
+msgstr "Salasana"
+
+#. line 8
+#. line 108
+#. line 32
+#. line 9
+#. line 23
+#. line 8
+#. line 108
+#. line 32
+#. line 8
+#. line 32
+#. line 23
+#. line 8
+#. line 108
+#. line 32
+#. line 9
+#. line 23
+#. line 8
+#. line 5
+#. line 8
+#. line 108
+#. line 32
+#. line 9
+#. line 23
+#. line 5
+#. line 8
+#. line 108
+#. line 32
+#. line 9
+#. line 23
+#. line 48
+#. line 5
+#. line 8
+#. line 108
+#. line 32
+#. line 9
+#. line 23
+#. line 48
+#. line 5
+#. line 8
+#. line 108
+#. line 32
+#. line 5
+#. line 8
+#. line 108
+#. line 32
+#. line 23
+#. line 5
+#. line 8
+#. line 108
+#. line 32
+#. line 23
+#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:39
+#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:42
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:285
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:99
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:43
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:77
+#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:37
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:141
+msgid "Reason"
+msgstr "Syy"
+
+#. line 10
+#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:44
+#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:47
+msgid "Report"
+msgstr "Report"
+
+#: ../../../../templates/cache/f5/e3/343716327c6183713f70a3fb57f1.php:149
+#: ../../../../templates/cache/aa/f6/f10fd83961bcd8c947af6ddf919d.php:134
+#: ../../../../templates/cache/62/8c/21348d46377c3e1b3f8c476ba376.php:65
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:137
+#: ../../../../templates/cache/26/b3/eb11457d26f281883c21fad69f55f2c85f7cde1e4986db8692a12aaf72a5.php:153
+#: ../../../../templates/cache/e5/67/00152f100a684a6ff580e1afded8e907bdea04b4818d725ebfeb103d70d9.php:68
+#: ../../../../templates/cache/e5/67/00152f100a684a6ff580e1afded8e907bdea04b4818d725ebfeb103d70d9.php:71
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:120
+#: ../../../../templates/cache/26/b3/eb11457d26f281883c21fad69f55f2c85f7cde1e4986db8692a12aaf72a5.php:138
+msgid "Return to dashboard"
+msgstr "Palaa hallintaan"
+
+#. line 39
+#. line 33
+#: ../../../../templates/cache/aa/f6/f10fd83961bcd8c947af6ddf919d.php:143
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:146
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:134
+msgid "Posting mode: Reply"
+msgstr "Viestin tyyppi: Vastaus"
+
+#: ../../../../templates/cache/aa/f6/f10fd83961bcd8c947af6ddf919d.php:147
+#: ../../../../templates/cache/aa/f6/f10fd83961bcd8c947af6ddf919d.php:200
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:150
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:203
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:138
+#: ../../../../templates/cache/b8/d9/05d4f2709538c393e80cdee33c24efe8d6fd13e68df2f5b3493356ef42e3.php:186
+msgid "Return"
+msgstr "Takaisin"
+
+#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:61
+#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:64
+msgid "(No news to show.)"
+msgstr ""
+
+#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:85
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:146
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:116
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:144
+#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:88
+msgid "no subject"
+msgstr "ei aihetta"
+
+#. line 44
+#. line 56
+#. line 44
+#. line 56
+#. line 44
+#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:91
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:125
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:153
+#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:94
+msgid "by"
+msgstr ""
+
+#. line 50
+#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:95
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:146
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:157
+#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:98
+msgid "at"
+msgstr ""
+
+#. line 28
+#. line 26
+#: ../../../../templates/cache/4b/3e/915cc5ac5fe144c331207c656528.php:99
+#: ../../../../templates/cache/41/57/9143de5f74d921965e5ff24e0f1ce44a18317fd4937f5d8d65f56337acf3.php:102
+#: ../../../../templates/cache/41/57/9143de5f74d921965e5ff24e0f1ce44a18317fd4937f5d8d65f56337acf3.php:88
+msgid "1 reply"
+msgid_plural "%count% replies"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:102
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:105
+msgid "File:"
+msgstr ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:115
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:127
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:165
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:206
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:118
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:130
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:168
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:209
+#: ../../../../templates/cache/9b/6a/0d0c5add399e8dfbd5c8c097ea68815306312248498dae4682282190e561.php:128
+msgid "Spoiler Image"
+msgstr "Spoiler Image"
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:530
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:495
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:506
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:532
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:591
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:304
+msgid "Reply"
+msgstr "Vastaa"
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:544
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:509
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:520
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:546
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:605
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:318
+msgid "View All"
+msgstr ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:561
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:526
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:537
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:563
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:622
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:335
+msgid "Last 1 Post"
+msgid_plural "Last %count% Posts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:598
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:563
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:574
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:600
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:659
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:372
+msgid "1 post"
+msgid_plural "%count% posts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:604
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:569
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:580
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:116
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:606
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:665
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:378
+msgid "and"
+msgstr ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:616
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:581
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:592
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:618
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:677
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:390
+msgid "1 image reply"
+msgid_plural "%count% image replies"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:621
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:586
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:597
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:623
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:682
+#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:395
+msgid "omitted. Click reply to view."
+msgstr ""
+
+#. line 7
+#. line 14
+#. line 7
+#. line 14
+#. line 8
+#. line 14
+#. line 7
+#. line 8
+#. line 14
+#. line 8
+#. line 14
+#. line 8
+#. line 14
+#. line 7
+#. line 8
+#. line 7
+#. line 14
+#. line 8
+#. line 14
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:30
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:66
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:38
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:42
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:48
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:69
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:33
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:40
+msgid "Name"
+msgstr "Nimi"
+
+#. line 15
+#. line 24
+#. line 15
+#. line 24
+#. line 15
+#. line 24
+#. line 15
+#. line 24
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:44
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:88
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:91
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:47
+msgid "Email"
+msgstr "Email"
+
+#. line 23
+#. line 46
+#. line 23
+#. line 46
+#. line 12
+#. line 24
+#. line 46
+#. line 23
+#. line 12
+#. line 46
+#. line 12
+#. line 46
+#. line 12
+#. line 46
+#. line 23
+#. line 12
+#. line 24
+#. line 46
+#. line 12
+#. line 46
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:58
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:147
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:48
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:76
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:150
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:61
+msgid "Subject"
+msgstr "Aihe"
+
+#. line 27
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:68
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:71
+msgid "Update"
+msgstr ""
+
+#. line 32
+#. line 57
+#. line 32
+#. line 57
+#. line 32
+#. line 57
+#. line 32
+#. line 57
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:76
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:178
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:181
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:79
+msgid "Comment"
+msgstr "Viesti"
+
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:97
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:100
+msgid "Currently editing raw HTML."
+msgstr ""
+
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:105
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:108
+msgid "Edit markup instead?"
+msgstr ""
+
+#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:115
+#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:118
+msgid "Edit raw HTML instead?"
+msgstr ""
+
+#. line 73
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:226
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:229
+msgid "Verification"
+msgstr "Varmennus"
+
+#. line 90
+#. line 103
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:262
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:265
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:302
+msgid "Or URL"
+msgstr ""
+
+#. line 100
+#. line 113
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:282
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:285
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:322
+msgid "Embed"
+msgstr "Upote"
+
+#. line 112
+#. line 111
+#. line 124
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:306
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:309
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:305
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:342
+msgid "Flags"
+msgstr "Arvot"
+
+#. line 116
+#. line 117
+#. line 116
+#. line 117
+#. line 116
+#. line 117
+#. line 116
+#. line 117
+#. line 115
+#. line 116
+#. line 115
+#. line 116
+#. line 115
+#. line 116
+#. line 115
+#. line 116
+#. line 115
+#. line 116
+#. line 115
+#. line 116
+#. line 115
+#. line 116
+#. line 128
+#. line 129
+#. line 128
+#. line 129
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:316
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:320
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:319
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:323
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:315
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:352
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:356
+msgid "Sticky"
+msgstr "Sticky"
+
+#. line 120
+#. line 121
+#. line 120
+#. line 121
+#. line 120
+#. line 121
+#. line 120
+#. line 121
+#. line 119
+#. line 120
+#. line 119
+#. line 120
+#. line 119
+#. line 120
+#. line 119
+#. line 120
+#. line 119
+#. line 120
+#. line 119
+#. line 120
+#. line 119
+#. line 120
+#. line 132
+#. line 133
+#. line 132
+#. line 133
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:330
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:334
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:333
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:337
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:329
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:366
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:370
+msgid "Lock"
+msgstr "Lukko"
+
+#. line 124
+#. line 125
+#. line 124
+#. line 125
+#. line 124
+#. line 125
+#. line 124
+#. line 125
+#. line 123
+#. line 124
+#. line 123
+#. line 124
+#. line 123
+#. line 124
+#. line 123
+#. line 124
+#. line 123
+#. line 124
+#. line 123
+#. line 124
+#. line 123
+#. line 124
+#. line 136
+#. line 137
+#. line 136
+#. line 137
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:344
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:348
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:347
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:351
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:343
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:380
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:384
+msgid "Raw HTML"
+msgstr "Raaka HTML"
+
+#. line 137
+#. line 136
+#. line 141
+#. line 154
+#: ../../../../templates/cache/0c/37/9331df01df7c2986d77a02d3beb0.php:374
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:377
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:373
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:378
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:415
+msgid "(For file deletion.)"
+msgstr "(Tiedoston poistoon.)"
+
+#: ../../../../search.php:5
+msgid "Post search is disabled"
+msgstr ""
+
+#: ../../../../search.php:25 ../../../../search.php:31
+#: ../../../../search.php:29 ../../../../search.php:35
+msgid "Wait a while before searching again, please."
+msgstr ""
+
+#: ../../../../search.php:131 ../../../../search.php:135
+msgid "Query too broad."
+msgstr ""
+
+#: ../../../../search.php:152 ../../../../search.php:156
+#, php-format
+msgid "%d result in"
+msgid_plural "%d results in"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../search.php:163 ../../../../search.php:167
+msgid "No results."
+msgstr ""
+
+#. line 115
+#. line 16
+#. line 115
+#. line 16
+#. line 115
+#. line 16
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#. line 2
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#. line 2
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#. line 115
+#. line 16
+#. line 115
+#. line 16
+#. line 2
+#. line 13
+#: ../../../../search.php:168
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:334
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:83
+#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:25
+#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:66
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:25
+#: ../../../../search.php:172
+msgid "Search"
+msgstr "Etsi"
+
+#: ../../../../inc/mod/pages.php:939
+msgid "Ban appeal not found!"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:989
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:265
+msgid "Ban appeals"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1833
+msgid "New user"
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:1888
+msgid "Impossible to promote/demote user."
+msgstr ""
+
+#: ../../../../inc/mod/pages.php:2612
+msgid "Debug: APC"
+msgstr ""
+
+#: ../../../../inc/config.php:1026 ../../../../inc/config.php:1017
+#: ../../../../inc/config.php:1019 ../../../../inc/config.php:1021
+#: ../../../../inc/config.php:1037
+msgid ""
+"Your code contained PHP syntax errors. Please go back and correct them. PHP "
+"says: "
+msgstr ""
+
+#. line 2
+#. line 6
+#. line 2
+#. line 6
+#. line 2
+#. line 46
+#. line 6
+#. line 2
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:25
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:38
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:139
+msgid "Boards"
+msgstr "Laudat"
+
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:79
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:215
+msgid "edit"
+msgstr ""
+
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:97
+msgid "Create new board"
+msgstr "Luo uusi lauta"
+
+#. line 32
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:108
+msgid "Messages"
+msgstr ""
+
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:188
+msgid "View all noticeboard entries"
+msgstr ""
+
+#. line 76
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:222
msgid "Administration"
msgstr "Hallinta"
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:282
+msgid "Change password"
+msgstr ""
+
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:318
+msgid "Configuration"
+msgstr "Asetukset"
+
+#. line 127
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:357
+msgid "Other"
+msgstr ""
+
+#. line 139
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:391
+msgid "Debug"
+msgstr ""
+
+#. line 141
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:396
+msgid "Anti-spam"
+msgstr ""
+
+#. line 142
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:400
+msgid "Recent posts"
+msgstr ""
+
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:407
+msgid "SQL"
+msgstr ""
+
+#. line 164
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:446
+msgid "User account"
+msgstr ""
+
+#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:454
+msgid "Logout"
+msgstr "Kirjaudu ulos"
+
+#. line 3
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:27
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:27
+msgid "New post"
+msgstr ""
+
+#. line 16
+#. line 28
+#. line 16
+#. line 28
+#. line 16
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:55
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:83
+msgid "Body"
+msgstr "Viesti"
+
+#. line 21
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:63
+msgid "Post to noticeboard"
+msgstr "Lähetä tiedotteisiin"
+
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:90
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:118
+msgid "delete"
+msgstr ""
+
+#: ../../../../templates/cache/39/f9/8228f77b382baf1d61c1215dc0f0236e4cdf8cc5e938259785cf3e67d1ca.php:138
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:123
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:405
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:504
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:251
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:197
+#: ../../../../templates/cache/f8/05/d647b76d6ba28842b313895b0d435295026f1912dc49639bd64e3b42eba3.php:70
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:42
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:67
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:99
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:345
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:415
+msgid "deleted?"
+msgstr ""
+
+#. line 33
+#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:91
+msgid "Post news entry"
+msgstr ""
+
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 15
+#. line 67
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 67
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 15
+#. line 3
+#. line 67
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 15
+#. line 67
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 15
+#. line 3
+#. line 67
+#. line 17
+#. line 54
+#. line 133
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 15
+#. line 3
+#. line 67
+#. line 17
+#. line 54
+#. line 133
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 67
+#. line 24
+#. line 63
+#. line 152
+#. line 182
+#. line 67
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:81
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:186
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:391
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:464
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:67
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:183
+#: ../../../../templates/cache/f8/05/d647b76d6ba28842b313895b0d435295026f1912dc49639bd64e3b42eba3.php:26
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:59
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:165
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:371
+msgid "Staff"
+msgstr "Moderaattori"
+
+#. line 25
+#. line 68
+#. line 25
+#. line 68
+#. line 25
+#. line 68
+#. line 25
+#. line 68
+#. line 25
+#. line 68
+#. line 18
+#. line 25
+#. line 68
+#. line 18
+#. line 25
+#. line 68
+#. line 25
+#. line 68
+#. line 25
+#. line 68
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:85
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:197
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:63
+msgid "Note"
+msgstr ""
+
+#. line 26
+#. line 22
+#. line 26
+#. line 19
+#. line 26
+#. line 19
+#. line 26
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:89
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:79
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:67
+msgid "Date"
+msgstr ""
+
+#. line 25
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:96
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:88
+msgid "Actions"
+msgstr "Toiminto"
+
+#. line 49
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:154
+msgid "remove"
+msgstr ""
+
+#. line 76
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:208
+msgid "New note"
+msgstr ""
+
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#. line 94
+#. line 7
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:251
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:36
+msgid "Status"
+msgstr ""
+
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:259
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:44
+msgid "Expired"
+msgstr ""
+
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:265
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:50
+msgid "Active"
+msgstr ""
+
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:299
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:91
+msgid "no reason"
+msgstr ""
+
+#. line 118
+#. line 184
+#. line 65
+#. line 10
+#. line 33
+#. line 118
+#. line 184
+#. line 65
+#. line 33
+#. line 118
+#. line 184
+#. line 65
+#. line 10
+#. line 6
+#. line 33
+#. line 3
+#. line 118
+#. line 184
+#. line 65
+#. line 10
+#. line 33
+#. line 3
+#. line 118
+#. line 184
+#. line 65
+#. line 10
+#. line 6
+#. line 33
+#. line 49
+#. line 136
+#. line 3
+#. line 95
+#. line 118
+#. line 184
+#. line 65
+#. line 10
+#. line 6
+#. line 33
+#. line 49
+#. line 136
+#. line 3
+#. line 118
+#. line 184
+#. line 65
+#. line 3
+#. line 118
+#. line 184
+#. line 65
+#. line 33
+#. line 3
+#. line 118
+#. line 184
+#. line 65
+#. line 33
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:309
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:472
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:160
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:47
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:101
+#: ../../../../templates/cache/f8/05/d647b76d6ba28842b313895b0d435295026f1912dc49639bd64e3b42eba3.php:38
+#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:26
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:145
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:383
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:263
+msgid "Board"
+msgstr "Lauta"
+
+#. line 71
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:323
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:169
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:133
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:115
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:73
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:100
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:227
+msgid "all boards"
+msgstr "kaikki laudat"
+
+#. line 128
+#. line 11
+#. line 43
+#. line 128
+#. line 43
+#. line 128
+#. line 11
+#. line 43
+#. line 128
+#. line 11
+#. line 43
+#. line 128
+#. line 11
+#. line 43
+#. line 50
+#. line 128
+#. line 11
+#. line 43
+#. line 50
+#. line 128
+#. line 43
+#. line 128
+#. line 43
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:333
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:51
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:125
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:149
+msgid "Set"
+msgstr "Aseta"
+
+#. line 132
+#. line 13
+#. line 47
+#. line 132
+#. line 47
+#. line 132
+#. line 13
+#. line 47
+#. line 132
+#. line 13
+#. line 47
+#. line 132
+#. line 13
+#. line 47
+#. line 52
+#. line 132
+#. line 13
+#. line 47
+#. line 52
+#. line 132
+#. line 47
+#. line 132
+#. line 47
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:343
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:59
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:135
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:157
+msgid "Expires"
+msgstr "Vanhenee"
+
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:357
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:173
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:149
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:155
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:267
+msgid "never"
+msgstr ""
+
+#. line 142
+#. line 14
+#. line 57
+#. line 142
+#. line 57
+#. line 142
+#. line 14
+#. line 57
+#. line 142
+#. line 14
+#. line 57
+#. line 142
+#. line 14
+#. line 57
+#. line 53
+#. line 142
+#. line 14
+#. line 57
+#. line 53
+#. line 142
+#. line 57
+#. line 142
+#. line 57
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:367
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:63
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:159
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:161
+msgid "Seen"
+msgstr ""
+
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:375
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:201
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:167
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:295
+msgid "Yes"
+msgstr ""
+
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:381
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:207
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:173
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:301
+msgid "No"
+msgstr ""
+
+#. line 163
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:419
+msgid "Remove ban"
+msgstr ""
+
+#. line 183
+#. line 5
+#. line 183
+#. line 5
+#. line 135
+#. line 94
+#. line 183
+#. line 5
+#. line 135
+#. line 183
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:468
+#: ../../../../templates/cache/f8/05/d647b76d6ba28842b313895b0d435295026f1912dc49639bd64e3b42eba3.php:34
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:379
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:259
+msgid "Time"
+msgstr ""
+
+#. line 185
+#. line 89
+#. line 185
+#. line 89
+#. line 185
+#. line 7
+#. line 89
+#. line 185
+#. line 89
+#. line 185
+#. line 7
+#. line 89
+#. line 137
+#. line 96
+#. line 185
+#. line 7
+#. line 89
+#. line 137
+#. line 185
+#. line 89
+#. line 185
+#. line 89
+#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:476
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:234
+#: ../../../../templates/cache/f8/05/d647b76d6ba28842b313895b0d435295026f1912dc49639bd64e3b42eba3.php:42
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:387
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:267
+msgid "Action"
+msgstr "Tapahtuma"
+
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:73
+msgid "(or subnet)"
+msgstr ""
+
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:88
+msgid "hidden"
+msgstr ""
+
+#. line 41
+#. line 27
+#. line 41
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:117
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:92
+msgid "Message"
+msgstr ""
+
+#. line 46
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:133
+msgid "public; attached to post"
+msgstr ""
+
+#. line 58
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:150
+msgid "Length"
+msgstr ""
+
+#. line 88
+#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:212
+msgid "New Ban"
+msgstr ""
+
+#. line 2
+#. line 5
+#. line 2
+#. line 5
+#. line 2
+#. line 5
+#. line 2
+#. line 5
+#. line 2
+#. line 5
+#. line 2
+#. line 5
+#. line 2
+#. line 5
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:25
+#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:31
+msgid "Phrase:"
+msgstr "Lause tai sana:"
+
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:38
+msgid "Posts"
+msgstr ""
+
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:49
+msgid "IP address notes"
+msgstr ""
+
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:62
+msgid "Bans"
+msgstr ""
+
+#. line 18
+#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:88
+msgid ""
+"(Search is case-insensitive and based on keywords. To match exact phrases, "
+"use \"quotes\". Use an asterisk (*) for wildcard.)"
+msgstr ""
+
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:25
+msgid "There are no active bans."
+msgstr ""
+
+#. line 8
+#. line 47
+#. line 8
+#. line 47
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:39
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:137
+msgid "IP address/mask"
+msgstr ""
+
+#. line 12
+#. line 51
+#. line 12
+#. line 51
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:55
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:153
+msgid "Duration"
+msgstr ""
+
+#. line 92
+#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:269
+msgid "Unban selected"
+msgstr ""
+
+#. line 6
+#. line 4
+#. line 6
+#. line 4
+#. line 11
+#. line 6
+#. line 4
+#. line 6
+#: ../../../../templates/cache/00/31/a027d7b6d57819b6e43e58620f3f4c76194dd75db65fc888a5053ce62803.php:34
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:30
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:45
+msgid "Username"
+msgstr "Käyttäjänimi"
+
+#. line 23
+#: ../../../../templates/cache/00/31/a027d7b6d57819b6e43e58620f3f4c76194dd75db65fc888a5053ce62803.php:60
+msgid "Continue"
+msgstr "Jatka"
+
+#. line 80
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:210
+msgid "Appeal time"
+msgstr ""
+
+#. line 84
+#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:220
+msgid "Appeal reason"
+msgstr ""
+
+#: ../../../../templates/cache/7d/63/b6fd83bf4ed7f6031a2b3373b997d2d40617bf98899fe672a0aae48520c5.php:31
+msgid "There are no reports."
+msgstr ""
+
+#: ../../../../post.php:802 ../../../../post.php:811 ../../../../post.php:825
+msgid "That ban doesn't exist or is not for you."
+msgstr ""
+
+#: ../../../../post.php:806 ../../../../post.php:815 ../../../../post.php:829
+msgid "You cannot appeal a ban of this length."
+msgstr ""
+
+#: ../../../../post.php:813 ../../../../post.php:822 ../../../../post.php:836
+msgid "You cannot appeal this ban again."
+msgstr ""
+
+#: ../../../../post.php:818 ../../../../post.php:827 ../../../../post.php:841
+msgid "There is already a pending appeal for this ban."
+msgstr ""
+
+#: ../../../../inc/image.php:24 ../../../../inc/image.php:62
+msgid "Unsupported file format: "
+msgstr ""
+
+#: ../../../../inc/image.php:282 ../../../../inc/image.php:288
+msgid "Failed to redraw image!"
+msgstr ""
+
+#: ../../../../inc/image.php:324 ../../../../inc/image.php:343
+#: ../../../../inc/image.php:368 ../../../../inc/image.php:342
+#: ../../../../inc/image.php:366
+msgid "Failed to resize image!"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:35
+msgid "You were banned! ;_;"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:41
+msgid "You are banned! ;_;"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:52
+msgid "You were banned from"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:58
+msgid "You have been banned from"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:82
+msgid "for the following reason:"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:88
+msgid "for an unspecified reason."
+msgstr ""
+
+#. line 32
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:110
+msgid "Your ban was filed on"
+msgstr ""
+
+#. line 51
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:123
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:156
+msgid "has since expired. Refresh the page to continue."
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:129
+msgid "expires"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:133
+msgid "from now, which is on"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:183
+msgid "will not expire"
+msgstr ""
+
+#. line 78
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:192
+msgid "Your IP address is"
+msgstr ""
+
+#. line 86
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:215
+msgid "You were banned for the following post on"
+msgstr ""
+
+#. line 95
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:239
+msgid "You submitted an appeal for this ban on"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:245
+msgid "It is still pending"
+msgstr ""
+
+#. line 101
+#. line 112
+#. line 101
+#. line 112
+#. line 101
+#. line 112
+#. line 101
+#. line 112
+#. line 101
+#. line 112
+#. line 101
+#. line 112
+#. line 101
+#. line 112
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:257
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:289
+msgid "You appealed this ban on"
+msgstr ""
+
+#. line 103
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:265
+msgid "and it was denied. You may not appeal this ban again."
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:272
+msgid ""
+"You have submitted the maximum number of ban appeals allowed. You may not "
+"appeal this ban again."
+msgstr ""
+
+#. line 114
+#. line 121
+#. line 114
+#. line 121
+#. line 114
+#. line 121
+#. line 114
+#. line 121
+#. line 114
+#. line 121
+#. line 114
+#. line 121
+#. line 114
+#. line 121
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:297
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:318
+msgid "and it was denied."
+msgstr ""
+
+#. line 116
+#. line 123
+#. line 116
+#. line 123
+#. line 116
+#. line 123
+#. line 116
+#. line 123
+#. line 116
+#. line 123
+#. line 116
+#. line 123
+#. line 116
+#. line 123
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:302
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:323
+msgid "You may appeal this ban again. Please enter your reasoning below."
+msgstr ""
+
+#. line 119
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:310
+msgid "You last appealed this ban on"
+msgstr ""
+
+#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:332
+msgid "You may appeal this ban. Please enter your reasoning below."
+msgstr ""
+
+#. line 4
+#. line 16
+#. line 134
+#. line 93
+#. line 4
+#. line 16
+#. line 134
+#: ../../../../templates/cache/f8/05/d647b76d6ba28842b313895b0d435295026f1912dc49639bd64e3b42eba3.php:30
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:55
+#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:375
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:255
+msgid "IP address"
+msgstr "IP osoite"
+
+#. line 3
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:26
+msgid "ID"
+msgstr ""
+
+#. line 5
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:34
+msgid "Type"
+msgstr "Tyyppi"
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:45
+msgid "Last action"
+msgstr "Viimeinen tapahtuma"
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:80
+msgid "Unknown"
+msgstr ""
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:94
+msgid "none"
+msgstr ""
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:174
+msgid "Promote"
+msgstr ""
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:187
+msgid "Demote"
+msgstr ""
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:191
+msgid "Are you sure you want to demote yourself?"
+msgstr ""
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:204
+msgid "log"
+msgstr ""
+
+#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:226
+msgid "PM"
+msgstr ""
+
+#. line 6
+#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:36
+msgid "Thread ID"
+msgstr ""
+
+#. line 14
+#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:51
+msgid "Leave shadow thread"
+msgstr ""
+
+#. line 18
+#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:58
+msgid "locks thread; replies to it with a link."
+msgstr ""
+
+#. line 22
+#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:65
+msgid "Target board"
+msgstr ""
+
+#. line 8
+#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:40
+msgid "Select board"
+msgstr ""
+
+#. line 17
+#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:73
+msgid ""
+"Search is case-insensitive and based on keywords. To match exact phrases, "
+"use \"quotes\". Use an asterisk (*) for wildcard.
You may apply the following filters to your searches: "
+"id, thread, subject, and "
+"name. To apply a filter, simply add to your query, for "
+"example, name:Anonymous or subject:\"Some Thread\". "
+"Wildcards cannot be used in filters."
+msgstr ""
+
+#. line 2
+#: ../../../../templates/cache/57/a7/c0a734e494c78acfc595f033a070bdc87fdc3e6a28ad5aaa8666c7a1a966.php:25
+msgid "Are you sure you want to do that?"
+msgstr ""
+
+#: ../../../../templates/cache/57/a7/c0a734e494c78acfc595f033a070bdc87fdc3e6a28ad5aaa8666c7a1a966.php:31
+msgid "Click to proceed to"
+msgstr ""
+
+#. line 5
+#: ../../../../templates/cache/57/a7/c0a734e494c78acfc595f033a070bdc87fdc3e6a28ad5aaa8666c7a1a966.php:39
+msgid ""
+"You are probably seeing this message because Javascript being disabled. This"
+" is a necessary security measure to prevent CSRF attacks."
+msgstr ""
+
+#. line 7
+#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:44
+msgid "Report date"
+msgstr ""
+
+#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:54
+msgid "Reported by"
+msgstr ""
+
+#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:73
+msgid "Discard abuse report"
+msgstr ""
+
+#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:93
+msgid "Discard all abuse reports by this IP address"
+msgstr ""
+
+#. line 4
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:27
+msgid "From"
+msgstr ""
+
+#. line 34
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:105
+msgid "Delete forever"
+msgstr ""
+
+#. line 39
+#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:119
+msgid "Reply with quote"
+msgstr ""
+
+#. line 18
+#: ../../../../templates/cache/1f/f5/c63468797b4f93a8005563716a720117a6d51a804f2124a4c5158ca78525.php:62
+msgid "Send message"
+msgstr ""
+
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:25
+msgid "There are no themes available."
+msgstr ""
+
+#. line 11
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:50
+msgid "Version"
+msgstr "Versio"
+
+#. line 15
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:60
+msgid "Description"
+msgstr "Kuvaus"
+
+#. line 19
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:70
+msgid "Thumbnail"
+msgstr ""
+
+#. line 27
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:93
+msgid "Use theme"
+msgstr "Käytä teemaa"
+
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:100
+msgid "Reconfigure"
+msgstr "Asetukset"
+
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:102
+msgid "Install"
+msgstr "Asenna"
+
+#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:123
+msgid "Uninstall"
+msgstr "Poista"
+
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:72
+msgid "new; optional"
+msgstr ""
+
+#. line 32
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:98
+msgid "Group"
+msgstr ""
+
+#. line 56
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:161
+msgid "All boards"
+msgstr ""
+
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:223
+msgid "Create user"
+msgstr ""
+
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:229
+msgid "Save changes"
+msgstr ""
+
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:236
+msgid "Delete user"
+msgstr ""
+
+#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:331
+msgid "View more logs for this user."
+msgstr ""
+
+#. line 84
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:255
+msgid "Flag"
+msgstr ""
+
+#. line 87
+#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:261
+msgid "None"
+msgstr ""
+
+#. When moving a thread to another board and choosing to keep a "shadow
+#. thread", an automated post (with
+#. a capcode) will be made, linking to the new location for the thread. "%s"
+#. will be replaced with a
+#. standard cross-board post citation (>>>/board/xxx)
+#: ../../../../inc/config.php:1211
+#, php-format
+msgid "Moved to %s."
+msgstr ""
+
+#: ../../../../templates/themes/recent/theme.php:50
+msgid ""
+"Can't build the RecentPosts theme, because there are no boards to be "
+"fetched."
+msgstr ""
diff --git a/inc/locale/fr_FR/LC_MESSAGES/tinyboard.mo b/inc/locale/fr_FR/LC_MESSAGES/tinyboard.mo
index 65bdca3d..948caf60 100644
Binary files a/inc/locale/fr_FR/LC_MESSAGES/tinyboard.mo and b/inc/locale/fr_FR/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/fr_FR/LC_MESSAGES/tinyboard.po b/inc/locale/fr_FR/LC_MESSAGES/tinyboard.po
index 344cee8a..268fc3ec 100644
--- a/inc/locale/fr_FR/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/fr_FR/LC_MESSAGES/tinyboard.po
@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-21 19:05+0000\n"
-"Last-Translator: czaks \n"
+"PO-Revision-Date: 2014-05-02 21:08+0000\n"
+"Last-Translator: kaf \n"
"Language-Team: French (France) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/fr_FR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -2585,12 +2585,12 @@ msgstr "Voir plus de log pour cet utilisateur."
#. line 84
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:255
msgid "Flag"
-msgstr ""
+msgstr "Drapeau"
#. line 87
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:261
msgid "None"
-msgstr ""
+msgstr "Aucun"
#. When moving a thread to another board and choosing to keep a "shadow
#. thread", an automated post (with
diff --git a/inc/locale/hu_HU/LC_MESSAGES/javascript.js b/inc/locale/hu_HU/LC_MESSAGES/javascript.js
index 2baee865..b51de016 100644
--- a/inc/locale/hu_HU/LC_MESSAGES/javascript.js
+++ b/inc/locale/hu_HU/LC_MESSAGES/javascript.js
@@ -1 +1 @@
-l10n = {"Style: ":"St\u00edlus:","File":"F\u00e1jl","hide":"elrejt","show":"mutat","Show locked threads":"Mutassa a lez\u00e1rt sz\u00e1lakat","Hide locked threads":"Rejtse el a lez\u00e1rt sz\u00e1lakat","URL":"URL","Select":"Kiv\u00e1laszt","Remote":"K\u00fcls\u0151 link","Embed":"Be\u00e1gyaz","Oekaki":"Saj\u00e1t rajz","hidden":"rejtett","Show images":"Mutassa a k\u00e9peket","Hide images":"Rejtse el a k\u00e9peket","Password":"Jelsz\u00f3","Delete file only":"Csak a f\u00e1jlt t\u00f6r\u00f6lje","Delete":"T\u00f6rl\u00e9s","Reason":"Ok","Report":"Jelent","Click reply to view.":"Kattints a v\u00e1laszra a megjelen\u00edt\u00e9shez","Click to expand":"Kattints a nagyobb m\u00e9rethez","Hide expanded replies":"Rejtse el a nagy m\u00e9ret\u0171 v\u00e1laszokat","Brush size":"Ecsetm\u00e9ret","Set text":"Sz\u00f6veg megad\u00e1sa","Clear":"T\u00f6r\u00f6l","Save":"Ment\u00e9s","Load":"Bet\u00f6lt\u00e9s","Toggle eraser":"Rad\u00edrt kapcsol","Get color":"Sz\u00ednt kiv\u00e1laszt","Fill":"KIt\u00f6lt","Use oekaki instead of file?":"Szeretn\u00e9d a rajzodat haszn\u00e1lni f\u00e1jl helyett?","Edit in oekaki":"A rajzod szerkeszt\u00e9se","Enter some text":"\u00cdrj be sz\u00f6veget","Enter font or leave empty":"Adj meg bet\u0171t\u00edpust, vagy hagyd \u00fcresen","Forced anonymity":"Er\u0151ltetett anonimit\u00e1s","enabled":"enged\u00e9lyezett","disabled":"tiltott","Sun":"Va","Mon":"H\u00e9","Tue":"Ke","Wed":"Sze","Thu":"Cs\u00fc","Fri":"P\u00e9","Sat":"Szo","Catalog":"Katal\u00f3gus","Submit":"Elk\u00fcld","Quick reply":"Gyors v\u00e1lasz","Posting mode: Replying to >>{0}<\/small>":"Hozz\u00e1sz\u00f3l\u00e1s m\u00f3dja: V\u00e1lasz erre: >>{0}<\/small>","Return":"Vissza","Expand all images":"\u00d6sszes k\u00e9p nagy m\u00e9ret\u0171re","Hello!":"Szia!","{0} users":"(0) felhaszn\u00e1l\u00f3","(hide threads from this board)":"(sz\u00e1lak elrejt\u00e9se err\u0151l a t\u00e1bl\u00e1r\u00f3l)","(show threads from this board)":"(sz\u00e1lak mutat\u00e1sa err\u0151l a t\u00e1bl\u00e1r\u00f3l)","No more threads to display":"Nincs t\u00f6bb megjelen\u00edtend\u0151 sz\u00e1l","Loading...":"Bet\u00f6lt\u00e9s...","Save as original filename":"Ment\u00e9s eredeti f\u00e1jln\u00e9vvel","Reported post(s).":"Jelentett hozz\u00e1sz\u00f3l\u00e1s(ok).","An unknown error occured!":"Ismeretlen hiba t\u00f6rt\u00e9nt!","Something went wrong... An unknown error occured!":"V\u00e9g\u00e9rv\u00e9nyesen... Valami elveszett!","Working...":"Feldolgoz\u00e1s...","Posting... (#%)":"K\u00fcld\u00e9s... (#%)","Posted...":"Elk\u00fcldve...","An unknown error occured when posting!":"Ismeretlen hiba t\u00f6rt\u00e9nt k\u00fcld\u00e9s k\u00f6zben!","Posting...":"K\u00fcld\u00e9s...","Upload URL":"URL Felt\u00f6lt\u00e9se","Spoiler Image":"Spoiler K\u00e9p","Comment":"Hozz\u00e1sz\u00f3l\u00e1s","Quick Reply":"Gyors v\u00e1lasz","Stop watching this thread":"Sz\u00e1l figyel\u00e9s\u00e9nek megsz\u00fcntet\u00e9se","Watch this thread":"Figyelje ezt a sz\u00e1lat","Unpin this board":"T\u00e1bla kiemel\u00e9s megsz\u00fcntet\u00e9se","Pin this board":"Emelje ki a t\u00e1bl\u00e1t","Stop watching this board":"T\u00e1bla figyel\u00e9s\u00e9nek megsz\u00fcntet\u00e9se","Watch this board":"Figyelje ezt a t\u00e1bl\u00e1t","Click on any image on this site to load it into oekaki applet":"Kattints a k\u00edv\u00e1nt k\u00e9pre ezen az oldalon a rajzprogramba bet\u00f6lt\u00e9shez","Sunday":"Vas\u00e1rnap","Monday":"H\u00e9tf\u0151","Tuesday":"Kedd","Wednesday":"Szerda","Thursday":"Cs\u00fct\u00f6rt\u00f6k","Friday":"P\u00e9ntek","Saturday":"Szombat","January":"Janu\u00e1r","February":"Febru\u00e1r","March":"M\u00e1rcius","April":"\u00c1prilis","May":"M\u00e1jus","June":"J\u00fanius","July":"J\u00falius","August":"Augusztus","September":"Szeptember","October":"Okt\u00f3ber","November":"November","December":"December","Jan":"Jan","Feb":"Feb","Mar":"M\u00e1r","Apr":"\u00c1pr","Jun":"Jun","Jul":"Jul","Aug":"Aug","Sep":"Szep","Oct":"Okt","Nov":"Nov","Dec":"Dec","AM":"D\u00e9lel\u0151tt","PM":"D\u00e9lut\u00e1n","am":"d\u00e9lel\u0151tt","pm":"d\u00e9lut\u00e1n","Your browser does not support HTML5 video.":"A b\u00f6ng\u00e9sz\u0151d nem t\u00e1mogatja a HTML5 vide\u00f3t.","[play once]":"[lej\u00e1tsz\u00e1s egyszer]","[loop]":"[ism\u00e9tl\u00e9s]","WebM Settings":"WebM be\u00e1ll\u00edt\u00e1sok","Expand videos inline":"Vide\u00f3k kinagy\u00edt\u00e1sa sz\u00e1lon bel\u00fcl","Play videos on hover":"Vide\u00f3k lej\u00e1tsz\u00e1sa ha az eg\u00e9rmutat\u00f3 f\u00f6l\u00e9j\u00fck \u00e9r","Default volume":"Alap hanger\u0151","Tree view":"Fa n\u00e9zet"};
\ No newline at end of file
+l10n = {"Style: ":"St\u00edlus:","File":"F\u00e1jl","hide":"elrejt","show":"mutat","Show locked threads":"Mutassa a lez\u00e1rt sz\u00e1lakat","Hide locked threads":"Rejtse el a lez\u00e1rt sz\u00e1lakat","URL":"URL","Select":"Kiv\u00e1laszt","Remote":"K\u00fcls\u0151 link","Embed":"Be\u00e1gyaz","Oekaki":"Saj\u00e1t rajz","hidden":"rejtett","Show images":"Mutassa a k\u00e9peket","Hide images":"Rejtse el a k\u00e9peket","Password":"Jelsz\u00f3","Delete file only":"Csak a f\u00e1jlt t\u00f6r\u00f6lje","Delete":"T\u00f6rl\u00e9s","Reason":"Ok","Report":"Jelent","Click reply to view.":"Kattints a v\u00e1laszra a megjelen\u00edt\u00e9shez","Click to expand":"Kattints a nagyobb m\u00e9rethez","Hide expanded replies":"Rejtse el a nagy m\u00e9ret\u0171 v\u00e1laszokat","Brush size":"Ecsetm\u00e9ret","Set text":"Sz\u00f6veg megad\u00e1sa","Clear":"T\u00f6r\u00f6l","Save":"Ment\u00e9s","Load":"Bet\u00f6lt\u00e9s","Toggle eraser":"Rad\u00edrt kapcsol","Get color":"Sz\u00ednt kiv\u00e1laszt","Fill":"KIt\u00f6lt","Use oekaki instead of file?":"Szeretn\u00e9d a rajzodat haszn\u00e1lni f\u00e1jl helyett?","Edit in oekaki":"A rajzod szerkeszt\u00e9se","Enter some text":"\u00cdrj be sz\u00f6veget","Enter font or leave empty":"Adj meg bet\u0171t\u00edpust, vagy hagyd \u00fcresen","Forced anonymity":"Er\u0151ltetett anonimit\u00e1s","enabled":"enged\u00e9lyezett","disabled":"tiltott","Sun":"Va","Mon":"H\u00e9","Tue":"Ke","Wed":"Sze","Thu":"Cs\u00fc","Fri":"P\u00e9","Sat":"Szo","Catalog":"Katal\u00f3gus","Submit":"Elk\u00fcld","Quick reply":"Gyors v\u00e1lasz","Posting mode: Replying to >>{0}<\/small>":"Hozz\u00e1sz\u00f3l\u00e1s m\u00f3dja: V\u00e1lasz erre: >>{0}<\/small>","Return":"Vissza","Expand all images":"\u00d6sszes k\u00e9p nagy m\u00e9ret\u0171re","Hello!":"Szia!","{0} users":"(0) felhaszn\u00e1l\u00f3","(hide threads from this board)":"(sz\u00e1lak elrejt\u00e9se err\u0151l a t\u00e1bl\u00e1r\u00f3l)","(show threads from this board)":"(sz\u00e1lak mutat\u00e1sa err\u0151l a t\u00e1bl\u00e1r\u00f3l)","No more threads to display":"Nincs t\u00f6bb megjelen\u00edtend\u0151 sz\u00e1l","Loading...":"Bet\u00f6lt\u00e9s...","Save as original filename":"Ment\u00e9s eredeti f\u00e1jln\u00e9vvel","Reported post(s).":"Jelentett hozz\u00e1sz\u00f3l\u00e1s(ok).","An unknown error occured!":"Ismeretlen hiba t\u00f6rt\u00e9nt!","Something went wrong... An unknown error occured!":"V\u00e9g\u00e9rv\u00e9nyesen... Valami elveszett!","Working...":"Feldolgoz\u00e1s...","Posting... (#%)":"K\u00fcld\u00e9s... (#%)","Posted...":"Elk\u00fcldve...","An unknown error occured when posting!":"Ismeretlen hiba t\u00f6rt\u00e9nt k\u00fcld\u00e9s k\u00f6zben!","Posting...":"K\u00fcld\u00e9s...","Upload URL":"URL Felt\u00f6lt\u00e9se","Spoiler Image":"Spoiler K\u00e9p","Comment":"Hozz\u00e1sz\u00f3l\u00e1s","Quick Reply":"Gyors v\u00e1lasz","Stop watching this thread":"Sz\u00e1l figyel\u00e9s\u00e9nek megsz\u00fcntet\u00e9se","Watch this thread":"Figyelje ezt a sz\u00e1lat","Unpin this board":"T\u00e1bla kiemel\u00e9s megsz\u00fcntet\u00e9se","Pin this board":"Emelje ki a t\u00e1bl\u00e1t","Stop watching this board":"T\u00e1bla figyel\u00e9s\u00e9nek megsz\u00fcntet\u00e9se","Watch this board":"Figyelje ezt a t\u00e1bl\u00e1t","Click on any image on this site to load it into oekaki applet":"Kattints a k\u00edv\u00e1nt k\u00e9pre ezen az oldalon a rajzprogramba bet\u00f6lt\u00e9shez","Sunday":"Vas\u00e1rnap","Monday":"H\u00e9tf\u0151","Tuesday":"Kedd","Wednesday":"Szerda","Thursday":"Cs\u00fct\u00f6rt\u00f6k","Friday":"P\u00e9ntek","Saturday":"Szombat","January":"Janu\u00e1r","February":"Febru\u00e1r","March":"M\u00e1rcius","April":"\u00c1prilis","May":"M\u00e1jus","June":"J\u00fanius","July":"J\u00falius","August":"Augusztus","September":"Szeptember","October":"Okt\u00f3ber","November":"November","December":"December","Jan":"Jan","Feb":"Feb","Mar":"M\u00e1r","Apr":"\u00c1pr","Jun":"Jun","Jul":"Jul","Aug":"Aug","Sep":"Szep","Oct":"Okt","Nov":"Nov","Dec":"Dec","AM":"D\u00e9lel\u0151tt","PM":"D\u00e9lut\u00e1n","am":"d\u00e9lel\u0151tt","pm":"d\u00e9lut\u00e1n","Your browser does not support HTML5 video.":"A b\u00f6ng\u00e9sz\u0151d nem t\u00e1mogatja a HTML5 vide\u00f3t.","[play once]":"[lej\u00e1tsz\u00e1s egyszer]","[loop]":"[ism\u00e9tl\u00e9s]","WebM Settings":"WebM be\u00e1ll\u00edt\u00e1sok","Expand videos inline":"Vide\u00f3k kinagy\u00edt\u00e1sa sz\u00e1lon bel\u00fcl","Play videos on hover":"Vide\u00f3k lebeg\u0151 lej\u00e1tsz\u00e1sa ha az eg\u00e9rmutat\u00f3 f\u00f6l\u00e9j\u00fck \u00e9r","Default volume":"Alap hanger\u0151","Tree view":"Fa n\u00e9zet"};
\ No newline at end of file
diff --git a/inc/locale/hu_HU/LC_MESSAGES/javascript.po b/inc/locale/hu_HU/LC_MESSAGES/javascript.po
index 7b1bba38..f8883a28 100644
--- a/inc/locale/hu_HU/LC_MESSAGES/javascript.po
+++ b/inc/locale/hu_HU/LC_MESSAGES/javascript.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-04-20 00:49+0200\n"
-"PO-Revision-Date: 2014-04-20 15:00+0000\n"
+"POT-Creation-Date: 2014-04-21 21:04+0200\n"
+"PO-Revision-Date: 2014-05-07 17:41+0000\n"
"Last-Translator: cicus \n"
"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/hu_HU/)\n"
"MIME-Version: 1.0\n"
@@ -560,7 +560,7 @@ msgstr "Videók kinagyítása szálon belül"
#: ../../../../js/webm-settings.js:45
msgid "Play videos on hover"
-msgstr "Videók lejátszása ha az egérmutató föléjük ér"
+msgstr "Videók lebegő lejátszása ha az egérmutató föléjük ér"
#: ../../../../js/webm-settings.js:46
msgid "Default volume"
diff --git a/inc/locale/lt_LT/LC_MESSAGES/javascript.js b/inc/locale/lt_LT/LC_MESSAGES/javascript.js
index 6c29aa78..b9bdbcd1 100644
--- a/inc/locale/lt_LT/LC_MESSAGES/javascript.js
+++ b/inc/locale/lt_LT/LC_MESSAGES/javascript.js
@@ -1 +1 @@
-l10n = {"Style: ":"Stilius","File":"Failas","hide":"sl\u0117pti","show":"rodyti","Show locked threads":"Rodyti u\u017erakintas temas","Hide locked threads":"Pasl\u0117pti u\u017erakintas temas","Sunday":"Sekmadienis","Monday":"Pirmadienis","Tuesday":"Antradienis","Wednesday":"Tre\u010diadienis","Thursday":"Ketvirtadienis","Friday":"Penktadienis","Saturday":"\u0160e\u0161tadienis","January":"Sausis","February":"Vasaris","March":"Kovas","April":"Balandis","WebM Settings":"WebM nustatymai"};
\ No newline at end of file
+l10n = {"Style: ":"Stilius:","File":"Failas","hide":"sl\u0117pti","show":"rodyti","Show locked threads":"Rodyti u\u017erakintas temas","Hide locked threads":"Pasl\u0117pti u\u017erakintas temas","URL":"URL","Select":"Pasirinkti","Remote":"Nutol\u0119s","Embed":"\u012eterpti","Oekaki":"Oekaki","hidden":"pasl\u0117pta","Show images":"Rodyti paveiksl\u0117lius","Hide images":"Sl\u0117pti paveiksl\u0117lius","Password":"Slapta\u017eodis","Delete file only":"Trinti tik fail\u0105","Delete":"I\u0161trinti","Reason":"Prie\u017eastis","Report":"Prane\u0161ti","Click reply to view.":"Nor\u0117damas per\u017ei\u016br\u0117ti spausk \u201eAtsakyti\u201c.","Click to expand":"I\u0161skleisti","Hide expanded replies":"Pasl\u0117pti i\u0161skleistus atsakymus","Brush size":"Teptuko dydis","Set text":"Nustatyti tekst\u0105","Clear":"I\u0161valyti","Save":"I\u0161saugoti","Load":"U\u017ekrauti","Toggle eraser":"Perjungti trintuk\u0105","Get color":"Gauti spalv\u0105","Fill":"U\u017epildyti","Use oekaki instead of file?":"Vietoj failo naudoti oekaki?","Edit in oekaki":"Redaguoti su oekaki","Enter some text":"\u012era\u0161yk k\u0105 nors","Enter font or leave empty":"\u012era\u0161yk \u0161rifto pavadinim\u0105 arba palik tu\u0161\u010di\u0105","Forced anonymity":"Priverstinis anonimi\u0161kumas","enabled":"\u012fjungta","disabled":"i\u0161jungta","Sun":"Sk","Mon":"Pr","Tue":"An","Wed":"Tr","Thu":"Kt","Fri":"Pn","Sat":"\u0160\u0161","Catalog":"Katalogas","Submit":"Patvirtinti","Quick reply":"Greitas atsakymas","Posting mode: Replying to >>{0}<\/small>":"Ra\u0161ymo re\u017eimas: Atsakymas \u012f >>{0}<\/small>","Return":"Gr\u012f\u017eti","Expand all images":"I\u0161skleisti visus paveiksl\u0117lius","Hello!":"Sveiks!","{0} users":"{0} vartotoj\u0173","(hide threads from this board)":"(sl\u0117pti temas i\u0161 \u0161ios lentos)","(show threads from this board)":"(rodyti temas i\u0161 \u0161ios lentos)","No more threads to display":"Daugiau tem\u0173 n\u0117ra","Loading...":"Kraunasi...","Save as original filename":"I\u0161saugoti originaliu pavadinimu","Reported post(s).":"\u012era\u0161ai apie kuriuos prane\u0161ta.","An unknown error occured!":"\u012evyko ne\u017einoma klaida!","Something went wrong... An unknown error occured!":"Ka\u017ekas blogai... \u012evyko ne\u017einoma klaida!","Working...":"Dirbama...","Posting... (#%)":"Skelbiama... (#%)","Posted...":"Paskelbta...","An unknown error occured when posting!":"Skelbiant \u012fvyko ne\u017einoma klaida!","Posting...":"Skelbiama...","Upload URL":"I\u0161siuntimo URL","Spoiler Image":"Paveiksl\u0117lis, galintis atskleisti svarbias detales","Comment":"Komentuoti","Quick Reply":"Greitas atsakymas","Stop watching this thread":"Nebesekti \u0161ios temos","Watch this thread":"Steb\u0117ti \u0161i\u0105 tem\u0105","Unpin this board":"Prisegti \u0161i\u0105 lent\u0105","Pin this board":"Atkabinti \u0161i\u0105 lent\u0105","Stop watching this board":"Nebesekti \u0161ios lentos","Watch this board":"Sekti \u0161i\u0105 lent\u0105","Click on any image on this site to load it into oekaki applet":"Spausk ant bet kurio \u0161iame puslapyje esan\u010dio paveiksl\u0117lio, kad atvertum j\u012f su oekaki program\u0117le","Sunday":"Sekmadienis","Monday":"Pirmadienis","Tuesday":"Antradienis","Wednesday":"Tre\u010diadienis","Thursday":"Ketvirtadienis","Friday":"Penktadienis","Saturday":"\u0160e\u0161tadienis","January":"Sausis","February":"Vasaris","March":"Kovas","April":"Balandis","May":"Gegu\u017e\u0117","June":"Bir\u017eelis","July":"Liepa","August":"Rugpj\u016btis","September":"Rugs\u0117jis","October":"Spalis","November":"Lapkritis","December":"Gruodis","Jan":"Sau","Feb":"Vas","Mar":"Kov","Apr":"Bal","Jun":"Bir","Jul":"Lie","Aug":"Rgp","Sep":"Rgs","Oct":"Spa","Nov":"Lap","Dec":"Gru","AM":"AM","PM":"PM","am":"am","pm":"pm","Your browser does not support HTML5 video.":"Tavo nar\u0161ykl\u0117 nepalaiko HTML5 vaizdo \u012fra\u0161\u0173.","[play once]":"[paleisti kart\u0105]","[loop]":"[leisti nepertraukiamai]","WebM Settings":"WebM nustatymai","Expand videos inline":"I\u0161skleisti vaizdo \u012fra\u0161us puslapyje","Play videos on hover":"Paleisti \u012fra\u0161\u0105 i\u0161art tik u\u017evedus pelyte","Default volume":"Numatytasis garsas","Tree view":"Med\u017eio per\u017ei\u016bra"};
\ No newline at end of file
diff --git a/inc/locale/lt_LT/LC_MESSAGES/javascript.po b/inc/locale/lt_LT/LC_MESSAGES/javascript.po
index d65b27d9..7c5e02f2 100644
--- a/inc/locale/lt_LT/LC_MESSAGES/javascript.po
+++ b/inc/locale/lt_LT/LC_MESSAGES/javascript.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# banginis , 2014
+# Aš Esu , 2014
msgid ""
msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-04-20 00:49+0200\n"
-"PO-Revision-Date: 2014-04-19 22:53+0000\n"
-"Last-Translator: czaks \n"
+"POT-Creation-Date: 2014-04-21 21:04+0200\n"
+"PO-Revision-Date: 2014-05-04 20:26+0000\n"
+"Last-Translator: Aš Esu \n"
"Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/lt_LT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +20,7 @@ msgstr ""
#: ../../../../js/style-select.js:40 ../../../../js/style-select.js:41
msgid "Style: "
-msgstr "Stilius"
+msgstr "Stilius:"
#: ../../../../js/hide-images.js:50 ../../../../js/upload-selection.js:51
#: ../../../../js/quick-post-controls.js:30 ../../../../js/hide-images.js:51
@@ -57,122 +57,122 @@ msgstr "Paslėpti užrakintas temas"
#: ../../../../js/upload-selection.js:32 ../../../../js/upload-selection.js:45
msgid "URL"
-msgstr ""
+msgstr "URL"
#: ../../../../js/upload-selection.js:50 ../../../../js/upload-selection.js:60
msgid "Select"
-msgstr ""
+msgstr "Pasirinkti"
#: ../../../../js/upload-selection.js:53 ../../../../js/upload-selection.js:63
msgid "Remote"
-msgstr ""
+msgstr "Nutolęs"
#: ../../../../js/upload-selection.js:56 ../../../../js/upload-selection.js:66
msgid "Embed"
-msgstr ""
+msgstr "Įterpti"
#: ../../../../js/upload-selection.js:59 ../../../../js/upload-selection.js:69
msgid "Oekaki"
-msgstr ""
+msgstr "Oekaki"
#: ../../../../js/toggle-images.js:41 ../../../../js/toggle-images.js:42
msgid "hidden"
-msgstr ""
+msgstr "paslėpta"
#: ../../../../js/toggle-images.js:57 ../../../../js/toggle-images.js:70
#: ../../../../js/toggle-images.js:58 ../../../../js/toggle-images.js:71
msgid "Show images"
-msgstr ""
+msgstr "Rodyti paveikslėlius"
#: ../../../../js/toggle-images.js:57 ../../../../js/toggle-images.js:70
#: ../../../../js/toggle-images.js:58 ../../../../js/toggle-images.js:71
msgid "Hide images"
-msgstr ""
+msgstr "Slėpti paveikslėlius"
#: ../../../../js/quick-post-controls.js:27
#: ../../../../js/quick-post-controls.js:29
msgid "Password"
-msgstr ""
+msgstr "Slaptažodis"
#: ../../../../js/quick-post-controls.js:29
#: ../../../../js/quick-post-controls.js:31
msgid "Delete file only"
-msgstr ""
+msgstr "Trinti tik failą"
#: ../../../../js/quick-post-controls.js:31
#: ../../../../js/quick-post-controls.js:33
msgid "Delete"
-msgstr ""
+msgstr "Ištrinti"
#: ../../../../js/quick-post-controls.js:35
#: ../../../../js/quick-post-controls.js:37
msgid "Reason"
-msgstr ""
+msgstr "Priežastis"
#: ../../../../js/quick-post-controls.js:37
#: ../../../../js/quick-post-controls.js:39
msgid "Report"
-msgstr ""
+msgstr "Pranešti"
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click reply to view."
-msgstr ""
+msgstr "Norėdamas peržiūrėti spausk „Atsakyti“."
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click to expand"
-msgstr ""
+msgstr "Išskleisti"
#: ../../../../js/expand.js:44 ../../../../js/expand.js:46
msgid "Hide expanded replies"
-msgstr ""
+msgstr "Paslėpti išskleistus atsakymus"
#: ../../../../js/oekaki.js:10
msgid "Brush size"
-msgstr ""
+msgstr "Teptuko dydis"
#: ../../../../js/oekaki.js:10
msgid "Set text"
-msgstr ""
+msgstr "Nustatyti tekstą"
#: ../../../../js/oekaki.js:10
msgid "Clear"
-msgstr ""
+msgstr "Išvalyti"
#: ../../../../js/oekaki.js:10
msgid "Save"
-msgstr ""
+msgstr "Išsaugoti"
#: ../../../../js/oekaki.js:10
msgid "Load"
-msgstr ""
+msgstr "Užkrauti"
#: ../../../../js/oekaki.js:11
msgid "Toggle eraser"
-msgstr ""
+msgstr "Perjungti trintuką"
#: ../../../../js/oekaki.js:11
msgid "Get color"
-msgstr ""
+msgstr "Gauti spalvą"
#: ../../../../js/oekaki.js:11
msgid "Fill"
-msgstr ""
+msgstr "Užpildyti"
#: ../../../../js/oekaki.js:12
msgid "Use oekaki instead of file?"
-msgstr ""
+msgstr "Vietoj failo naudoti oekaki?"
#: ../../../../js/oekaki.js:21
msgid "Edit in oekaki"
-msgstr ""
+msgstr "Redaguoti su oekaki"
#: ../../../../js/oekaki.js:152
msgid "Enter some text"
-msgstr ""
+msgstr "Įrašyk ką nors"
#: ../../../../js/oekaki.js:153
msgid "Enter font or leave empty"
-msgstr ""
+msgstr "Įrašyk šrifto pavadinimą arba palik tuščią"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:69 ../../../../js/forced-anon.js:60
@@ -180,190 +180,190 @@ msgstr ""
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
#: ../../../../js/forced-anon.js:71
msgid "Forced anonymity"
-msgstr ""
+msgstr "Priverstinis anonimiškumas"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:66
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
msgid "enabled"
-msgstr ""
+msgstr "įjungta"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:69
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:70
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:71
msgid "disabled"
-msgstr ""
+msgstr "išjungta"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sun"
-msgstr ""
+msgstr "Sk"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Mon"
-msgstr ""
+msgstr "Pr"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Tue"
-msgstr ""
+msgstr "An"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Wed"
-msgstr ""
+msgstr "Tr"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Thu"
-msgstr ""
+msgstr "Kt"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Fri"
-msgstr ""
+msgstr "Pn"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sat"
-msgstr ""
+msgstr "Šš"
#: ../../../../js/catalog-link.js:21 ../../../../js/catalog-link.js:32
#: ../../../../js/catalog-link.js:40 ../../../../js/catalog-link.js:33
#: ../../../../js/catalog-link.js:44 ../../../../js/catalog-link.js:52
msgid "Catalog"
-msgstr ""
+msgstr "Katalogas"
#: ../../../../js/quick-reply.js:21 ../../../../js/quick-reply-old.js:21
#: ../../../../js/quick-reply-old.js:23
msgid "Submit"
-msgstr ""
+msgstr "Patvirtinti"
#: ../../../../js/quick-reply.js:31 ../../../../js/quick-reply-old.js:31
#: ../../../../js/quick-reply-old.js:33
msgid "Quick reply"
-msgstr ""
+msgstr "Greitas atsakymas"
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
#, python-brace-format
msgid "Posting mode: Replying to >>{0}"
-msgstr ""
+msgstr "Rašymo režimas: Atsakymas į >>{0}"
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
msgid "Return"
-msgstr ""
+msgstr "Grįžti"
#: ../../../../js/expand-all-images.js:20
#: ../../../../js/expand-all-images.js:21
#: ../../../../js/expand-all-images.js:22
msgid "Expand all images"
-msgstr ""
+msgstr "Išskleisti visus paveikslėlius"
#: ../../../../templates/main.js:6
msgid "Hello!"
-msgstr ""
+msgstr "Sveiks!"
#: ../../../../templates/main.js:18
#, python-brace-format
msgid "{0} users"
-msgstr ""
+msgstr "{0} vartotojų"
#: ../../../../templates/themes/ukko/ukko.js:28
#: ../../../../templates/themes/ukko/ukko.js:39
#: ../../../../templates/themes/ukko/ukko.js:29
#: ../../../../templates/themes/ukko/ukko.js:40
msgid "(hide threads from this board)"
-msgstr ""
+msgstr "(slėpti temas iš šios lentos)"
#: ../../../../templates/themes/ukko/ukko.js:32
#: ../../../../templates/themes/ukko/ukko.js:44
#: ../../../../templates/themes/ukko/ukko.js:33
#: ../../../../templates/themes/ukko/ukko.js:45
msgid "(show threads from this board)"
-msgstr ""
+msgstr "(rodyti temas iš šios lentos)"
#: ../../../../templates/themes/ukko/ukko.js:57
#: ../../../../templates/themes/ukko/ukko.js:58
msgid "No more threads to display"
-msgstr ""
+msgstr "Daugiau temų nėra"
#: ../../../../templates/themes/ukko/ukko.js:79
#: ../../../../templates/themes/ukko/ukko.js:80
msgid "Loading..."
-msgstr ""
+msgstr "Kraunasi..."
#: ../../../../js/download-original.js:32
#: ../../../../js/download-original.js:33
msgid "Save as original filename"
-msgstr ""
+msgstr "Išsaugoti originaliu pavadinimu"
#: ../../../../js/ajax-post-controls.js:43
msgid "Reported post(s)."
-msgstr ""
+msgstr "Įrašai apie kuriuos pranešta."
#: ../../../../js/ajax-post-controls.js:53
msgid "An unknown error occured!"
-msgstr ""
+msgstr "Įvyko nežinoma klaida!"
#: ../../../../js/ajax-post-controls.js:60
msgid "Something went wrong... An unknown error occured!"
-msgstr ""
+msgstr "Kažkas blogai... Įvyko nežinoma klaida!"
#: ../../../../js/ajax-post-controls.js:68
msgid "Working..."
-msgstr ""
+msgstr "Dirbama..."
#: ../../../../js/ajax.js:42 ../../../../js/ajax.js:45
msgid "Posting... (#%)"
-msgstr ""
+msgstr "Skelbiama... (#%)"
#: ../../../../js/ajax.js:104 ../../../../js/ajax.js:109
msgid "Posted..."
-msgstr ""
+msgstr "Paskelbta..."
#: ../../../../js/ajax.js:106 ../../../../js/ajax.js:111
msgid "An unknown error occured when posting!"
-msgstr ""
+msgstr "Skelbiant įvyko nežinoma klaida!"
#: ../../../../js/ajax.js:130 ../../../../js/ajax.js:135
msgid "Posting..."
-msgstr ""
+msgstr "Skelbiama..."
#: ../../../../js/quick-reply.js:223 ../../../../js/quick-reply.js:224
#: ../../../../js/quick-reply.js:225
msgid "Upload URL"
-msgstr ""
+msgstr "Išsiuntimo URL"
#: ../../../../js/quick-reply.js:266 ../../../../js/quick-reply.js:267
#: ../../../../js/quick-reply.js:268
msgid "Spoiler Image"
-msgstr ""
+msgstr "Paveikslėlis, galintis atskleisti svarbias detales"
#: ../../../../js/quick-reply.js:277 ../../../../js/quick-reply.js:278
#: ../../../../js/quick-reply.js:279
msgid "Comment"
-msgstr ""
+msgstr "Komentuoti"
#: ../../../../js/quick-reply.js:285 ../../../../js/quick-reply.js:406
#: ../../../../js/quick-reply.js:286 ../../../../js/quick-reply.js:407
#: ../../../../js/quick-reply.js:287 ../../../../js/quick-reply.js:408
msgid "Quick Reply"
-msgstr ""
+msgstr "Greitas atsakymas"
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Stop watching this thread"
-msgstr ""
+msgstr "Nebesekti šios temos"
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Watch this thread"
-msgstr ""
+msgstr "Stebėti šią temą"
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
@@ -371,7 +371,7 @@ msgstr ""
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Unpin this board"
-msgstr ""
+msgstr "Prisegti šią lentą"
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
@@ -379,7 +379,7 @@ msgstr ""
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Pin this board"
-msgstr ""
+msgstr "Atkabinti šią lentą"
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
@@ -387,7 +387,7 @@ msgstr ""
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Stop watching this board"
-msgstr ""
+msgstr "Nebesekti šios lentos"
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
@@ -395,11 +395,11 @@ msgstr ""
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Watch this board"
-msgstr ""
+msgstr "Sekti šią lentą"
#: ../../../../js/wpaint.js:113
msgid "Click on any image on this site to load it into oekaki applet"
-msgstr ""
+msgstr "Spausk ant bet kurio šiame puslapyje esančio paveikslėlio, kad atvertum jį su oekaki programėle"
#: ../../../../js/local-time.js:29
msgid "Sunday"
@@ -447,107 +447,107 @@ msgstr "Balandis"
#: ../../../../js/local-time.js:31 ../../../../js/local-time.js:32
msgid "May"
-msgstr ""
+msgstr "Gegužė"
#: ../../../../js/local-time.js:31
msgid "June"
-msgstr ""
+msgstr "Birželis"
#: ../../../../js/local-time.js:31
msgid "July"
-msgstr ""
+msgstr "Liepa"
#: ../../../../js/local-time.js:31
msgid "August"
-msgstr ""
+msgstr "Rugpjūtis"
#: ../../../../js/local-time.js:31
msgid "September"
-msgstr ""
+msgstr "Rugsėjis"
#: ../../../../js/local-time.js:31
msgid "October"
-msgstr ""
+msgstr "Spalis"
#: ../../../../js/local-time.js:31
msgid "November"
-msgstr ""
+msgstr "Lapkritis"
#: ../../../../js/local-time.js:31
msgid "December"
-msgstr ""
+msgstr "Gruodis"
#: ../../../../js/local-time.js:32
msgid "Jan"
-msgstr ""
+msgstr "Sau"
#: ../../../../js/local-time.js:32
msgid "Feb"
-msgstr ""
+msgstr "Vas"
#: ../../../../js/local-time.js:32
msgid "Mar"
-msgstr ""
+msgstr "Kov"
#: ../../../../js/local-time.js:32
msgid "Apr"
-msgstr ""
+msgstr "Bal"
#: ../../../../js/local-time.js:32
msgid "Jun"
-msgstr ""
+msgstr "Bir"
#: ../../../../js/local-time.js:32
msgid "Jul"
-msgstr ""
+msgstr "Lie"
#: ../../../../js/local-time.js:32
msgid "Aug"
-msgstr ""
+msgstr "Rgp"
#: ../../../../js/local-time.js:32
msgid "Sep"
-msgstr ""
+msgstr "Rgs"
#: ../../../../js/local-time.js:32
msgid "Oct"
-msgstr ""
+msgstr "Spa"
#: ../../../../js/local-time.js:32
msgid "Nov"
-msgstr ""
+msgstr "Lap"
#: ../../../../js/local-time.js:32
msgid "Dec"
-msgstr ""
+msgstr "Gru"
#: ../../../../js/local-time.js:33
msgid "AM"
-msgstr ""
+msgstr "AM"
#: ../../../../js/local-time.js:34
msgid "PM"
-msgstr ""
+msgstr "PM"
#: ../../../../js/local-time.js:35
msgid "am"
-msgstr ""
+msgstr "am"
#: ../../../../js/local-time.js:36
msgid "pm"
-msgstr ""
+msgstr "pm"
#: ../../../../js/expand-video.js:45 ../../../../js/expand-video.js:48
msgid "Your browser does not support HTML5 video."
-msgstr ""
+msgstr "Tavo naršyklė nepalaiko HTML5 vaizdo įrašų."
#: ../../../../js/expand-video.js:189 ../../../../js/expand-video.js:192
msgid "[play once]"
-msgstr ""
+msgstr "[paleisti kartą]"
#: ../../../../js/expand-video.js:190 ../../../../js/expand-video.js:193
msgid "[loop]"
-msgstr ""
+msgstr "[leisti nepertraukiamai]"
#: ../../../../js/webm-settings.js:42
msgid "WebM Settings"
@@ -555,16 +555,16 @@ msgstr "WebM nustatymai"
#: ../../../../js/webm-settings.js:44
msgid "Expand videos inline"
-msgstr ""
+msgstr "Išskleisti vaizdo įrašus puslapyje"
#: ../../../../js/webm-settings.js:45
msgid "Play videos on hover"
-msgstr ""
+msgstr "Paleisti įrašą išart tik užvedus pelyte"
#: ../../../../js/webm-settings.js:46
msgid "Default volume"
-msgstr ""
+msgstr "Numatytasis garsas"
#: ../../../../js/treeview.js:18
msgid "Tree view"
-msgstr ""
+msgstr "Medžio peržiūra"
diff --git a/inc/locale/lt_LT/LC_MESSAGES/tinyboard.mo b/inc/locale/lt_LT/LC_MESSAGES/tinyboard.mo
index e40a3c43..8fd397cd 100644
Binary files a/inc/locale/lt_LT/LC_MESSAGES/tinyboard.mo and b/inc/locale/lt_LT/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/lt_LT/LC_MESSAGES/tinyboard.po b/inc/locale/lt_LT/LC_MESSAGES/tinyboard.po
index 9e7b4213..c9f54413 100644
--- a/inc/locale/lt_LT/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/lt_LT/LC_MESSAGES/tinyboard.po
@@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Aš Esu , 2014
msgid ""
msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-21 19:05+0000\n"
-"Last-Translator: czaks \n"
+"PO-Revision-Date: 2014-05-04 20:30+0000\n"
+"Last-Translator: Aš Esu \n"
"Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/lt_LT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,9 +27,9 @@ msgstr ""
#: ../../../../inc/functions.php:653 ../../../../inc/functions.php:670
msgid "second"
msgid_plural "seconds"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "sekundė"
+msgstr[1] "sekundės"
+msgstr[2] "sekundžių"
#: ../../../../inc/functions.php:585 ../../../../inc/functions.php:602
#: ../../../../inc/functions.php:593 ../../../../inc/functions.php:610
@@ -39,9 +40,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:655 ../../../../inc/functions.php:672
msgid "minute"
msgid_plural "minutes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "minutė"
+msgstr[1] "minutės"
+msgstr[2] "minučių"
#: ../../../../inc/functions.php:587 ../../../../inc/functions.php:604
#: ../../../../inc/functions.php:595 ../../../../inc/functions.php:612
@@ -52,9 +53,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:657 ../../../../inc/functions.php:674
msgid "hour"
msgid_plural "hours"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "valanda"
+msgstr[1] "valandos"
+msgstr[2] "valandų"
#: ../../../../inc/functions.php:589 ../../../../inc/functions.php:606
#: ../../../../inc/functions.php:597 ../../../../inc/functions.php:614
@@ -65,9 +66,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:659 ../../../../inc/functions.php:676
msgid "day"
msgid_plural "days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "diena"
+msgstr[1] "dienos"
+msgstr[2] "dienų"
#: ../../../../inc/functions.php:591 ../../../../inc/functions.php:608
#: ../../../../inc/functions.php:599 ../../../../inc/functions.php:616
@@ -78,9 +79,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:661 ../../../../inc/functions.php:678
msgid "week"
msgid_plural "weeks"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "savaitė"
+msgstr[1] "savaitės"
+msgstr[2] "savaičių"
#: ../../../../inc/functions.php:594 ../../../../inc/functions.php:611
#: ../../../../inc/functions.php:602 ../../../../inc/functions.php:619
@@ -91,16 +92,16 @@ msgstr[2] ""
#: ../../../../inc/functions.php:664 ../../../../inc/functions.php:681
msgid "year"
msgid_plural "years"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "metai"
+msgstr[1] "metai"
+msgstr[2] "metų"
#: ../../../../inc/functions.php:628 ../../../../inc/functions.php:670
#: ../../../../inc/functions.php:699 ../../../../inc/functions.php:702
#: ../../../../inc/functions.php:708 ../../../../inc/functions.php:722
#: ../../../../inc/functions.php:732
msgid "Banned!"
-msgstr ""
+msgstr "Užblokuotas!"
#. There is no previous page.
#: ../../../../inc/functions.php:1125 ../../../../inc/functions.php:1139
@@ -129,12 +130,12 @@ msgstr "Pirmyn"
#: ../../../../inc/display.php:93 ../../../../inc/display.php:105
#: ../../../../inc/display.php:108 ../../../../inc/display.php:112
msgid "Error"
-msgstr ""
+msgstr "Klaida"
#: ../../../../inc/display.php:94 ../../../../inc/display.php:106
#: ../../../../inc/display.php:109 ../../../../inc/display.php:113
msgid "An error has occured."
-msgstr ""
+msgstr "Įvyko klaida."
#: ../../../../inc/display.php:110 ../../../../inc/mod/pages.php:62
#: ../../../../inc/mod/pages.php:60 ../../../../inc/display.php:122
@@ -146,54 +147,54 @@ msgstr "Prisijungimas"
#: ../../../../inc/display.php:244 ../../../../inc/display.php:248
#, php-format
msgid "Post too long. Click here to view the full text."
-msgstr ""
+msgstr "Įrašas per ilgas. Norėdamas pamatyti visą tekstą, spausk čia."
#: ../../../../inc/display.php:368 ../../../../inc/display.php:473
#: ../../../../inc/display.php:385 ../../../../inc/display.php:495
#: ../../../../inc/display.php:388 ../../../../inc/display.php:498
#: ../../../../inc/display.php:392 ../../../../inc/display.php:502
msgid "Ban"
-msgstr ""
+msgstr "Blokuoti"
#: ../../../../inc/display.php:372 ../../../../inc/display.php:477
#: ../../../../inc/display.php:389 ../../../../inc/display.php:499
#: ../../../../inc/display.php:392 ../../../../inc/display.php:502
#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
msgid "Ban & Delete"
-msgstr ""
+msgstr "Trinti ir blokuoti"
#: ../../../../inc/display.php:376 ../../../../inc/display.php:481
#: ../../../../inc/display.php:393 ../../../../inc/display.php:503
#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
msgid "Delete file"
-msgstr ""
+msgstr "Ištrinti failą"
#: ../../../../inc/display.php:376 ../../../../inc/display.php:481
#: ../../../../inc/display.php:393 ../../../../inc/display.php:503
#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
msgid "Are you sure you want to delete this file?"
-msgstr ""
+msgstr "Ar tikrai nori ištrinti šį failą?"
#: ../../../../inc/display.php:380 ../../../../inc/display.php:485
#: ../../../../inc/display.php:397 ../../../../inc/display.php:507
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
#: ../../../../inc/display.php:404 ../../../../inc/display.php:514
msgid "Spoiler File"
-msgstr ""
+msgstr "Paveikslėlis, galintis atskleisti svarbias detales"
#: ../../../../inc/display.php:380 ../../../../inc/display.php:485
#: ../../../../inc/display.php:397 ../../../../inc/display.php:507
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
#: ../../../../inc/display.php:404 ../../../../inc/display.php:514
msgid "Are you sure you want to spoiler this file?"
-msgstr ""
+msgstr "Ar tikrai šis paveikslėlis gali atskleisti svarbias detales?"
#: ../../../../inc/display.php:384 ../../../../inc/display.php:401
#: ../../../../inc/display.php:404 ../../../../inc/display.php:408
msgid "Move reply to another board"
-msgstr ""
+msgstr "Perkelti atsakymą į kitą lentą"
#: ../../../../inc/display.php:388 ../../../../inc/display.php:512
#: ../../../../inc/mod/pages.php:1425 ../../../../inc/mod/pages.php:1494
@@ -215,64 +216,64 @@ msgstr "Ištrinti"
#: ../../../../inc/display.php:461 ../../../../inc/display.php:483
#: ../../../../inc/display.php:486 ../../../../inc/display.php:490
msgid "Are you sure you want to delete this?"
-msgstr ""
+msgstr "Ar tikrai nori tai ištrinti?"
#: ../../../../inc/display.php:465 ../../../../inc/display.php:487
#: ../../../../inc/display.php:490 ../../../../inc/display.php:494
msgid "Delete all posts by IP"
-msgstr ""
+msgstr "Ištrinti visus šiuo IP paskelbtus įrašus"
#: ../../../../inc/display.php:465 ../../../../inc/display.php:487
#: ../../../../inc/display.php:490 ../../../../inc/display.php:494
msgid "Are you sure you want to delete all posts by this IP address?"
-msgstr ""
+msgstr "Ar tikrai nori ištrinti visas šiuo IP parašytas žinutes?"
#: ../../../../inc/display.php:469 ../../../../inc/display.php:491
#: ../../../../inc/display.php:494 ../../../../inc/display.php:498
msgid "Delete all posts by IP across all boards"
-msgstr ""
+msgstr "Ištrinti visas šiuo IP parašytas žinutes visose lentose"
#: ../../../../inc/display.php:469 ../../../../inc/display.php:491
#: ../../../../inc/display.php:494 ../../../../inc/display.php:498
msgid ""
"Are you sure you want to delete all posts by this IP address, across all "
"boards?"
-msgstr ""
+msgstr "Ar tikrai nori ištrinti visas šiuo IP parašytas žinutes iš visų lentų?"
#: ../../../../inc/display.php:490 ../../../../inc/display.php:512
#: ../../../../inc/display.php:515 ../../../../inc/display.php:519
msgid "Make thread not sticky"
-msgstr ""
+msgstr "Atklijuoti temą"
#: ../../../../inc/display.php:492 ../../../../inc/display.php:514
#: ../../../../inc/display.php:517 ../../../../inc/display.php:521
msgid "Make thread sticky"
-msgstr ""
+msgstr "Prilipdyti temą"
#: ../../../../inc/display.php:496 ../../../../inc/display.php:518
#: ../../../../inc/display.php:521 ../../../../inc/display.php:525
msgid "Allow thread to be bumped"
-msgstr ""
+msgstr "Leisti prikelti temą"
#: ../../../../inc/display.php:498 ../../../../inc/display.php:520
#: ../../../../inc/display.php:523 ../../../../inc/display.php:527
msgid "Prevent thread from being bumped"
-msgstr ""
+msgstr "Neleisti prikelti temos"
#: ../../../../inc/display.php:503 ../../../../inc/display.php:525
#: ../../../../inc/display.php:528 ../../../../inc/display.php:532
msgid "Unlock thread"
-msgstr ""
+msgstr "Atrakinti temą"
#: ../../../../inc/display.php:505 ../../../../inc/display.php:527
#: ../../../../inc/display.php:530 ../../../../inc/display.php:534
msgid "Lock thread"
-msgstr ""
+msgstr "Užrakinti temą"
#: ../../../../inc/display.php:508 ../../../../inc/display.php:530
#: ../../../../inc/display.php:533 ../../../../inc/display.php:537
msgid "Move thread to another board"
-msgstr ""
+msgstr "Perkelti temą į kitą lentą"
#. How long before Tinyboard forgets about a mute?
#. 2 weeks
@@ -281,7 +282,7 @@ msgstr ""
#: ../../../../inc/config.php:346 ../../../../inc/config.php:473
#: ../../../../inc/config.php:474 ../../../../inc/config.php:475
msgid "You have been muted for unoriginal content."
-msgstr ""
+msgstr "Buvai pritildytas, nes skelbi neoriginalų turinį."
#. The names on the post buttons. (On most imageboards, these are both just
#. "Post").
@@ -291,13 +292,13 @@ msgstr ""
#: ../../../../inc/config.php:772 ../../../../inc/config.php:774
#: ../../../../inc/config.php:776 ../../../../inc/config.php:792
msgid "New Topic"
-msgstr ""
+msgstr "Nauja tema"
#: ../../../../inc/config.php:678 ../../../../inc/config.php:782
#: ../../../../inc/config.php:773 ../../../../inc/config.php:775
#: ../../../../inc/config.php:777 ../../../../inc/config.php:793
msgid "New Reply"
-msgstr ""
+msgstr "Atsakyti"
#. Additional lines added to the footer of all pages.
#: ../../../../inc/config.php:689 ../../../../inc/config.php:793
@@ -306,7 +307,7 @@ msgstr ""
msgid ""
"All trademarks, copyrights, comments, and images on this page are owned by "
"and are the responsibility of their respective parties."
-msgstr ""
+msgstr "Visi prekių ženklai, autorių teisės, komentarai ir paveiksliukai esantys šiame puslapyje priklauso jų tikriesiems savininkams, už juos atsakingi juos paskelbę asmenys."
#. * ====================
#. * Error messages
@@ -395,13 +396,13 @@ msgstr "Diskusija užrakinta. Šiuo metu negali parašyti atsiliepimo."
#: ../../../../inc/config.php:974 ../../../../inc/config.php:976
#: ../../../../inc/config.php:978 ../../../../inc/config.php:994
msgid "Thread has reached its maximum reply limit."
-msgstr ""
+msgstr "Tema pasiekė atsakymų limitą."
#: ../../../../inc/config.php:879 ../../../../inc/config.php:984
#: ../../../../inc/config.php:975 ../../../../inc/config.php:977
#: ../../../../inc/config.php:979 ../../../../inc/config.php:995
msgid "Thread has reached its maximum image limit."
-msgstr ""
+msgstr "Tema pasiekė paveikslėlių limitą."
#: ../../../../inc/config.php:880 ../../../../inc/config.php:985
#: ../../../../inc/config.php:976 ../../../../inc/config.php:978
@@ -561,7 +562,7 @@ msgstr "Atrodo tu įvedei neteisingą patvirtinimą."
msgid ""
"You are only allowed to unban %s users at a time. You tried to unban %u "
"users."
-msgstr ""
+msgstr "Vienu metu galima atblokuoti iki %s vartotojų. Tu bandei atblokuoti %u vartotojų."
#: ../../../../inc/config.php:907 ../../../../inc/config.php:1012
#: ../../../../inc/config.php:1003 ../../../../inc/config.php:1005
@@ -663,7 +664,7 @@ msgstr "Neteisinga apsaugos žymė! Prašome sugrįžti ir bandyti vėl."
#: ../../../../inc/config.php:1180 ../../../../inc/config.php:1185
#: ../../../../inc/config.php:1187 ../../../../inc/config.php:1203
msgid "USER WAS BANNED FOR THIS POST"
-msgstr ""
+msgstr "ŠIOS ŽINUTĖS AUTORIUS BUVO UŽBLOKUOTAS"
#: ../../../../inc/mod/pages.php:66 ../../../../inc/mod/pages.php:64
msgid "Confirm action"
@@ -679,12 +680,12 @@ msgstr "Administratoriaus lenta."
#: ../../../../inc/mod/pages.php:267 ../../../../inc/mod/pages.php:265
msgid "There are no boards to search!"
-msgstr ""
+msgstr "Nėra lentų, kuriose būtų galima ieškoti!"
#. $results now contains the search results
#: ../../../../inc/mod/pages.php:335 ../../../../inc/mod/pages.php:334
msgid "Search results"
-msgstr ""
+msgstr "Paieškos rezultatai"
#: ../../../../inc/mod/pages.php:436 ../../../../inc/mod/pages.php:438
msgid "Edit board"
@@ -754,16 +755,16 @@ msgstr "IP"
#: ../../../../inc/mod/pages.php:862 ../../../../inc/mod/pages.php:1432
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:440
msgid "New ban"
-msgstr "Naujas draudimas"
+msgstr "Blokuoti naują IP"
#: ../../../../inc/mod/pages.php:931 ../../../../inc/mod/pages.php:914
#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:256
msgid "Ban list"
-msgstr "Draudimų sąrašas"
+msgstr "Užblokuotųjų sąrašas"
#: ../../../../inc/mod/pages.php:1105 ../../../../inc/mod/pages.php:1165
msgid "Move reply"
-msgstr ""
+msgstr "Perkelti atsakymą"
#: ../../../../inc/mod/pages.php:1131 ../../../../inc/mod/pages.php:1191
msgid "Target and source board are the same."
@@ -865,33 +866,33 @@ msgstr "Derinimas: SQL"
#. Print error
#: ../../../../inc/database.php:72 ../../../../inc/database.php:94
msgid "Database error: "
-msgstr ""
+msgstr "Klaida duomenų bazėje:"
#: ../../../../banned.php:4
msgid "Banned?"
-msgstr ""
+msgstr "Užblokuotas?"
#: ../../../../banned.php:5
msgid "You are not banned."
-msgstr ""
+msgstr "Tu nesi užblokuotas."
#. line 6
#: ../../../../templates/cache/3c/80/0ebbee302f4fad8d0d7f13e62db5.php:41
#: ../../../../templates/cache/e1/4c/f58701138b0d44bc13ada3e46deec60da83d42ff4f39720ccd6955b641f7.php:44
msgid "Go back"
-msgstr ""
+msgstr "Grįžti atgal"
#. line 13
#: ../../../../templates/cache/3c/80/0ebbee302f4fad8d0d7f13e62db5.php:56
#: ../../../../templates/cache/e1/4c/f58701138b0d44bc13ada3e46deec60da83d42ff4f39720ccd6955b641f7.php:59
msgid "Error information"
-msgstr ""
+msgstr "Informacija apie klaidą"
#. line 2
#: ../../../../templates/cache/82/40/4c4a4b82f787181e6500ce83494d.php:22
#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:25
msgid "Delete Post"
-msgstr "Ištrinti komentarą"
+msgstr "Ištrinti įrašą"
#. line 3
#. line 84
@@ -1054,7 +1055,7 @@ msgstr "Grįžti"
#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:61
#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:64
msgid "(No news to show.)"
-msgstr ""
+msgstr "(Naujienų nėra.)"
#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:85
#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:146
@@ -1091,9 +1092,9 @@ msgstr " "
#: ../../../../templates/cache/41/57/9143de5f74d921965e5ff24e0f1ce44a18317fd4937f5d8d65f56337acf3.php:88
msgid "1 reply"
msgid_plural "%count% replies"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "atsakymas"
+msgstr[1] "atsakymai"
+msgstr[2] "atsakymų"
#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:102
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:105
@@ -1128,7 +1129,7 @@ msgstr "Atsiliepimas"
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:605
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:318
msgid "View All"
-msgstr ""
+msgstr "Rodyti viską"
#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:561
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:526
@@ -1138,9 +1139,9 @@ msgstr ""
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:335
msgid "Last 1 Post"
msgid_plural "Last %count% Posts"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Paskutinis įrašas"
+msgstr[1] "%count% paskutiniai įrašai"
+msgstr[2] "%count% paskutinių įrašų"
#: ../../../../templates/cache/d8/f2/7780eb1adcdbda7e332659e3fb4f.php:598
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:563
@@ -1183,7 +1184,7 @@ msgstr[2] "%count% žinučių su paveikslėliais"
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:682
#: ../../../../templates/cache/b5/eb/fd7d06d38210e123d492fb7f2a1891578af746ef421003f1b55da157122f.php:395
msgid "omitted. Click reply to view."
-msgstr "nerodomi. Paspauskite atsliepimą, kad peržiūrėti."
+msgstr "nerodoma. Norėdamas peržiūrėti spausk „Atsakyti“."
#. line 7
#. line 14
@@ -1257,7 +1258,7 @@ msgstr "Email"
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:150
#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:61
msgid "Subject"
-msgstr "Subjektas"
+msgstr "Tema"
#. line 27
#: ../../../../templates/cache/39/42/cbc36382096edfa72a8bc26e4514.php:68
@@ -1307,7 +1308,7 @@ msgstr "Patvirtinimas"
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:265
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:302
msgid "Or URL"
-msgstr ""
+msgstr "Arba URL"
#. line 100
#. line 113
@@ -1361,7 +1362,7 @@ msgstr "Vėliavos"
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:352
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:356
msgid "Sticky"
-msgstr "Sticky"
+msgstr "Lipnu"
#. line 120
#. line 121
@@ -1397,7 +1398,7 @@ msgstr "Sticky"
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:366
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:370
msgid "Lock"
-msgstr "Užrakinti"
+msgstr "Užrakinta"
#. line 124
#. line 125
@@ -1449,28 +1450,28 @@ msgstr "(Failų trynimui.)"
#: ../../../../search.php:5
msgid "Post search is disabled"
-msgstr ""
+msgstr "Žinučių paieška išjungta"
#: ../../../../search.php:25 ../../../../search.php:31
#: ../../../../search.php:29 ../../../../search.php:35
msgid "Wait a while before searching again, please."
-msgstr ""
+msgstr "Luktelėk prieš vėl ieškodamas."
#: ../../../../search.php:131 ../../../../search.php:135
msgid "Query too broad."
-msgstr ""
+msgstr "Per plati užklausa."
#: ../../../../search.php:152 ../../../../search.php:156
#, php-format
msgid "%d result in"
msgid_plural "%d results in"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "%d rezultatas"
+msgstr[1] "%d rezultatai"
+msgstr[2] "%d rezultatų"
#: ../../../../search.php:163 ../../../../search.php:167
msgid "No results."
-msgstr ""
+msgstr "Rezultatų nerasta."
#. line 115
#. line 16
@@ -1522,24 +1523,24 @@ msgstr "Ieškoti"
#: ../../../../inc/mod/pages.php:939
msgid "Ban appeal not found!"
-msgstr ""
+msgstr "Apeliacija nerasta!"
#: ../../../../inc/mod/pages.php:989
#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:265
msgid "Ban appeals"
-msgstr ""
+msgstr "Užblokuotųjų apeliacijos"
#: ../../../../inc/mod/pages.php:1833
msgid "New user"
-msgstr ""
+msgstr "Naujas vartotojas"
#: ../../../../inc/mod/pages.php:1888
msgid "Impossible to promote/demote user."
-msgstr ""
+msgstr "Neįmanoma paaukštinti ar pažeminti vartotojo."
#: ../../../../inc/mod/pages.php:2612
msgid "Debug: APC"
-msgstr ""
+msgstr "Derinimas: APC"
#: ../../../../inc/config.php:1026 ../../../../inc/config.php:1017
#: ../../../../inc/config.php:1019 ../../../../inc/config.php:1021
@@ -1547,7 +1548,7 @@ msgstr ""
msgid ""
"Your code contained PHP syntax errors. Please go back and correct them. PHP "
"says: "
-msgstr ""
+msgstr "Tavo kode buvo PHP sintaksės klaidų. Grįžk ir ištaisyk jas. PHP sako:"
#. line 2
#. line 6
@@ -1597,7 +1598,7 @@ msgstr "Konfiguracija"
#. line 127
#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:357
msgid "Other"
-msgstr ""
+msgstr "Kita"
#. line 139
#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:391
@@ -2009,26 +2010,26 @@ msgstr "niekada"
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:159
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:161
msgid "Seen"
-msgstr ""
+msgstr "Matė"
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:375
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:201
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:167
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:295
msgid "Yes"
-msgstr ""
+msgstr "Taip"
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:381
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:207
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:173
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:301
msgid "No"
-msgstr ""
+msgstr "Ne"
#. line 163
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:419
msgid "Remove ban"
-msgstr "Pašalinti draudimą"
+msgstr "Atblokuoti"
#. line 183
#. line 5
@@ -2045,7 +2046,7 @@ msgstr "Pašalinti draudimą"
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:379
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:259
msgid "Time"
-msgstr ""
+msgstr "Laikas"
#. line 185
#. line 89
@@ -2075,7 +2076,7 @@ msgstr ""
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:387
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:267
msgid "Action"
-msgstr ""
+msgstr "Veiksmas"
#: ../../../../templates/cache/88/92/8e730a689121629afa3d2c0f374e1f246baa76e7cf0f3ec680f51805eccd.php:73
msgid "(or subnet)"
@@ -2129,26 +2130,26 @@ msgstr "Frazė:"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:38
msgid "Posts"
-msgstr ""
+msgstr "Įrašai"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:49
msgid "IP address notes"
-msgstr ""
+msgstr "Užrašai apie šį IP adresą"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:62
msgid "Bans"
-msgstr ""
+msgstr "Užblokuotųjų sąrašas"
#. line 18
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:88
msgid ""
"(Search is case-insensitive and based on keywords. To match exact phrases, "
"use \"quotes\". Use an asterisk (*) for wildcard.)"
-msgstr ""
+msgstr "(Paieška yra pagrįsta raktažodžiais ir jai nesvarbu ar naudojamos didžiosios ar mažosios raidės. Norėdamas rasti tikslią frazę, apskliausk ją \"tokiomis kabutėmis\". Nenuspėjamumo faktoriui naudok žvaigždutę (*).)"
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:25
msgid "There are no active bans."
-msgstr ""
+msgstr "Nėra galiojančių blokavimų."
#. line 8
#. line 47
@@ -2157,7 +2158,7 @@ msgstr ""
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:39
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:137
msgid "IP address/mask"
-msgstr ""
+msgstr "IP adresas/mask"
#. line 12
#. line 51
@@ -2166,12 +2167,12 @@ msgstr ""
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:55
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:153
msgid "Duration"
-msgstr ""
+msgstr "Trukmė"
#. line 92
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:269
msgid "Unban selected"
-msgstr ""
+msgstr "Atblokuoti pažymėtus"
#. line 6
#. line 4
@@ -2185,22 +2186,22 @@ msgstr ""
#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:30
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:45
msgid "Username"
-msgstr "Slapyvardis"
+msgstr "Vartotojo vardas"
#. line 23
#: ../../../../templates/cache/00/31/a027d7b6d57819b6e43e58620f3f4c76194dd75db65fc888a5053ce62803.php:60
msgid "Continue"
-msgstr "Toliau"
+msgstr "Tęsti"
#. line 80
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:210
msgid "Appeal time"
-msgstr ""
+msgstr "Apeliacijos laikas"
#. line 84
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:220
msgid "Appeal reason"
-msgstr ""
+msgstr "Apeliacijos priežastis"
#: ../../../../templates/cache/7d/63/b6fd83bf4ed7f6031a2b3373b997d2d40617bf98899fe672a0aae48520c5.php:31
msgid "There are no reports."
@@ -2208,99 +2209,99 @@ msgstr "Nėra pranešimų."
#: ../../../../post.php:802 ../../../../post.php:811 ../../../../post.php:825
msgid "That ban doesn't exist or is not for you."
-msgstr ""
+msgstr "Tokio bano nėra arba jis ne tau."
#: ../../../../post.php:806 ../../../../post.php:815 ../../../../post.php:829
msgid "You cannot appeal a ban of this length."
-msgstr ""
+msgstr "Negalima teikti apeliacijos tokios trukmės blokavimui."
#: ../../../../post.php:813 ../../../../post.php:822 ../../../../post.php:836
msgid "You cannot appeal this ban again."
-msgstr ""
+msgstr "Šiam blokavimui dar kartą teikti apeliacijos nebegalima."
#: ../../../../post.php:818 ../../../../post.php:827 ../../../../post.php:841
msgid "There is already a pending appeal for this ban."
-msgstr ""
+msgstr "Šiam blokavimui jau yra pateikta apeliacija."
#: ../../../../inc/image.php:24 ../../../../inc/image.php:62
msgid "Unsupported file format: "
-msgstr ""
+msgstr "Nepalaikomas failo formatas:"
#: ../../../../inc/image.php:282 ../../../../inc/image.php:288
msgid "Failed to redraw image!"
-msgstr ""
+msgstr "Nepavyko perpiešti paveikslėlio!"
#: ../../../../inc/image.php:324 ../../../../inc/image.php:343
#: ../../../../inc/image.php:368 ../../../../inc/image.php:342
#: ../../../../inc/image.php:366
msgid "Failed to resize image!"
-msgstr ""
+msgstr "Nepavyko pakeisti paveikslėlio dydžio!"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:35
msgid "You were banned! ;_;"
-msgstr ""
+msgstr "Tu buvai užblokuotas! ;_;"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:41
msgid "You are banned! ;_;"
-msgstr ""
+msgstr "Tu esi užblokuotas! ;_;"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:52
msgid "You were banned from"
-msgstr ""
+msgstr "Tu buvai užblokuotas iš"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:58
msgid "You have been banned from"
-msgstr ""
+msgstr "Tu buvai užblokuotas iš"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:82
msgid "for the following reason:"
-msgstr ""
+msgstr "dėl šios priežasties:"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:88
msgid "for an unspecified reason."
-msgstr ""
+msgstr "dėl nenurodytos priežasties."
#. line 32
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:110
msgid "Your ban was filed on"
-msgstr ""
+msgstr "Buvai užblokuotas"
#. line 51
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:123
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:156
msgid "has since expired. Refresh the page to continue."
-msgstr ""
+msgstr "nuo tada baigėsi. Norėdamas tęsti perkrauk puslapį."
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:129
msgid "expires"
-msgstr ""
+msgstr "baigiasi"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:133
msgid "from now, which is on"
-msgstr ""
+msgstr "nuo dabar, kas yra"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:183
msgid "will not expire"
-msgstr ""
+msgstr "nesibaigs"
#. line 78
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:192
msgid "Your IP address is"
-msgstr ""
+msgstr "Tavo IP adresas yra"
#. line 86
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:215
msgid "You were banned for the following post on"
-msgstr ""
+msgstr "Buvai užblokuotas dėl šios žinutės"
#. line 95
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:239
msgid "You submitted an appeal for this ban on"
-msgstr ""
+msgstr "Dėl šio blokavimo peteikei apeliaciją"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:245
msgid "It is still pending"
-msgstr ""
+msgstr "Vis dar laukiama svarstymo"
#. line 101
#. line 112
@@ -2319,18 +2320,18 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:257
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:289
msgid "You appealed this ban on"
-msgstr ""
+msgstr "Pateikei apeliaciją"
#. line 103
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:265
msgid "and it was denied. You may not appeal this ban again."
-msgstr ""
+msgstr "ir ji buvo atmesta. Daugiau apeliuoti šio blokavimo nebegali."
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:272
msgid ""
"You have submitted the maximum number of ban appeals allowed. You may not "
"appeal this ban again."
-msgstr ""
+msgstr "Pateikei didžiausią leidžiamą apeliacijų skaičių. Daugiau jų teikti nebegali."
#. line 114
#. line 121
@@ -2349,7 +2350,7 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:297
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:318
msgid "and it was denied."
-msgstr ""
+msgstr "ir ji buvo atmesta."
#. line 116
#. line 123
@@ -2368,16 +2369,16 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:302
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:323
msgid "You may appeal this ban again. Please enter your reasoning below."
-msgstr ""
+msgstr "Gali dar kartą pateikti apeliaciją dėl šio užblokavimo. Viską išdėstyk žemiau esančiame laukelyje."
#. line 119
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:310
msgid "You last appealed this ban on"
-msgstr ""
+msgstr "Paskutinį kartą teikei apeliaciją"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:332
msgid "You may appeal this ban. Please enter your reasoning below."
-msgstr ""
+msgstr "Gali pateikti apeliaciją dėl užblokavimo. Viską išdėstyk žemiau esančiame laukelyje."
#. line 4
#. line 16
@@ -2391,7 +2392,7 @@ msgstr ""
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:375
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:255
msgid "IP address"
-msgstr ""
+msgstr "IP adresas"
#. line 3
#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:26
@@ -2409,7 +2410,7 @@ msgstr "Paskutinis veiksmas"
#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:80
msgid "Unknown"
-msgstr ""
+msgstr "Nežinoma"
#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:94
msgid "none"
@@ -2425,7 +2426,7 @@ msgstr "Pažeminti"
#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:191
msgid "Are you sure you want to demote yourself?"
-msgstr ""
+msgstr "Ar tikrai nori pažeminti save pareigose?"
#: ../../../../templates/cache/fc/8d/2b5f6c25d93a9966c429a79ee7ebdd921957079dab214aebbc665d67b9f4.php:204
msgid "log"
@@ -2438,27 +2439,27 @@ msgstr "Privatus pranešimas"
#. line 6
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:36
msgid "Thread ID"
-msgstr ""
+msgstr "Temos ID"
#. line 14
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:51
msgid "Leave shadow thread"
-msgstr ""
+msgstr "Palikti šešėlinę temą"
#. line 18
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:58
msgid "locks thread; replies to it with a link."
-msgstr ""
+msgstr "užrakina temą; atsako į ją su nuoroda."
#. line 22
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:65
msgid "Target board"
-msgstr ""
+msgstr "Lenta į kurią nukreipiama"
#. line 8
#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:40
msgid "Select board"
-msgstr ""
+msgstr "Pasirinkti lentą"
#. line 17
#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:73
@@ -2470,23 +2471,23 @@ msgid ""
"name. To apply a filter, simply add to your query, for "
"example, name:Anonymous or subject:\"Some Thread\". "
"Wildcards cannot be used in filters."
-msgstr ""
+msgstr "Paieška yra pagrįsta raktažodžiais ir jai nesvarbu ar naudojamos didžiosios ar mažosios raidės. Norėdamas rasti tikslią frazę, apskliausk ją \"tokiomis kabutėmis\". Nenuspėjamumo faktoriui naudok žvaigždutę (*).
Paieškai galima pritaikyti tokius filtrus: id, thread, subject, ir name. Kad filtruotum tiesiog pridėk į savo užklausą tarkim „name:Anonimas“ arba „subject:\"Kokia tais tema\"“. Nenuspėjamumo faktoriaus filtruose naudoti negalima."
#. line 2
#: ../../../../templates/cache/57/a7/c0a734e494c78acfc595f033a070bdc87fdc3e6a28ad5aaa8666c7a1a966.php:25
msgid "Are you sure you want to do that?"
-msgstr ""
+msgstr "Ar tikrai nori tai padaryti?"
#: ../../../../templates/cache/57/a7/c0a734e494c78acfc595f033a070bdc87fdc3e6a28ad5aaa8666c7a1a966.php:31
msgid "Click to proceed to"
-msgstr ""
+msgstr "Tęsti"
#. line 5
#: ../../../../templates/cache/57/a7/c0a734e494c78acfc595f033a070bdc87fdc3e6a28ad5aaa8666c7a1a966.php:39
msgid ""
"You are probably seeing this message because Javascript being disabled. This"
" is a necessary security measure to prevent CSRF attacks."
-msgstr ""
+msgstr "Šią žinutę matai tikriausiai dėl to jog Javascript išjungtas. Tai būtina saugumo procedūra apsisaugojimui nuo CSRF atakų."
#. line 7
#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:44
@@ -2508,98 +2509,98 @@ msgstr "Pašalinti visus šio IP adreso išnaudojimo pranešimus."
#. line 4
#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:27
msgid "From"
-msgstr ""
+msgstr "Iš"
#. line 34
#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:105
msgid "Delete forever"
-msgstr ""
+msgstr "Ištrinti galutinai"
#. line 39
#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:119
msgid "Reply with quote"
-msgstr ""
+msgstr "Atsakyti su citata"
#. line 18
#: ../../../../templates/cache/1f/f5/c63468797b4f93a8005563716a720117a6d51a804f2124a4c5158ca78525.php:62
msgid "Send message"
-msgstr ""
+msgstr "Siųsti žinutę"
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:25
msgid "There are no themes available."
-msgstr ""
+msgstr "Nėra prieinamų išvaizdos temų."
#. line 11
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:50
msgid "Version"
-msgstr ""
+msgstr "Versija"
#. line 15
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:60
msgid "Description"
-msgstr ""
+msgstr "Aprašymas"
#. line 19
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:70
msgid "Thumbnail"
-msgstr ""
+msgstr "Miniatiūra"
#. line 27
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:93
msgid "Use theme"
-msgstr ""
+msgstr "Naudoti išvaizdos temą"
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:100
msgid "Reconfigure"
-msgstr ""
+msgstr "Perkonfigūruoti"
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:102
msgid "Install"
-msgstr ""
+msgstr "Instaliuoti"
#: ../../../../templates/cache/ae/30/5b1888bb2e8ab6981af945fea88c1ecb021b0dfa8a068ee7adeb9dd3ee7d.php:123
msgid "Uninstall"
-msgstr ""
+msgstr "Pašalinti"
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:72
msgid "new; optional"
-msgstr ""
+msgstr "nauja; pasirinktinai"
#. line 32
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:98
msgid "Group"
-msgstr ""
+msgstr "Grupė"
#. line 56
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:161
msgid "All boards"
-msgstr ""
+msgstr "Visos lentos"
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:223
msgid "Create user"
-msgstr ""
+msgstr "Sukurti vartotoją"
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:229
msgid "Save changes"
-msgstr ""
+msgstr "Išsaugoti pakeitimus"
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:236
msgid "Delete user"
-msgstr ""
+msgstr "Pašalinti vartotoją"
#: ../../../../templates/cache/37/ea/10898251a344348e062662ce7a7b7f6c8dae001e2c860ce58ea35cedd935.php:331
msgid "View more logs for this user."
-msgstr ""
+msgstr "Peržiūrėti daugiau įrašų iš šio vartotojo veiksmų žurnalo."
#. line 84
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:255
msgid "Flag"
-msgstr ""
+msgstr "Vėliava"
#. line 87
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:261
msgid "None"
-msgstr ""
+msgstr "Nieko"
#. When moving a thread to another board and choosing to keep a "shadow
#. thread", an automated post (with
@@ -2609,10 +2610,10 @@ msgstr ""
#: ../../../../inc/config.php:1211
#, php-format
msgid "Moved to %s."
-msgstr ""
+msgstr "Perkelta į %s."
#: ../../../../templates/themes/recent/theme.php:50
msgid ""
"Can't build the RecentPosts theme, because there are no boards to be "
"fetched."
-msgstr ""
+msgstr "Negalima sukurti RecentPosts išvaizdos temos, nes nėra lentų."
diff --git a/inc/locale/lv_LV/LC_MESSAGES/javascript.js b/inc/locale/lv_LV/LC_MESSAGES/javascript.js
index 5c95f723..07f70c94 100644
--- a/inc/locale/lv_LV/LC_MESSAGES/javascript.js
+++ b/inc/locale/lv_LV/LC_MESSAGES/javascript.js
@@ -1 +1 @@
-l10n = {"Style: ":"Stils:","File":"Fails","hide":"pasl\u0113pt","show":"par\u0101d\u012bt","Show locked threads":"R\u0101d\u012bt sl\u0113gtos pavedienus","Hide locked threads":"Sl\u0113pt sl\u0113gtos pavedienus","URL":"URL","Select":"Izv\u0113l\u0113ties","hidden":"pasl\u0113pts","Show images":"R\u0101d\u012bt att\u0113lus","Hide images":"Pasl\u0113pt att\u0113lus","Password":"Parole","Delete file only":"Dz\u0113st tikai failu","Delete":"Dz\u0113st","Reason":"Iemesls","Report":"Zi\u0146ot","Click reply to view.":"Nospiest uz atbildes, lai apskat\u012btu","Click to expand":"Nospiest, lai izv\u0113rstu","Hide expanded replies":"Pasl\u0113pt izv\u0113rst\u0101s atbildes","Brush size":"Otas izm\u0113rs","Set text":"Uzst\u0101d\u012bt tekstu","Clear":"Not\u012br\u012bt","Save":"Saglab\u0101t","Load":"Iel\u0101d\u0113t","Toggle eraser":"P\u0101rsl\u0113gt dz\u0113\u0161anu","Get color":"Ieg\u016bt kr\u0101su","Fill":"Aizpild\u012bt","enabled":"iesl\u0113gts","disabled":"izsl\u0113gts"};
\ No newline at end of file
+l10n = {"Style: ":"Stils:","File":"Fails","hide":"pasl\u0113pt","show":"par\u0101d\u012bt","Show locked threads":"R\u0101d\u012bt sl\u0113gtos pavedienus","Hide locked threads":"Sl\u0113pt sl\u0113gtos pavedienus","URL":"URL","Select":"Izv\u0113l\u0113ties","Remote":"Att\u0101lin\u0101ti","Embed":"Ieguld\u012bt","Oekaki":"Oekaki","hidden":"pasl\u0113pts","Show images":"R\u0101d\u012bt att\u0113lus","Hide images":"Pasl\u0113pt att\u0113lus","Password":"Parole","Delete file only":"Dz\u0113st tikai failu","Delete":"Dz\u0113st","Reason":"Iemesls","Report":"Zi\u0146ot","Click reply to view.":"Nospiest uz atbildes, lai apskat\u012btu","Click to expand":"Nospiest, lai izv\u0113rstu","Hide expanded replies":"Pasl\u0113pt izv\u0113rst\u0101s atbildes","Brush size":"Otas izm\u0113rs","Set text":"Uzst\u0101d\u012bt tekstu","Clear":"Not\u012br\u012bt","Save":"Saglab\u0101t","Load":"Iel\u0101d\u0113t","Toggle eraser":"P\u0101rsl\u0113gt dz\u0113\u0161anu","Get color":"Ieg\u016bt kr\u0101su","Fill":"Aizpild\u012bt","Use oekaki instead of file?":"Lietot oekaki faila viet\u0101?","Edit in oekaki":"Redi\u0123\u0113t oekaki","Enter some text":"Ierakstiet tekstu","Enter font or leave empty":"Ierakstiet fontu, vai atst\u0101jiet tuk\u0161u","Forced anonymity":"Piespiedu anonimit\u0101te","enabled":"iesl\u0113gts","disabled":"izsl\u0113gts","Sun":"SV","Mon":"PR","Tue":"OT","Wed":"TR","Thu":"CE","Fri":"PK","Sat":"SE","Catalog":"Katalogs","Submit":"Nos\u016bt\u012bt","Quick reply":"\u0100tr\u0101 atbilde","Posting mode: Replying to >>{0}<\/small>":"Rakst\u012b\u0161anas re\u017e\u012bms: Atbilde >>{0}<\/small>","Return":"Atgriezties","Expand all images":"Izv\u0113rst visus att\u0113lus","Hello!":"Sveicin\u0101ti!","{0} users":"{0} lietot\u0101ji","(hide threads from this board)":"(pasl\u0113pt pavedienus no \u0161\u012b d\u0113\u013ca)","(show threads from this board)":"(r\u0101d\u012bt pavedienus no \u0161\u012b d\u0113\u013ca)","No more threads to display":"Nav vair\u0101k r\u0101d\u0101mu pavedienu","Loading...":"Iel\u0101de...","Save as original filename":"Saglab\u0101t k\u0101 jaunu faila nosaukumu","Reported post(s).":"Nozi\u0146otie ieraksti.","An unknown error occured!":"Radusies nezin\u0101ma k\u013c\u016bme!","Something went wrong... An unknown error occured!":"Kaut kas nog\u0101ja greizi... radusies nezin\u0101ma k\u013c\u016bme!","Working...":"Apstr\u0101d\u0101...","Posting... (#%)":"Ieraksta... (#%)","Posted...":"Ierakst\u012bts...","An unknown error occured when posting!":"Radusies nezin\u0101ma k\u013c\u016bme ierakstot zi\u0146ojumu!","Posting...":"Ieraksta...","Upload URL":"Aug\u0161upiel\u0101d\u0113t URL","Spoiler Image":"Spoilera att\u0113ls","Comment":"Koment\u0101rs","Quick Reply":"\u0100tr\u0101 atbilde","Stop watching this thread":"P\u0101rst\u0101t uzraudz\u012bt \u0161o pavedienu","Watch this thread":"Uzraudz\u012bt \u0161o pavedienu","Unpin this board":"Atspraust d\u0113li","Pin this board":"Piespraust d\u0113li","Stop watching this board":"P\u0101rst\u0101t uzraudz\u012bt \u0161o d\u0113li","Watch this board":"Uzraudz\u012bt \u0161o d\u0113li","Click on any image on this site to load it into oekaki applet":"Uzklik\u0161\u0137iniet uz jebkura att\u0113la, lai iel\u0101d\u0113tu to oekaki s\u012bklietnotn\u0113","Sunday":"Sv\u0113tdiena","Monday":"Pirmdiena","Tuesday":"Otrdiena","Wednesday":"Tre\u0161diena","Thursday":"Ceturtdiena","Friday":"Piektdiena","Saturday":"Sestdiena","January":"Janv\u0101ris","February":"Febru\u0101ris","March":"Marts","April":"Apr\u012blis","May":"Maijs","June":"J\u016bnijs","July":"\u016blijs","August":"Augusts","September":"Septembris","October":"Oktobris","November":"Novembris","December":"Decembris","Jan":"Jan","Feb":"Feb","Mar":"Mar","Apr":"Apr","Jun":"Jun","Jul":"Jul","Aug":"Aug","Sep":"Sep","Oct":"Okt","Nov":"Nov","Dec":"Dec","AM":"AM","PM":"PM","am":"am","pm":"pm","Your browser does not support HTML5 video.":"J\u016bsu p\u0101rl\u016bks neatbalsta HTML 5 video.","[play once]":"[atsp\u0113l\u0113t vienreiz]","[loop]":"[atsp\u0113l\u0113t atk\u0101rtoti]","WebM Settings":"WebM uzst\u0101d\u012bjumi","Expand videos inline":"Izv\u0113rst video iek\u013cauti","Play videos on hover":"Atsp\u0113l\u0113t video uzbraucot","Default volume":"Noklus\u0113juma ska\u013cums","Tree view":"Koka skat\u012bjums"};
\ No newline at end of file
diff --git a/inc/locale/lv_LV/LC_MESSAGES/javascript.po b/inc/locale/lv_LV/LC_MESSAGES/javascript.po
index 2dd47a49..7a07c9d9 100644
--- a/inc/locale/lv_LV/LC_MESSAGES/javascript.po
+++ b/inc/locale/lv_LV/LC_MESSAGES/javascript.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-30 21:37+0000\n"
+"PO-Revision-Date: 2014-05-07 10:56+0000\n"
"Last-Translator: diggydoc \n"
"Language-Team: Latvian (Latvia) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/lv_LV/)\n"
"MIME-Version: 1.0\n"
@@ -65,15 +65,15 @@ msgstr "Izvēlēties"
#: ../../../../js/upload-selection.js:53 ../../../../js/upload-selection.js:63
msgid "Remote"
-msgstr ""
+msgstr "Attālināti"
#: ../../../../js/upload-selection.js:56 ../../../../js/upload-selection.js:66
msgid "Embed"
-msgstr ""
+msgstr "Ieguldīt"
#: ../../../../js/upload-selection.js:59 ../../../../js/upload-selection.js:69
msgid "Oekaki"
-msgstr ""
+msgstr "Oekaki"
#: ../../../../js/toggle-images.js:41 ../../../../js/toggle-images.js:42
msgid "hidden"
@@ -160,19 +160,19 @@ msgstr "Aizpildīt"
#: ../../../../js/oekaki.js:12
msgid "Use oekaki instead of file?"
-msgstr ""
+msgstr "Lietot oekaki faila vietā?"
#: ../../../../js/oekaki.js:21
msgid "Edit in oekaki"
-msgstr ""
+msgstr "Rediģēt oekaki"
#: ../../../../js/oekaki.js:152
msgid "Enter some text"
-msgstr ""
+msgstr "Ierakstiet tekstu"
#: ../../../../js/oekaki.js:153
msgid "Enter font or leave empty"
-msgstr ""
+msgstr "Ierakstiet fontu, vai atstājiet tukšu"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:69 ../../../../js/forced-anon.js:60
@@ -180,7 +180,7 @@ msgstr ""
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
#: ../../../../js/forced-anon.js:71
msgid "Forced anonymity"
-msgstr ""
+msgstr "Piespiedu anonimitāte"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:66
@@ -197,173 +197,173 @@ msgstr "izslēgts"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sun"
-msgstr ""
+msgstr "SV"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Mon"
-msgstr ""
+msgstr "PR"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Tue"
-msgstr ""
+msgstr "OT"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Wed"
-msgstr ""
+msgstr "TR"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Thu"
-msgstr ""
+msgstr "CE"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Fri"
-msgstr ""
+msgstr "PK"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sat"
-msgstr ""
+msgstr "SE"
#: ../../../../js/catalog-link.js:21 ../../../../js/catalog-link.js:32
#: ../../../../js/catalog-link.js:40 ../../../../js/catalog-link.js:33
#: ../../../../js/catalog-link.js:44 ../../../../js/catalog-link.js:52
msgid "Catalog"
-msgstr ""
+msgstr "Katalogs"
#: ../../../../js/quick-reply.js:21 ../../../../js/quick-reply-old.js:21
#: ../../../../js/quick-reply-old.js:23
msgid "Submit"
-msgstr ""
+msgstr "Nosūtīt"
#: ../../../../js/quick-reply.js:31 ../../../../js/quick-reply-old.js:31
#: ../../../../js/quick-reply-old.js:33
msgid "Quick reply"
-msgstr ""
+msgstr "Ātrā atbilde"
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
#, python-brace-format
msgid "Posting mode: Replying to >>{0}"
-msgstr ""
+msgstr "Rakstīšanas režīms: Atbilde >>{0}"
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
msgid "Return"
-msgstr ""
+msgstr "Atgriezties"
#: ../../../../js/expand-all-images.js:20
#: ../../../../js/expand-all-images.js:21
#: ../../../../js/expand-all-images.js:22
msgid "Expand all images"
-msgstr ""
+msgstr "Izvērst visus attēlus"
#: ../../../../templates/main.js:6
msgid "Hello!"
-msgstr ""
+msgstr "Sveicināti!"
#: ../../../../templates/main.js:18
#, python-brace-format
msgid "{0} users"
-msgstr ""
+msgstr "{0} lietotāji"
#: ../../../../templates/themes/ukko/ukko.js:28
#: ../../../../templates/themes/ukko/ukko.js:39
#: ../../../../templates/themes/ukko/ukko.js:29
#: ../../../../templates/themes/ukko/ukko.js:40
msgid "(hide threads from this board)"
-msgstr ""
+msgstr "(paslēpt pavedienus no šī dēļa)"
#: ../../../../templates/themes/ukko/ukko.js:32
#: ../../../../templates/themes/ukko/ukko.js:44
#: ../../../../templates/themes/ukko/ukko.js:33
#: ../../../../templates/themes/ukko/ukko.js:45
msgid "(show threads from this board)"
-msgstr ""
+msgstr "(rādīt pavedienus no šī dēļa)"
#: ../../../../templates/themes/ukko/ukko.js:57
#: ../../../../templates/themes/ukko/ukko.js:58
msgid "No more threads to display"
-msgstr ""
+msgstr "Nav vairāk rādāmu pavedienu"
#: ../../../../templates/themes/ukko/ukko.js:79
#: ../../../../templates/themes/ukko/ukko.js:80
msgid "Loading..."
-msgstr ""
+msgstr "Ielāde..."
#: ../../../../js/download-original.js:32
#: ../../../../js/download-original.js:33
msgid "Save as original filename"
-msgstr ""
+msgstr "Saglabāt kā jaunu faila nosaukumu"
#: ../../../../js/ajax-post-controls.js:43
msgid "Reported post(s)."
-msgstr ""
+msgstr "Noziņotie ieraksti."
#: ../../../../js/ajax-post-controls.js:53
msgid "An unknown error occured!"
-msgstr ""
+msgstr "Radusies nezināma kļūme!"
#: ../../../../js/ajax-post-controls.js:60
msgid "Something went wrong... An unknown error occured!"
-msgstr ""
+msgstr "Kaut kas nogāja greizi... radusies nezināma kļūme!"
#: ../../../../js/ajax-post-controls.js:68
msgid "Working..."
-msgstr ""
+msgstr "Apstrādā..."
#: ../../../../js/ajax.js:42 ../../../../js/ajax.js:45
msgid "Posting... (#%)"
-msgstr ""
+msgstr "Ieraksta... (#%)"
#: ../../../../js/ajax.js:104 ../../../../js/ajax.js:109
msgid "Posted..."
-msgstr ""
+msgstr "Ierakstīts..."
#: ../../../../js/ajax.js:106 ../../../../js/ajax.js:111
msgid "An unknown error occured when posting!"
-msgstr ""
+msgstr "Radusies nezināma kļūme ierakstot ziņojumu!"
#: ../../../../js/ajax.js:130 ../../../../js/ajax.js:135
msgid "Posting..."
-msgstr ""
+msgstr "Ieraksta..."
#: ../../../../js/quick-reply.js:223 ../../../../js/quick-reply.js:224
#: ../../../../js/quick-reply.js:225
msgid "Upload URL"
-msgstr ""
+msgstr "Augšupielādēt URL"
#: ../../../../js/quick-reply.js:266 ../../../../js/quick-reply.js:267
#: ../../../../js/quick-reply.js:268
msgid "Spoiler Image"
-msgstr ""
+msgstr "Spoilera attēls"
#: ../../../../js/quick-reply.js:277 ../../../../js/quick-reply.js:278
#: ../../../../js/quick-reply.js:279
msgid "Comment"
-msgstr ""
+msgstr "Komentārs"
#: ../../../../js/quick-reply.js:285 ../../../../js/quick-reply.js:406
#: ../../../../js/quick-reply.js:286 ../../../../js/quick-reply.js:407
#: ../../../../js/quick-reply.js:287 ../../../../js/quick-reply.js:408
msgid "Quick Reply"
-msgstr ""
+msgstr "Ātrā atbilde"
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Stop watching this thread"
-msgstr ""
+msgstr "Pārstāt uzraudzīt šo pavedienu"
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Watch this thread"
-msgstr ""
+msgstr "Uzraudzīt šo pavedienu"
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
@@ -371,7 +371,7 @@ msgstr ""
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Unpin this board"
-msgstr ""
+msgstr "Atspraust dēli"
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
@@ -379,7 +379,7 @@ msgstr ""
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Pin this board"
-msgstr ""
+msgstr "Piespraust dēli"
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
@@ -387,7 +387,7 @@ msgstr ""
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Stop watching this board"
-msgstr ""
+msgstr "Pārstāt uzraudzīt šo dēli"
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
@@ -395,176 +395,176 @@ msgstr ""
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Watch this board"
-msgstr ""
+msgstr "Uzraudzīt šo dēli"
#: ../../../../js/wpaint.js:113
msgid "Click on any image on this site to load it into oekaki applet"
-msgstr ""
+msgstr "Uzklikšķiniet uz jebkura attēla, lai ielādētu to oekaki sīklietnotnē"
#: ../../../../js/local-time.js:29
msgid "Sunday"
-msgstr ""
+msgstr "Svētdiena"
#: ../../../../js/local-time.js:29
msgid "Monday"
-msgstr ""
+msgstr "Pirmdiena"
#: ../../../../js/local-time.js:29
msgid "Tuesday"
-msgstr ""
+msgstr "Otrdiena"
#: ../../../../js/local-time.js:29
msgid "Wednesday"
-msgstr ""
+msgstr "Trešdiena"
#: ../../../../js/local-time.js:29
msgid "Thursday"
-msgstr ""
+msgstr "Ceturtdiena"
#: ../../../../js/local-time.js:29
msgid "Friday"
-msgstr ""
+msgstr "Piektdiena"
#: ../../../../js/local-time.js:29
msgid "Saturday"
-msgstr ""
+msgstr "Sestdiena"
#: ../../../../js/local-time.js:31
msgid "January"
-msgstr ""
+msgstr "Janvāris"
#: ../../../../js/local-time.js:31
msgid "February"
-msgstr ""
+msgstr "Februāris"
#: ../../../../js/local-time.js:31
msgid "March"
-msgstr ""
+msgstr "Marts"
#: ../../../../js/local-time.js:31
msgid "April"
-msgstr ""
+msgstr "Aprīlis"
#: ../../../../js/local-time.js:31 ../../../../js/local-time.js:32
msgid "May"
-msgstr ""
+msgstr "Maijs"
#: ../../../../js/local-time.js:31
msgid "June"
-msgstr ""
+msgstr "Jūnijs"
#: ../../../../js/local-time.js:31
msgid "July"
-msgstr ""
+msgstr "ūlijs"
#: ../../../../js/local-time.js:31
msgid "August"
-msgstr ""
+msgstr "Augusts"
#: ../../../../js/local-time.js:31
msgid "September"
-msgstr ""
+msgstr "Septembris"
#: ../../../../js/local-time.js:31
msgid "October"
-msgstr ""
+msgstr "Oktobris"
#: ../../../../js/local-time.js:31
msgid "November"
-msgstr ""
+msgstr "Novembris"
#: ../../../../js/local-time.js:31
msgid "December"
-msgstr ""
+msgstr "Decembris"
#: ../../../../js/local-time.js:32
msgid "Jan"
-msgstr ""
+msgstr "Jan"
#: ../../../../js/local-time.js:32
msgid "Feb"
-msgstr ""
+msgstr "Feb"
#: ../../../../js/local-time.js:32
msgid "Mar"
-msgstr ""
+msgstr "Mar"
#: ../../../../js/local-time.js:32
msgid "Apr"
-msgstr ""
+msgstr "Apr"
#: ../../../../js/local-time.js:32
msgid "Jun"
-msgstr ""
+msgstr "Jun"
#: ../../../../js/local-time.js:32
msgid "Jul"
-msgstr ""
+msgstr "Jul"
#: ../../../../js/local-time.js:32
msgid "Aug"
-msgstr ""
+msgstr "Aug"
#: ../../../../js/local-time.js:32
msgid "Sep"
-msgstr ""
+msgstr "Sep"
#: ../../../../js/local-time.js:32
msgid "Oct"
-msgstr ""
+msgstr "Okt"
#: ../../../../js/local-time.js:32
msgid "Nov"
-msgstr ""
+msgstr "Nov"
#: ../../../../js/local-time.js:32
msgid "Dec"
-msgstr ""
+msgstr "Dec"
#: ../../../../js/local-time.js:33
msgid "AM"
-msgstr ""
+msgstr "AM"
#: ../../../../js/local-time.js:34
msgid "PM"
-msgstr ""
+msgstr "PM"
#: ../../../../js/local-time.js:35
msgid "am"
-msgstr ""
+msgstr "am"
#: ../../../../js/local-time.js:36
msgid "pm"
-msgstr ""
+msgstr "pm"
#: ../../../../js/expand-video.js:45 ../../../../js/expand-video.js:48
msgid "Your browser does not support HTML5 video."
-msgstr ""
+msgstr "Jūsu pārlūks neatbalsta HTML 5 video."
#: ../../../../js/expand-video.js:189 ../../../../js/expand-video.js:192
msgid "[play once]"
-msgstr ""
+msgstr "[atspēlēt vienreiz]"
#: ../../../../js/expand-video.js:190 ../../../../js/expand-video.js:193
msgid "[loop]"
-msgstr ""
+msgstr "[atspēlēt atkārtoti]"
#: ../../../../js/webm-settings.js:42
msgid "WebM Settings"
-msgstr ""
+msgstr "WebM uzstādījumi"
#: ../../../../js/webm-settings.js:44
msgid "Expand videos inline"
-msgstr ""
+msgstr "Izvērst video iekļauti"
#: ../../../../js/webm-settings.js:45
msgid "Play videos on hover"
-msgstr ""
+msgstr "Atspēlēt video uzbraucot"
#: ../../../../js/webm-settings.js:46
msgid "Default volume"
-msgstr ""
+msgstr "Noklusējuma skaļums"
#: ../../../../js/treeview.js:18
msgid "Tree view"
-msgstr ""
+msgstr "Koka skatījums"
diff --git a/inc/locale/lv_LV/LC_MESSAGES/tinyboard.mo b/inc/locale/lv_LV/LC_MESSAGES/tinyboard.mo
index 5c3b037a..ca6c96f7 100644
Binary files a/inc/locale/lv_LV/LC_MESSAGES/tinyboard.mo and b/inc/locale/lv_LV/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/lv_LV/LC_MESSAGES/tinyboard.po b/inc/locale/lv_LV/LC_MESSAGES/tinyboard.po
index 90799049..1be8878f 100644
--- a/inc/locale/lv_LV/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/lv_LV/LC_MESSAGES/tinyboard.po
@@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# diggydoc , 2014
msgid ""
msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-30 21:28+0000\n"
-"Last-Translator: czaks \n"
+"PO-Revision-Date: 2014-05-07 11:38+0000\n"
+"Last-Translator: diggydoc \n"
"Language-Team: Latvian (Latvia) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/lv_LV/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,9 +27,9 @@ msgstr ""
#: ../../../../inc/functions.php:653 ../../../../inc/functions.php:670
msgid "second"
msgid_plural "seconds"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "sekundes"
+msgstr[1] "sekunde"
+msgstr[2] "sekundes"
#: ../../../../inc/functions.php:585 ../../../../inc/functions.php:602
#: ../../../../inc/functions.php:593 ../../../../inc/functions.php:610
@@ -39,9 +40,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:655 ../../../../inc/functions.php:672
msgid "minute"
msgid_plural "minutes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "minūtes"
+msgstr[1] "minūte"
+msgstr[2] "minūtes"
#: ../../../../inc/functions.php:587 ../../../../inc/functions.php:604
#: ../../../../inc/functions.php:595 ../../../../inc/functions.php:612
@@ -52,9 +53,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:657 ../../../../inc/functions.php:674
msgid "hour"
msgid_plural "hours"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "stundas"
+msgstr[1] "stunda"
+msgstr[2] "stundas"
#: ../../../../inc/functions.php:589 ../../../../inc/functions.php:606
#: ../../../../inc/functions.php:597 ../../../../inc/functions.php:614
@@ -65,9 +66,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:659 ../../../../inc/functions.php:676
msgid "day"
msgid_plural "days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "dienas"
+msgstr[1] "diena"
+msgstr[2] "dienas"
#: ../../../../inc/functions.php:591 ../../../../inc/functions.php:608
#: ../../../../inc/functions.php:599 ../../../../inc/functions.php:616
@@ -78,9 +79,9 @@ msgstr[2] ""
#: ../../../../inc/functions.php:661 ../../../../inc/functions.php:678
msgid "week"
msgid_plural "weeks"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "nedēļas"
+msgstr[1] "nedēļa"
+msgstr[2] "nedēļas"
#: ../../../../inc/functions.php:594 ../../../../inc/functions.php:611
#: ../../../../inc/functions.php:602 ../../../../inc/functions.php:619
@@ -91,16 +92,16 @@ msgstr[2] ""
#: ../../../../inc/functions.php:664 ../../../../inc/functions.php:681
msgid "year"
msgid_plural "years"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "gadi"
+msgstr[1] "gads"
+msgstr[2] "gadi"
#: ../../../../inc/functions.php:628 ../../../../inc/functions.php:670
#: ../../../../inc/functions.php:699 ../../../../inc/functions.php:702
#: ../../../../inc/functions.php:708 ../../../../inc/functions.php:722
#: ../../../../inc/functions.php:732
msgid "Banned!"
-msgstr ""
+msgstr "Banots!"
#. There is no previous page.
#: ../../../../inc/functions.php:1125 ../../../../inc/functions.php:1139
@@ -112,7 +113,7 @@ msgstr ""
#: ../../../../inc/functions.php:1234 ../../../../inc/functions.php:1230
#: ../../../../inc/functions.php:1244
msgid "Previous"
-msgstr ""
+msgstr "Iepriekšējais"
#. There is no next page.
#: ../../../../inc/functions.php:1144 ../../../../inc/functions.php:1153
@@ -124,76 +125,76 @@ msgstr ""
#: ../../../../inc/functions.php:1248 ../../../../inc/functions.php:1249
#: ../../../../inc/functions.php:1258
msgid "Next"
-msgstr ""
+msgstr "Nākamais"
#: ../../../../inc/display.php:93 ../../../../inc/display.php:105
#: ../../../../inc/display.php:108 ../../../../inc/display.php:112
msgid "Error"
-msgstr ""
+msgstr "Kļūda"
#: ../../../../inc/display.php:94 ../../../../inc/display.php:106
#: ../../../../inc/display.php:109 ../../../../inc/display.php:113
msgid "An error has occured."
-msgstr ""
+msgstr "Radusies nezināma kļūme!"
#: ../../../../inc/display.php:110 ../../../../inc/mod/pages.php:62
#: ../../../../inc/mod/pages.php:60 ../../../../inc/display.php:122
#: ../../../../inc/display.php:125 ../../../../inc/display.php:129
msgid "Login"
-msgstr ""
+msgstr "Pieteikties"
#: ../../../../inc/display.php:229 ../../../../inc/display.php:241
#: ../../../../inc/display.php:244 ../../../../inc/display.php:248
#, php-format
msgid "Post too long. Click here to view the full text."
-msgstr ""
+msgstr "Ieraksts pārāk garš. Klikšķiniet šeit, lai pārskatītu pilnu tekstu."
#: ../../../../inc/display.php:368 ../../../../inc/display.php:473
#: ../../../../inc/display.php:385 ../../../../inc/display.php:495
#: ../../../../inc/display.php:388 ../../../../inc/display.php:498
#: ../../../../inc/display.php:392 ../../../../inc/display.php:502
msgid "Ban"
-msgstr ""
+msgstr "Banot"
#: ../../../../inc/display.php:372 ../../../../inc/display.php:477
#: ../../../../inc/display.php:389 ../../../../inc/display.php:499
#: ../../../../inc/display.php:392 ../../../../inc/display.php:502
#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
msgid "Ban & Delete"
-msgstr ""
+msgstr "Banot un Dzēst"
#: ../../../../inc/display.php:376 ../../../../inc/display.php:481
#: ../../../../inc/display.php:393 ../../../../inc/display.php:503
#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
msgid "Delete file"
-msgstr ""
+msgstr "Dzēst failu"
#: ../../../../inc/display.php:376 ../../../../inc/display.php:481
#: ../../../../inc/display.php:393 ../../../../inc/display.php:503
#: ../../../../inc/display.php:396 ../../../../inc/display.php:506
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
msgid "Are you sure you want to delete this file?"
-msgstr ""
+msgstr "Vai esiet pārliecināti, ka vēlaties dzēst šo failu?"
#: ../../../../inc/display.php:380 ../../../../inc/display.php:485
#: ../../../../inc/display.php:397 ../../../../inc/display.php:507
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
#: ../../../../inc/display.php:404 ../../../../inc/display.php:514
msgid "Spoiler File"
-msgstr ""
+msgstr "Spoilera fails"
#: ../../../../inc/display.php:380 ../../../../inc/display.php:485
#: ../../../../inc/display.php:397 ../../../../inc/display.php:507
#: ../../../../inc/display.php:400 ../../../../inc/display.php:510
#: ../../../../inc/display.php:404 ../../../../inc/display.php:514
msgid "Are you sure you want to spoiler this file?"
-msgstr ""
+msgstr "Vai esat pārliecināti, ka vēlieties spoilot šo failu?"
#: ../../../../inc/display.php:384 ../../../../inc/display.php:401
#: ../../../../inc/display.php:404 ../../../../inc/display.php:408
msgid "Move reply to another board"
-msgstr ""
+msgstr "Pārvietot atbildi uz citu dēli"
#: ../../../../inc/display.php:388 ../../../../inc/display.php:512
#: ../../../../inc/mod/pages.php:1425 ../../../../inc/mod/pages.php:1494
@@ -201,7 +202,7 @@ msgstr ""
#: ../../../../inc/display.php:408 ../../../../inc/display.php:537
#: ../../../../inc/display.php:412 ../../../../inc/display.php:541
msgid "Edit post"
-msgstr ""
+msgstr "Rediģēt ierakstu"
#. line 5
#: ../../../../inc/display.php:461
@@ -210,69 +211,69 @@ msgstr ""
#: ../../../../templates/cache/17/2f/ea79f6d94768f645ed33b3f5c1a54caee235af04d24b88e34cc8c2d48583.php:36
#: ../../../../inc/display.php:486 ../../../../inc/display.php:490
msgid "Delete"
-msgstr ""
+msgstr "Dzēst"
#: ../../../../inc/display.php:461 ../../../../inc/display.php:483
#: ../../../../inc/display.php:486 ../../../../inc/display.php:490
msgid "Are you sure you want to delete this?"
-msgstr ""
+msgstr "Vai esat pārliecināti, ka vēlaties šo dzēst?"
#: ../../../../inc/display.php:465 ../../../../inc/display.php:487
#: ../../../../inc/display.php:490 ../../../../inc/display.php:494
msgid "Delete all posts by IP"
-msgstr ""
+msgstr "Dzēst visus ierakstus no šīs IP"
#: ../../../../inc/display.php:465 ../../../../inc/display.php:487
#: ../../../../inc/display.php:490 ../../../../inc/display.php:494
msgid "Are you sure you want to delete all posts by this IP address?"
-msgstr ""
+msgstr "Vai esat pārliecināti, ka vēlaties dzēst visus ierakstus no šīs IP?"
#: ../../../../inc/display.php:469 ../../../../inc/display.php:491
#: ../../../../inc/display.php:494 ../../../../inc/display.php:498
msgid "Delete all posts by IP across all boards"
-msgstr ""
+msgstr "Dzēst visus ierakstus no šīs IP, visos dēļos"
#: ../../../../inc/display.php:469 ../../../../inc/display.php:491
#: ../../../../inc/display.php:494 ../../../../inc/display.php:498
msgid ""
"Are you sure you want to delete all posts by this IP address, across all "
"boards?"
-msgstr ""
+msgstr "Vai esat pārliecināti, ka vēlaties dzēst visus ierakstus no šīs IP, visos dēļos?"
#: ../../../../inc/display.php:490 ../../../../inc/display.php:512
#: ../../../../inc/display.php:515 ../../../../inc/display.php:519
msgid "Make thread not sticky"
-msgstr ""
+msgstr "Noņemt izcelšanu šim pavedienam"
#: ../../../../inc/display.php:492 ../../../../inc/display.php:514
#: ../../../../inc/display.php:517 ../../../../inc/display.php:521
msgid "Make thread sticky"
-msgstr ""
+msgstr "Izcelt šo pavedienu"
#: ../../../../inc/display.php:496 ../../../../inc/display.php:518
#: ../../../../inc/display.php:521 ../../../../inc/display.php:525
msgid "Allow thread to be bumped"
-msgstr ""
+msgstr "Atļaut pavediena uzcelšanu"
#: ../../../../inc/display.php:498 ../../../../inc/display.php:520
#: ../../../../inc/display.php:523 ../../../../inc/display.php:527
msgid "Prevent thread from being bumped"
-msgstr ""
+msgstr "Nepieļaut pavediena uzcelšanu"
#: ../../../../inc/display.php:503 ../../../../inc/display.php:525
#: ../../../../inc/display.php:528 ../../../../inc/display.php:532
msgid "Unlock thread"
-msgstr ""
+msgstr "Atslēgt pavedienu"
#: ../../../../inc/display.php:505 ../../../../inc/display.php:527
#: ../../../../inc/display.php:530 ../../../../inc/display.php:534
msgid "Lock thread"
-msgstr ""
+msgstr "Aizslēgt pavedienu"
#: ../../../../inc/display.php:508 ../../../../inc/display.php:530
#: ../../../../inc/display.php:533 ../../../../inc/display.php:537
msgid "Move thread to another board"
-msgstr ""
+msgstr "Pārvietot pavedienu un citu dēli"
#. How long before Tinyboard forgets about a mute?
#. 2 weeks
@@ -281,7 +282,7 @@ msgstr ""
#: ../../../../inc/config.php:346 ../../../../inc/config.php:473
#: ../../../../inc/config.php:474 ../../../../inc/config.php:475
msgid "You have been muted for unoriginal content."
-msgstr ""
+msgstr "Jūs tiekat apklusināts dēļ neorģināla satura."
#. The names on the post buttons. (On most imageboards, these are both just
#. "Post").
@@ -291,13 +292,13 @@ msgstr ""
#: ../../../../inc/config.php:772 ../../../../inc/config.php:774
#: ../../../../inc/config.php:776 ../../../../inc/config.php:792
msgid "New Topic"
-msgstr ""
+msgstr "Jauna tēma"
#: ../../../../inc/config.php:678 ../../../../inc/config.php:782
#: ../../../../inc/config.php:773 ../../../../inc/config.php:775
#: ../../../../inc/config.php:777 ../../../../inc/config.php:793
msgid "New Reply"
-msgstr ""
+msgstr "Jauna atbilde"
#. Additional lines added to the footer of all pages.
#: ../../../../inc/config.php:689 ../../../../inc/config.php:793
diff --git a/inc/locale/ru_RU/LC_MESSAGES/tinyboard.mo b/inc/locale/ru_RU/LC_MESSAGES/tinyboard.mo
index 71aea924..8db334e2 100644
Binary files a/inc/locale/ru_RU/LC_MESSAGES/tinyboard.mo and b/inc/locale/ru_RU/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/ru_RU/LC_MESSAGES/tinyboard.po b/inc/locale/ru_RU/LC_MESSAGES/tinyboard.po
index 33795c37..0f058ab1 100644
--- a/inc/locale/ru_RU/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/ru_RU/LC_MESSAGES/tinyboard.po
@@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
-"PO-Revision-Date: 2014-04-22 20:14+0000\n"
+"PO-Revision-Date: 2014-05-06 10:23+0000\n"
"Last-Translator: Assada \n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
@@ -318,7 +318,7 @@ msgstr "Все права, копирайты на этой странице п
#. Error messages
#: ../../../../inc/config.php:866
msgid "Lurk some more before posting."
-msgstr ""
+msgstr "Луркай еще немного, прежде чем отправлять."
#. * ====================
#. * Error messages
@@ -436,7 +436,7 @@ msgstr "Не оригинальный контент."
#: ../../../../inc/config.php:984 ../../../../inc/config.php:1000
#, php-format
msgid "Unoriginal content! You have been muted for %d seconds."
-msgstr ""
+msgstr "Не оригинальный контент. Кляп на %d секунд."
#: ../../../../inc/config.php:885 ../../../../inc/config.php:990
#: ../../../../inc/config.php:981 ../../../../inc/config.php:983
@@ -543,7 +543,7 @@ msgstr ""
#: ../../../../inc/config.php:997 ../../../../inc/config.php:999
#: ../../../../inc/config.php:1001 ../../../../inc/config.php:1017
msgid "MIME type detection XSS exploit (IE) detected; post discarded."
-msgstr ""
+msgstr "Обнаружен XSS (IE). Пост отклонен."
#: ../../../../inc/config.php:902 ../../../../inc/config.php:1007
#: ../../../../inc/config.php:998 ../../../../inc/config.php:1000
@@ -597,7 +597,7 @@ msgstr "Неверные/испорченные куки."
#: ../../../../inc/config.php:1007 ../../../../inc/config.php:1009
#: ../../../../inc/config.php:1011 ../../../../inc/config.php:1027
msgid "Your browser didn't submit an input when it should have."
-msgstr ""
+msgstr "Твой браузер не отправляет нужных данных, а должен."
#: ../../../../inc/config.php:912 ../../../../inc/config.php:1017
#: ../../../../inc/config.php:1008 ../../../../inc/config.php:1010
@@ -819,7 +819,7 @@ msgstr "Ребилд"
#: ../../../../inc/mod/pages.php:2043 ../../../../inc/mod/pages.php:2179
#: ../../../../templates/cache/72/7e/271125664718133518fd942f20fb724224e100f8a0d47cb0b52f895ac12f.php:238
msgid "Report queue"
-msgstr ""
+msgstr "Очередь жалоб"
#: ../../../../inc/mod/pages.php:2111 ../../../../inc/mod/pages.php:2210
#: ../../../../inc/mod/pages.php:2256 ../../../../inc/mod/pages.php:2350
@@ -1078,7 +1078,7 @@ msgstr "без темы"
#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:153
#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:94
msgid "by"
-msgstr ""
+msgstr "by"
#. line 50
#: ../../../../templates/cache/f3/ad/68dee281a64ebad9a5c774b53279.php:95
@@ -1086,7 +1086,7 @@ msgstr ""
#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:157
#: ../../../../templates/cache/d2/14/70c07e4c5f648cfa0d0663a1f18973ff6f6946363b45332b2627a0fcf273.php:98
msgid "at"
-msgstr ""
+msgstr "на"
#. line 28
#. line 26
@@ -1670,7 +1670,7 @@ msgstr "удалить"
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:345
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:415
msgid "deleted?"
-msgstr ""
+msgstr "удален?"
#. line 33
#: ../../../../templates/cache/1a/7f/6eb467b2d978da59cfea2fe64f8898a5fb769be35fbb2ec50691da9a3d52.php:91
@@ -1827,7 +1827,7 @@ msgstr "Статус"
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:259
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:44
msgid "Expired"
-msgstr ""
+msgstr "Истекло"
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:265
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:50
@@ -2013,7 +2013,7 @@ msgstr "никогда"
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:159
#: ../../../../templates/cache/6a/a4/b13523024ba2660a4f8f05e0c909c55477f675db9a2620075762ac245c91.php:161
msgid "Seen"
-msgstr ""
+msgstr "Замечен"
#: ../../../../templates/cache/b1/4c/16a427b0d49ecf353c259d9fb606841783484eca9d790e766fdf0e3e9754.php:375
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:201
@@ -2129,7 +2129,7 @@ msgstr "Новый бан"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:25
#: ../../../../templates/cache/cb/8b/63013711213735996df92becb7bd43d753c51314cfe5433c562706333eb0.php:31
msgid "Phrase:"
-msgstr ""
+msgstr "Фраза:"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:38
msgid "Posts"
@@ -2137,7 +2137,7 @@ msgstr "Посты"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:49
msgid "IP address notes"
-msgstr ""
+msgstr "Заметки для IP"
#: ../../../../templates/cache/73/f8/5e3142a8a6f8d7e40422ff577e83b0dedf55a7cb9bc7082839b24f653545.php:62
msgid "Bans"
@@ -2152,7 +2152,7 @@ msgstr ""
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:25
msgid "There are no active bans."
-msgstr ""
+msgstr "Нет активных банов."
#. line 8
#. line 47
@@ -2199,20 +2199,20 @@ msgstr "Продолжить"
#. line 80
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:210
msgid "Appeal time"
-msgstr ""
+msgstr "Время обжалования"
#. line 84
#: ../../../../templates/cache/03/13/62c259daae13f7b39b689162b7cd380b2673bee7e05b90f0d34b69a01190.php:220
msgid "Appeal reason"
-msgstr ""
+msgstr "Причина обжалования"
#: ../../../../templates/cache/7d/63/b6fd83bf4ed7f6031a2b3373b997d2d40617bf98899fe672a0aae48520c5.php:31
msgid "There are no reports."
-msgstr ""
+msgstr "Нет сообщений."
#: ../../../../post.php:802 ../../../../post.php:811 ../../../../post.php:825
msgid "That ban doesn't exist or is not for you."
-msgstr ""
+msgstr "Этого бана нет или он не для вас."
#: ../../../../post.php:806 ../../../../post.php:815 ../../../../post.php:829
msgid "You cannot appeal a ban of this length."
@@ -2220,7 +2220,7 @@ msgstr ""
#: ../../../../post.php:813 ../../../../post.php:822 ../../../../post.php:836
msgid "You cannot appeal this ban again."
-msgstr ""
+msgstr "Ты не можешь обжаловать этот бан снова."
#: ../../../../post.php:818 ../../../../post.php:827 ../../../../post.php:841
msgid "There is already a pending appeal for this ban."
@@ -2228,11 +2228,11 @@ msgstr ""
#: ../../../../inc/image.php:24 ../../../../inc/image.php:62
msgid "Unsupported file format: "
-msgstr ""
+msgstr "Формат файла не поддерживается:"
#: ../../../../inc/image.php:282 ../../../../inc/image.php:288
msgid "Failed to redraw image!"
-msgstr ""
+msgstr "Не удалось перерисовать изображение!"
#: ../../../../inc/image.php:324 ../../../../inc/image.php:343
#: ../../../../inc/image.php:368 ../../../../inc/image.php:342
@@ -2258,11 +2258,11 @@ msgstr "Вас забанили в "
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:82
msgid "for the following reason:"
-msgstr ""
+msgstr "по следующей причине:"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:88
msgid "for an unspecified reason."
-msgstr ""
+msgstr "по неопределенный причине."
#. line 32
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:110
@@ -2281,11 +2281,11 @@ msgstr "истекает"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:133
msgid "from now, which is on"
-msgstr ""
+msgstr "прямо сейчас, который находится на"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:183
msgid "will not expire"
-msgstr ""
+msgstr "еще не истек"
#. line 78
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:192
@@ -2300,11 +2300,11 @@ msgstr ""
#. line 95
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:239
msgid "You submitted an appeal for this ban on"
-msgstr ""
+msgstr "Ты подал апелляцию на этот бан"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:245
msgid "It is still pending"
-msgstr ""
+msgstr "Пока не принято"
#. line 101
#. line 112
@@ -2323,18 +2323,18 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:257
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:289
msgid "You appealed this ban on"
-msgstr ""
+msgstr "Ты обжаловал запрет на"
#. line 103
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:265
msgid "and it was denied. You may not appeal this ban again."
-msgstr ""
+msgstr "и отклонен. Вы не можете обжаловать это бан снова."
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:272
msgid ""
"You have submitted the maximum number of ban appeals allowed. You may not "
"appeal this ban again."
-msgstr ""
+msgstr "Ты отправил достаточное количество апелляций. Больше не нужно!"
#. line 114
#. line 121
@@ -2353,7 +2353,7 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:297
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:318
msgid "and it was denied."
-msgstr ""
+msgstr "и отклонен."
#. line 116
#. line 123
@@ -2381,7 +2381,7 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:332
msgid "You may appeal this ban. Please enter your reasoning below."
-msgstr ""
+msgstr "Ты можешь обжаловать этот бан. Введи причину апелляции."
#. line 4
#. line 16
@@ -2598,7 +2598,7 @@ msgstr "Показать все логи этого пользователя."
#. line 84
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:255
msgid "Flag"
-msgstr ""
+msgstr "Флаг"
#. line 87
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:261
diff --git a/inc/mod/pages.php b/inc/mod/pages.php
index 5594281f..76f229ce 100644
--- a/inc/mod/pages.php
+++ b/inc/mod/pages.php
@@ -1110,13 +1110,13 @@ function mod_move_reply($originBoard, $postID) {
$post['op'] = true;
}
- if ($post['file']) {
+ if ($post['files']) {
+ $post['files'] = json_decode($post['files'], TRUE);
$post['has_file'] = true;
- $post['width'] = &$post['filewidth'];
- $post['height'] = &$post['fileheight'];
-
- $file_src = sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file'];
- $file_thumb = sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb'];
+ foreach ($post['files'] as $i => &$file) {
+ $file['file_path'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $file['file'];
+ $file['thumb_path'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $file['thumb'];
+ }
} else {
$post['has_file'] = false;
}
@@ -1131,10 +1131,12 @@ function mod_move_reply($originBoard, $postID) {
$newID = post($post);
if ($post['has_file']) {
- // move the image
- rename($file_src, sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file']);
- if ($post['thumb'] != 'spoiler') { //trying to move/copy the spoiler thumb raises an error
- rename($file_thumb, sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb']);
+ foreach ($post['files'] as $i => &$file) {
+ // move the image
+ rename($file['file_path'], sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $file['file']);
+ if ($file['thumb'] != 'spoiler') { //trying to move/copy the spoiler thumb raises an error
+ rename($file['thumb_path'], sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $file['thumb']);
+ }
}
}
@@ -1207,13 +1209,13 @@ function mod_move($originBoard, $postID) {
// indicate that the post is a thread
$post['op'] = true;
- if ($post['file']) {
+ if ($post['files']) {
+ $post['files'] = json_decode($post['files'], TRUE);
$post['has_file'] = true;
- $post['width'] = &$post['filewidth'];
- $post['height'] = &$post['fileheight'];
-
- $file_src = sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file'];
- $file_thumb = sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb'];
+ foreach ($post['files'] as $i => &$file) {
+ $file['file_path'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $file['file'];
+ $file['thumb_path'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $file['thumb'];
+ }
} else {
$post['has_file'] = false;
}
@@ -1229,9 +1231,11 @@ function mod_move($originBoard, $postID) {
if ($post['has_file']) {
// copy image
- $clone($file_src, sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file']);
- if (!in_array($post['thumb'], array('spoiler', 'deleted', 'file')))
- $clone($file_thumb, sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb']);
+ foreach ($post['files'] as $i => &$file) {
+ $clone($file['file_path'], sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $file['file']);
+ if (!in_array($file['thumb'], array('spoiler', 'deleted', 'file')))
+ $clone($file['thumb_path'], sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $file['thumb']);
+ }
}
// go back to the original board to fetch replies
@@ -1247,13 +1251,13 @@ function mod_move($originBoard, $postID) {
$post['mod'] = true;
$post['thread'] = $newID;
- if ($post['file']) {
+ if ($post['files']) {
+ $post['files'] = json_decode($post['files'], TRUE);
$post['has_file'] = true;
- $post['width'] = &$post['filewidth'];
- $post['height'] = &$post['fileheight'];
-
- $post['file_src'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file'];
- $post['file_thumb'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb'];
+ foreach ($post['files'] as $i => &$file) {
+ $file['file_path'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $file['file'];
+ $file['thumb_path'] = sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $file['thumb'];
+ }
} else {
$post['has_file'] = false;
}
@@ -1288,14 +1292,16 @@ function mod_move($originBoard, $postID) {
$post['op'] = false;
$post['tracked_cites'] = markup($post['body'], true);
+ if ($post['has_file']) {
+ // copy image
+ foreach ($post['files'] as $i => &$file) {
+ $clone($file['file_path'], sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $file['file']);
+ $clone($file['thumb_path'], sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $file['thumb']);
+ }
+ }
// insert reply
$newIDs[$post['id']] = $newPostID = post($post);
- if ($post['has_file']) {
- // copy image
- $clone($post['file_src'], sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file']);
- $clone($post['file_thumb'], sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb']);
- }
if (!empty($post['tracked_cites'])) {
$insert_rows = array();
@@ -1527,7 +1533,7 @@ function mod_delete($board, $post) {
header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']);
}
-function mod_deletefile($board, $post) {
+function mod_deletefile($board, $post, $file) {
global $config, $mod;
if (!openBoard($board))
@@ -1537,7 +1543,7 @@ function mod_deletefile($board, $post) {
error($config['error']['noaccess']);
// Delete file
- deleteFile($post);
+ deleteFile($post, TRUE, $file);
// Record the action
modLog("Deleted file from post #{$post}");
@@ -1550,28 +1556,30 @@ function mod_deletefile($board, $post) {
header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']);
}
-function mod_spoiler_image($board, $post) {
+function mod_spoiler_image($board, $post, $file) {
global $config, $mod;
-
+
if (!openBoard($board))
error($config['error']['noboard']);
-
+
if (!hasPermission($config['mod']['spoilerimage'], $board))
error($config['error']['noaccess']);
- // Delete file
- $query = prepare(sprintf("SELECT `thumb`, `thread` FROM ``posts_%s`` WHERE id = :id", $board));
+ // Delete file thumbnail
+ $query = prepare(sprintf("SELECT `files`, `thread` FROM ``posts_%s`` WHERE id = :id", $board));
$query->bindValue(':id', $post, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
$result = $query->fetch(PDO::FETCH_ASSOC);
+ $files = json_decode($result['files']);
- file_unlink($board . '/' . $config['dir']['thumb'] . $result['thumb']);
-
+ file_unlink($board . '/' . $config['dir']['thumb'] . $files[$file]->thumb);
+ $files[$file]->thumb = 'spoiler';
+ $files[$file]->thumbheight = 128;
+ $files[$file]->thumbwidth = 128;
+
// Make thumbnail spoiler
- $query = prepare(sprintf("UPDATE ``posts_%s`` SET `thumb` = :thumb, `thumbwidth` = :thumbwidth, `thumbheight` = :thumbheight WHERE `id` = :id", $board));
- $query->bindValue(':thumb', "spoiler");
- $query->bindValue(':thumbwidth', 128, PDO::PARAM_INT);
- $query->bindValue(':thumbheight', 128, PDO::PARAM_INT);
+ $query = prepare(sprintf("UPDATE ``posts_%s`` SET `files` = :files WHERE `id` = :id", $board));
+ $query->bindValue(':files', json_encode($files));
$query->bindValue(':id', $post, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
@@ -1586,7 +1594,7 @@ function mod_spoiler_image($board, $post) {
// Rebuild themes
rebuildThemes('post-delete', $board);
-
+
// Redirect
header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']);
}
@@ -2239,6 +2247,68 @@ function mod_report_dismiss($id, $all = false) {
header('Location: ?/reports', true, $config['redirect_http']);
}
+function mod_recent_posts($lim) {
+ global $config, $mod, $pdo;
+
+ if (!hasPermission($config['mod']['recent']))
+ error($config['error']['noaccess']);
+
+ $limit = (is_numeric($lim))? $lim : 25;
+
+ $mod_boards = array();
+ $boards = listBoards();
+
+ //if not all boards
+ if ($mod['boards'][0]!='*') {
+ foreach ($boards as $board) {
+ if (in_array($board['uri'], $mod['boards']))
+ $mod_boards[] = $board;
+ }
+ } else {
+ $mod_boards = $boards;
+ }
+
+ // Manually build an SQL query
+ $query = 'SELECT * FROM (';
+ foreach ($mod_boards as $board) {
+ $query .= sprintf('SELECT *, %s AS `board` FROM ``posts_%s`` UNION ALL ', $pdo->quote($board['uri']), $board['uri']);
+ }
+ // Remove the last "UNION ALL" seperator and complete the query
+ $query = preg_replace('/UNION ALL $/', ') AS `all_posts` ORDER BY `time` DESC LIMIT ' . $limit, $query);
+ $query = query($query) or error(db_error());
+ $posts = $query->fetchAll(PDO::FETCH_ASSOC);
+
+ $body = '
';
+ }
+
+ echo Element('page.html', array(
+ 'config' => $config,
+ 'mod' => $mod,
+ 'hide_dashboard_link' => true,
+ 'title' => _('Recent posts'),
+ 'subtitle' => '',
+ 'nojavascript' => false,
+ 'is_recent_posts' => true,
+ 'body' => $body
+ )
+ );
+
+}
function mod_config($board_config = false) {
global $config, $mod, $board;
diff --git a/install.php b/install.php
index 16ef9fcb..f719a5c6 100644
--- a/install.php
+++ b/install.php
@@ -1,7 +1,7 @@
execute() or error(db_error($_query));
}
}
- case 'v0.9.6-dev-9':
+ case 'v0.9.6-dev-9':
case 'v0.9.6-dev-9 + vichan-devel-4.0.3':
case 'v0.9.6-dev-9 + vichan-devel-4.0.4-gold':
case 'v0.9.6-dev-9 + vichan-devel-4.0.5-gold':
@@ -506,12 +506,12 @@ if (file_exists($config['has_installed'])) {
case 'v0.9.6-dev-22 + vichan-devel-4.4.96':
case 'v0.9.6-dev-22 + vichan-devel-4.4.97':
case '4.4.97':
- if (!isset($_GET['confirm'])) {
+ if (!isset($_GET['confirm2'])) {
$page['title'] = 'License Change';
$page['body'] = '
You are upgrading to a version which uses an amended license. The licenses included with vichan distributions prior to this version (4.4.98) are still valid for those versions, but no longer apply to this and newer versions.
';
file_write($config['has_installed'], '4.4.97');
@@ -521,6 +521,27 @@ if (file_exists($config['has_installed'])) {
case '4.4.98-pre':
if (!$twig) load_twig();
$twig->clearCacheFiles();
+ case '4.4.98':
+ case '4.5.0':
+ if (!isset($_GET['confirm3'])) {
+ $page['title'] = 'Breaking change';
+ $page['body'] = '
You are upgrading to the 5.0 branch of vichan. Please back up your database, because the process is irreversible. At the current time, if you want a very stable vichan experience, please use the 4.5 branch. This warning will be lifted as soon as we all agree that 5.0 branch is stable enough