Problem with comparison.
/photogallery/secret.ini.php |
---|
0,0 → 1,23 |
; singapore secret configuration file <http://singapore.sourceforge.net> |
; |
; <?php die("The contents of this file are hidden"); ?> |
; |
; these options are hidden from web users |
[SQL] |
; |
; settings relevant to all the SQL backends. |
; You may ignore these if you are not using this backend. |
; |
sql_user = "gallery" |
sql_pass = "" |
[FTP] |
; |
; settings used by the safe_mode hack. |
; You may ignore these if your server is not running in safe_mode. |
; |
ftp_user = "" |
ftp_pass = "" |
/photogallery/galleries/Readme.txt |
---|
0,0 → 1,0 |
This directory is used to store galleries and images. It must be writable (CHMOD 777). |
/photogallery/galleries/index.php |
---|
0,0 → 1,0 |
<?php header("Location: ../") ?> |
/photogallery/singapore.ini |
---|
0,0 → 1,272 |
; singapore main configuration file <http://singapore.sourceforge.net> |
; |
; Split into sections (Basic, Paths, Functionality, SQL & Advanced) |
; for ease of reading. Sections are ignored by the script. |
; |
; Any of these settings can be overridden in gallery.ini or |
; template.ini files. See the readme for more information. |
; |
; Template specific settings may be found in the template.ini |
; file located in the template's root directory. |
[Basic] |
; |
; settings that most users will want to look at and possibly change |
; |
thumbnail_software = "gd2" |
;the software to use to generate the thumbnails |
; gd1 = GD v1.x |
; gd2 = GD v2.x |
; im = ImageMagick v5.x |
; im6 = ImageMagick v6.x |
gallery_name = "MLAB" |
;this is the text that will appear in the title bar of all |
;generated pages and also the root node of the crumb line |
default_template = "modern" |
;the name of the template to use when none is specified |
default_language = "en" |
;the language code for the language that you would like to use. |
;you must have the appropriate language file in the locale directory. |
gallery_sort_order = "x" |
;the order in which galleries will be displayed. Can take the following values: |
; p = sort by directory name (ascending) |
; P = sort by directory name (descending) |
; n = sort by gallery name (ascending) |
; N = sort by gallery name (descending) |
; i = sort by gallery name (case insensitive, ascending) |
; I = sort by gallery name (case insensitive, descending) |
; a = sort by artist name (ascending) |
; A = sort by artist name (descending) |
; d = sort by date (ascending) |
; D = sort by date (descending) |
; note: date comparison is done as a string comparison on the 'date' database |
; field. So for example "2003-10-22" comes before "22 October 2003" |
; x = do not sort (default) |
image_sort_order = "x" |
;the order in which images will be displayed. Can take the following values: |
; f = sort by file name (ascending) |
; F = sort by file name (descending) |
; n = sort by image name (ascending) |
; N = sort by image name (descending) |
; i = sort by image name (case insensitive, ascending) |
; I = sort by image name (case insensitive, descending) |
; a = sort by artist name (ascending) |
; A = sort by artist name (descending) |
; d = sort by date (ascending) |
; D = sort by date (descending) |
; note: date comparison is done as a string comparison on the 'date' database |
; field. So for example "2003-10-22" comes before "22 October 2003" |
; l = sort by location (ascending) |
; L = sort by location (descending) |
; x = do not sort (default) |
upload_overwrite = 2 |
;what to do when uploading an image or gallery that already exists: |
; 0 do not overwrite, raise an error (default) |
; 1 overwrite without prompting |
; 2 attempt to generate a new unique name |
[Functionality] |
; |
; some features are turned off by default. Try them out by turning them on here. |
; |
language_flipper = on |
;turn on to display a select box which allows users to select a language |
template_flipper = on |
;turn on to display a select box which allows users to select a template |
full_image_resize = off |
;turn on to force all full-size images to be resized to the size specified |
;in the current template's template.ini |
imagemap_navigation = off |
;turns full-size images into image maps so that clicking on |
;them takes you forward/backward/up |
track_views = on |
;whether to keep track of how many times images and |
;galleries have been viewed |
show_views = on |
;whether to display how many times images and galleries |
;have been viewed |
show_execution_time = on |
;display script execution time in milliseconds |
enable_iifn = on |
;enables parsing of directory and file names of the form |
;'artist_name - image_name' into metadata information |
obfuscate_email = on |
;tries to conceal email addresses from spambots by |
;replacing '.' with ' dot ' and '@' with ' at ' |
enable_clickable_urls = on |
;makes the script detect URLs in image & gallery descriptions |
;and make them 'clickable' by adding the appropriate HTML |
remove_jpeg_profile = off |
;true to tell ImageMagick to remove any profile information |
;from generated thumbnails. This has been known to cause some |
;problems hence it being disabled by default |
progressive_thumbs = on |
;generate progressive JPEG and interlaced GIF & PNG images. |
use_mod_rewrite = off |
;format generated URLs for use with Apache mod_rewrite |
;you need to enable mod_rewrite and create an appropriate .htaccess file |
detect_language = off |
;attempt to detect user language from browser information |
;if this fails the default_language will be used |
[Paths] |
; |
; The default paths will be fine for most people. |
; |
pathto_templates = "templates/" |
;path to directory containing templates |
;must be specified relative to singapore root |
pathto_data_dir = "data/" |
;path to writable data directory |
;must be specified relative to singapore root |
pathto_galleries = "galleries/" |
;path to galleries directory |
;must be specified relative to singapore root |
pathto_locale = "locale/" |
;path to directory containing internationalisation files (singapore.LANG.pmo) |
;must be specified relative to singapore root |
pathto_convert = "convert" |
;full path to ImageMagick convert utility if it is not in your PATH |
pathto_unzip = "unzip" |
;full path to Info-Zip unzip utility or equivalent if it is not in your PATH |
;base_path option is in the [Advanced] section below |
[SQL] |
; |
; settings relevant to all the SQL backends (except SQLite). |
; You may ignore these if you are not using one of these backends. |
; For security reasons username and password are stored in secret.ini.php |
; |
sql_host = "localhost" |
;name of computer running MySQL server (usually localhost) |
;a port number may be included as in "example.com:1234" |
sql_database = "singapore" |
;database in which information will be stored. this must already exist. |
sql_prefix = "sg_" |
;this will be prefixed to the names of the tables created (galleries, images & users). |
;each singapore installation running on same database should have a different prefix. |
[FTP] |
; |
; The safe_mode hack uses FTP to create galleries. |
; You may ignore these settings if your server is not runing in safe_mode. |
; For security reasons username and password are stored in secret.ini.php |
; |
safe_mode_hack = off |
;set to on to enable the hack |
ftp_server = "" |
;the hostname you use to login to your website |
;a port number may be included as in "example.com:1234" |
ftp_base_path = "" |
;path from ftp root to singapore root |
[Advanced] |
; |
; settings most users will not need to change |
; |
io_handler = "mysql" |
;the type of database to use. recognised values are: |
; csv = flat file, no database needed (default) |
; mysql = MySQL database (configure sql_* settings above and in secret.ini.php) |
; sqlite = SQLite database (does not require any further configuration) |
allow_dir_upload = 0 |
;allow uploading archives containing arbitrary files. |
; 0 = allow no one |
; 1 = allow all registered users |
; 2 = allow only administrators |
admin_template_name = "admin_default" |
;the name of the admin template to use |
thumbnail_quality = 75 |
;the JPEG quality of generated thumbnails |
;100 is the highest quality 0 is the lowest |
session_name = "PHPSESSID" |
;the name of the admin session. each independent singapore |
;installation on the same domain should have a different name |
default_charset = "utf-8" |
;the character encoding to use for generated pages if none |
;is specified in the current language file |
index_file_url = "index.php?" |
;filename of index file plus any query-string |
;if a path is specified it must be absolute |
base_path = "" |
;file-system-view absolute or relative path to installation |
;can usually be left blank |
base_url = "" |
;web-view absolute or relative url of installation. |
;can usually be left blank |
recognised_extensions = "jpeg|jpg|jpe|png|gif|bmp|tif|tiff" |
;list of file extensions that will be recognised as images |
;this forms part of a pcre hence the vertical bars (meaning OR) |
allowed_tags = "<a><b><i><u><em><strong><strike>" |
;list of HTML tags which will be allowed in multiline database entries |
;such as description and summary |
directory_mode = 0777 |
;the permissions to set on directories |
;(i.e. galleries) created by the script |
file_mode = 0666 |
;the permissions to set on files (thumbnails, logs, |
;images & metadata files) created by the script. |
[GET variable names] |
; |
; names of variables used to pass information in URLs |
; you will only need to change these if there is a conflict with |
; already existing variables and the installation is being integrated. |
; |
url_gallery = "gallery" |
url_image = "image" |
url_startat = "startat" |
url_action = "action" |
url_lang = "lang" |
url_template = "template" |
/photogallery/Readme.txt |
---|
0,0 → 1,21 |
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ |
* singapore - Copyright 2003 Tamlyn Rhodes <tam@zenology.org> * |
* * |
* singapore is free software; you can redistribute it and/or modify * |
* it under the terms of the GNU General Public License as published * |
* by the Free Software Foundation; either version 2 of the License, * |
* or (at your option) any later version. * |
* * |
* singapore is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty * |
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * |
* See the GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this; if not, write to the Free Software Foundation, * |
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * |
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
See docs/ or http://singapore.sourceforge.net/ for more information. |
/photogallery/index.php |
---|
0,0 → 1,37 |
<?php |
/** |
* Main file drives the gallery. |
* |
* Do not include this file into another page; include external.php instead. |
* |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: index.php,v 1.21 2006/08/05 19:56:32 thepavian Exp $ |
*/ |
//include main class |
require_once "includes/singapore.class.php"; |
//create a wrapper |
$sg = new Singapore(); |
//set session arg separator to be xml compliant |
ini_set("arg_separator.output", "&"); |
//only start session if session is already registered |
if(isset($_REQUEST[$sg->config->session_name])) { |
//start session |
session_name($sg->config->session_name); |
@session_start(); |
} |
//send content-type and character encoding header |
@header("Content-type: text/html; charset=".$sg->character_set); |
//pass control over to template |
@include $sg->config->base_path.$sg->config->pathto_current_template."index.tpl.php"; |
?> |
/photogallery/external.php |
---|
0,0 → 1,54 |
<?php |
/** |
* Alternate file to drive the gallery designed to be included within another |
* page. |
* |
* This page will only send content-type headers if they have not already |
* been sent. Placing a call to ob_start() within the including page before any |
* content has been output will allow singapore to use non-default charsets. |
* |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: external.php,v 1.4 2006/08/07 10:04:28 thepavian Exp $ |
*/ |
//you may leave this blank as it will be automatically detected |
$relativePath = ""; |
//check whether this file has been included by another and if |
//so calculate the relative path and instantiate $sg with it |
if(isset($_SERVER["SCRIPT_FILENAME"]) && realpath(__FILE__) != realpath($_SERVER["SCRIPT_FILENAME"])) { |
//split each path into chunks |
$you = explode(DIRECTORY_SEPARATOR,dirname(realpath($_SERVER["SCRIPT_FILENAME"]))); |
$me = explode(DIRECTORY_SEPARATOR,dirname(realpath(__FILE__))); |
$i=0; |
//find at what level paths first differ |
while($i<count($you) && $i<count($me) && $you[$i] == $me[$i]) $i++; |
//travel up appropriate number of directories |
for($j=$i;$j<count($you);$j++) $relativePath .= "../"; |
//travel down appropriate directories |
for($j=$i;$j<count($me); $j++) $relativePath .= $me[$j]."/"; |
//otherwise print an error as this is not how external.php is supposed to work. |
} else { |
die("This file is not intended to be used in this way. Please see the singapore integration guide."); |
} |
//include main class |
require_once $relativePath."includes/singapore.class.php"; |
//create a wrapper |
$sg = new Singapore($relativePath); |
//send content-type and character encoding header |
if(!headers_sent()) |
header("Content-type: text/html; charset=".$sg->character_set); |
//pass control over to template |
@include $sg->config->base_path.$sg->config->pathto_current_template."index.tpl.php"; |
?> |
/photogallery/admin.php |
---|
0,0 → 1,43 |
<?php |
/** |
* Admin interface file. |
* |
* Checks the selected 'action', checks user permissions, calls the appropriate |
* methods and sets the required include file. Finally it includes the admin |
* template's index file. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @package singapore |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: admin.php,v 1.36 2006/01/27 13:31:24 tamlyn Exp $ |
*/ |
//include admin class |
require_once "includes/admin.class.php"; |
//create the admin object |
$sg = new sgAdmin(); |
//set session arg separator to be xml compliant |
ini_set("arg_separator.output", "&"); |
//start session |
session_name($sg->config->session_name); |
@session_start(); |
//load user details (must be done after session_start) |
$sg->loadUser(); |
//send content-type and character encoding header |
@header("Content-type: text/html; charset=".$sg->character_set); |
//perform admin action |
$sg->doAction(); |
//pass control over to template |
include $sg->config->pathto_admin_template."index.tpl.php"; |
?> |
/photogallery/tools/cleanup.php |
---|
0,0 → 1,59 |
<?php |
/** |
* This file attempts to recursively make all files in the parent directory |
* (i.e. the singapore root directory) writable. This will, in general, only |
* succeed on server-owned content hence making it deletable by FTP users. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2004 Tamlyn Rhodes |
* @version $Id: cleanup.php,v 1.4 2006/03/02 16:14:03 tamlyn Exp $ |
*/ |
/** |
* Recursively attempts to make all files and directories in $dir writable |
* |
* @param string full directory name (must end with /) |
*/ |
function makeWritable($dir) |
{ |
if (is_dir($dir)) { |
$d = dir($dir); |
while (($file = $d->read()) !== false) { |
//ignore current and parent dirs and php files |
if ($file == '.' || $file == '..' || substr($file, strlen($file)-4)=='.php') continue; |
$fullfile = $d->path . $file; |
if(@chmod($fullfile,0777)) |
echo "Made $fullfile writable.<br />"; |
if (is_dir($fullfile)) |
makeWritable($fullfile."/"); |
} |
} |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>cleanup script</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>Fixing file permissions</h1> |
<p><?php |
//start with parent directory (singapore root) |
makeWritable("../"); |
?></p> |
<p>All done! <a href="index.html">Return</a> to tools.</p> |
</body> |
</html> |
/photogallery/tools/compile.php |
---|
0,0 → 1,215 |
<?php |
/** |
* This file merges the two PO template files (singapore.pot and singapore.admin.pot) |
* with all existing language files (singapore.LANG.po) |
* |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: compile.php,v 1.9 2006/04/29 16:18:52 tamlyn Exp $ |
*/ |
// Programs to call (insert path to them if necessary) |
$GETTEXT_MERGE = "msgmerge"; |
$BASEPATH = realpath("..")."/"; |
//require config class |
require_once $BASEPATH."includes/config.class.php"; |
//get config object |
$config = sgConfig::getInstance(); |
$config->loadConfig($BASEPATH."singapore.ini"); |
$OUTPUTPATH = $BASEPATH.$config->pathto_locale; |
$standardPot = $OUTPUTPATH."singapore.pot"; |
$adminPot = $OUTPUTPATH."singapore.admin.pot"; |
$createbackups = true; |
/** |
* Parses a directory and returns full path to all the files |
* matching the filter (file name suffix) |
* |
* @param string $dir full directory name (must end with /) |
* @param string $filter file name suffixes separated by | (optional, default don't filter) |
* @return array an array with all files |
**/ |
function parseDirectory ($dir, $filter = 'php|html|tpl|inc') |
{ |
$ret = array(); |
if (is_dir($dir)) { |
$d = dir($dir); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$fullfile = $d->path . $file; |
if (is_dir($fullfile)) $ret = array_merge($ret,parseDirectory($fullfile."/")); |
else if (!$filter || preg_match("/\.({$filter})$/i", $file)) $ret[] = $fullfile; |
} |
} |
return $ret; |
} |
/** |
* Parses a PO file and writes a file with |
* serialized strings for PHP |
* |
* @param string $input file to read from |
* @param string $output file to write to |
* @return bool success |
**/ |
function parsePO ($input, $output) |
{ |
// Open PO-file |
file_exists($input) or die("The file {$input} doesn't exit.\n"); |
$fp = @fopen($input, "r") or die("Couldn't open {$input}.\n"); |
$type = 0; |
$strings = array(); |
$escape = "\n"; |
$string = ""; |
$plural = 0; |
$header = ""; |
while (!feof($fp)) { |
$line = trim(fgets($fp,1024)); |
if ($line == "" || $line[0] == "#") continue; |
// New (msgid "text") |
if (preg_match("/msgid[[:space:]]+\"(.+)\"$/i", $line, $m)) { |
$type = 1; |
$string = stripcslashes($m[1]); |
// New id on several rows (msgid "") or header |
} elseif (preg_match("/msgid[[:space:]]+\"\"$/i", $line, $m)) { |
$type = 2; |
$string = ""; |
// Add to id on several rows ("") |
} elseif (preg_match("/^\"(.*)\"$/i", $line, $m) && ($type == 1 || $type == 2 || $type == 3)) { |
$type = 3; |
$string .= stripcslashes($m[1]); |
// New string (msgstr "text") |
} elseif (preg_match("/msgstr[[:space:]]+\"(.+)\"$/i", $line, $m) && ($type == 1 || $type == 3) && $string) { |
$strings[$string] = stripcslashes($m[1]); |
$type = 4; |
// New string on several rows (msgstr "") |
} elseif (preg_match("/msgstr[[:space:]]+\"\"$/i", $line, $m) && ($type == 1 || $type == 3) && $string) { |
$type = 4; |
$strings[$string] = ""; |
// Add to string on several rows ("") |
} elseif (preg_match("/^\"(.*)\"$/i", $line, $m) && $type == 4 && $string) { |
$strings[$string] .= stripcslashes($m[1]); |
/////Plural forms///// |
// New plural id (msgid_plural "text") |
} elseif (preg_match("/msgid_plural[[:space:]]+\".*\"$/i", $line, $m)) { |
$type = 6; |
// New plural string (msgstr[N] "text") |
} elseif (preg_match("/msgstr\[(\d+)\][[:space:]]+\"(.+)\"$/i", $line, $m) && ($type == 6) && $string) { |
$plural = $m[1]; |
$strings[$string][$plural] = stripcslashes($m[2]); |
$type = 6; |
// New plural string on several rows (msgstr[N] "") |
} elseif (preg_match("/msgstr\[(\d+)\][[:space:]]+\"\"$/i", $line, $m) && ($type == 6) && $string) { |
$plural = $m[1]; |
$strings[$string][$plural] = ""; |
$type = 6; |
// Add to plural string on several rows ("") |
} elseif (preg_match("/^\"(.*)\"$/i", $line, $m) && $type == 6 && $string) { |
$strings[$string][$plural] .= stripcslashes($m[1]); |
/////Header section///// |
// Start header section |
} elseif (preg_match("/msgstr[[:space:]]+\"(.+)\"$/i", $line, $m) && $type == 2 && !$string) { |
$header = stripcslashes($m[1]); |
$type = 5; |
// Start header section |
} elseif (preg_match("/msgstr[[:space:]]+\"\"$/i", $line, $m) && !$string) { |
$header = ""; |
$type = 5; |
// Add to header section |
} elseif (preg_match("/^\"(.*)\"$/i", $line, $m) && $type == 5) { |
$header .= stripcslashes($m[1]); |
// Reset |
} else { |
unset($strings[$string]); |
$type = 0; |
$string = ""; |
$plural = 0; |
} |
} |
// Close PO-file |
fclose($fp); |
// Extract plural forms from header |
if(preg_match("/Plural-Forms:[[:space:]]+(.+)/i", $header, $m)) { |
$pluralString = str_replace("n","\$n",$m[1]); |
$pluralString = str_replace(" plural","\$plural",$pluralString); |
} else { |
$pluralString = "\$nplurals=1; \$plural=\$n==1?0:1;"; |
} |
// Extract character set from header |
if(preg_match("/Content-Type:(.+)charset=(.+)/i", $header, $m)) |
$charset = $m[2]; |
else |
$charset = ""; |
// Extract language name from header |
if(preg_match("/Language-Team:[[:space:]]+([^<\n]+)/i", $header, $m)) |
$language = $m[1]; |
else |
$language = "Unknown"; |
$strings[0]["charset"] = $charset; |
$strings[0]["language"] = $language; |
$strings[0]["plural"] = $pluralString; |
// Open data file for writing |
$fp = @fopen($output, "wb") or die("Couldn't open file ({$output}).\n"); |
fwrite($fp, serialize($strings)); |
fclose($fp); |
//set permissions on new PMO file |
@chmod($output, octdec($GLOBALS['config']->file_mode)); |
// Return |
return true; |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>i18n po compiler</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>i18n po compiler</h1> |
<p><?php |
$files = parseDirectory($OUTPUTPATH, 'po'); |
foreach ($files as $file) { |
if (!preg_match("/singapore\.(admin\.)?[\w]+\.po$/i", $file)) continue; |
$outfile = preg_replace("/\.[^\.]+$/", ".pmo", $file); |
if(parsePO($file, $outfile)) |
echo "Parsed $file to $outfile<br />"; |
else |
echo "Could not parse $file<br />"; |
} |
?> |
</p> |
<p>All operations complete. <a href="index.html">Return</a> to tools.</p> |
</body> |
</html> |
/photogallery/tools/convertdb.php |
---|
0,0 → 1,278 |
<?php |
//permissions bit flags |
define("SG_GRP_READ", 1); |
define("SG_GRP_EDIT", 2); |
define("SG_GRP_ADD", 4); |
define("SG_GRP_DELETE", 8); |
define("SG_WLD_READ", 16); |
define("SG_WLD_EDIT", 32); |
define("SG_WLD_ADD", 64); |
define("SG_WLD_DELETE", 128); |
function getGallery($path) |
{ |
$gal = new sgGallery('.'); |
$fp = @fopen($path."/metadata.csv","r"); |
if($fp) { |
while($temp[] = fgetcsv($fp,2048)); |
fclose($fp); |
@list( |
$gal->filename, |
, |
$gal->owner, |
$gal->groups, |
$gal->permissions, |
$gal->categories, |
$gal->name, |
$gal->artist, |
$gal->email, |
$gal->copyright, |
$gal->desc, |
$gal->summary, |
$gal->date |
) = $temp[1]; |
for($i=0;$i<count($temp)-3;$i++) { |
$gal->images[$i] = new sgImage(); |
list( |
$gal->images[$i]->filename, |
$gal->images[$i]->thumbnail, |
$gal->images[$i]->owner, |
$gal->images[$i]->groups, |
$gal->images[$i]->permissions, |
$gal->images[$i]->categories, |
$gal->images[$i]->name, |
$gal->images[$i]->artist, |
$gal->images[$i]->email, |
$gal->images[$i]->copyright, |
$gal->images[$i]->desc, |
$gal->images[$i]->location, |
$gal->images[$i]->date, |
$gal->images[$i]->camera, |
$gal->images[$i]->lens, |
$gal->images[$i]->film, |
$gal->images[$i]->darkroom, |
$gal->images[$i]->digital |
) = $temp[$i+2]; |
//don't get image size and type |
} |
} else { |
//selected gallery does not exist or no metadata |
return null; |
} |
return $gal; |
} |
function putGallery($gallery, $path) { |
//backup data file |
copy($path."/metadata.csv", $path."/metadata.bak"); |
$fp = fopen($path."/metadata.csv","w"); |
if(!$fp) return false; |
$success = true; |
$success &= (bool) fwrite($fp,"filename,thumbnail,owner,group(s),permissions,catergories,image name,artist name,artist email,copyright,image description,image location,date taken,camera info,lens info,film info,darkroom manipulation,digital manipulation"); |
$success &= (bool) fwrite($fp,"\n\"". |
$gallery->filename."\",,". |
$gallery->owner.",". |
$gallery->groups.",". |
$gallery->permissions.",". |
$gallery->categories.',"'. |
str_replace('"','""',$gallery->name).'","'. |
str_replace('"','""',$gallery->artist).'","'. |
str_replace('"','""',$gallery->email).'","'. |
str_replace('"','""',$gallery->copyright).'","'. |
str_replace('"','""',$gallery->desc).'","'. |
str_replace('"','""',$gallery->summary).'","'. |
str_replace('"','""',$gallery->date).'"' |
); |
for($i=0;$i<count($gallery->images);$i++) |
$success &= (bool) fwrite($fp,"\n\"". |
$gallery->images[$i]->filename."\",". |
$gallery->images[$i]->thumbnail.",". |
$gallery->images[$i]->owner.",". |
$gallery->images[$i]->groups.",". |
$gallery->images[$i]->permissions.",". |
$gallery->images[$i]->categories.',"'. |
str_replace('"','""',$gallery->images[$i]->name).'","'. |
str_replace('"','""',$gallery->images[$i]->artist).'","'. |
str_replace('"','""',$gallery->images[$i]->email).'","'. |
str_replace('"','""',$gallery->images[$i]->copyright).'","'. |
str_replace('"','""',$gallery->images[$i]->desc).'","'. |
str_replace('"','""',$gallery->images[$i]->location).'","'. |
str_replace('"','""',$gallery->images[$i]->date).'","'. |
str_replace('"','""',$gallery->images[$i]->camera).'","'. |
str_replace('"','""',$gallery->images[$i]->lens).'","'. |
str_replace('"','""',$gallery->images[$i]->film).'","'. |
str_replace('"','""',$gallery->images[$i]->darkroom).'","'. |
str_replace('"','""',$gallery->images[$i]->digital).'"' |
); |
$success &= (bool) fclose($fp); |
return $success; |
} |
function setPerms($obj) { |
$obj->permissions = 0; |
if(!empty($_POST["sgGrpRead"])) $obj->permissions |= SG_GRP_READ; |
if(!empty($_POST["sgGrpEdit"])) $obj->permissions |= SG_GRP_EDIT; |
if(!empty($_POST["sgGrpAdd"])) $obj->permissions |= SG_GRP_ADD; |
if(!empty($_POST["sgGrpDelete"])) $obj->permissions |= SG_GRP_DELETE; |
if(!empty($_POST["sgWldRead"])) $obj->permissions |= SG_WLD_READ; |
if(!empty($_POST["sgWldEdit"])) $obj->permissions |= SG_WLD_EDIT; |
if(!empty($_POST["sgWldAdd"])) $obj->permissions |= SG_WLD_ADD; |
if(!empty($_POST["sgWldDelete"])) $obj->permissions |= SG_WLD_DELETE; |
$obj->groups = $_REQUEST["sgGroups"]; |
$obj->owner = $_REQUEST["sgOwner"]; |
return $obj; |
} |
function convertDirectory ($path) |
{ |
if (is_dir($path)) { |
$gallery = getGallery($path); |
echo "<ul><li>Checking $path<br />\n"; |
if($gallery) { |
if($gallery->summary != "" && empty($_REQUEST["convertOverwrite"])) |
echo "Did NOT overwrite non-empty summary in $path<br />\n"; |
else { |
if($_REQUEST["convertType"]!='none') |
$gallery->summary = $gallery->desc; |
if($_REQUEST["convertType"]=='move') |
$gallery->desc = ""; |
} |
$gallery = setPerms($gallery); |
for($i=0; $i<count($gallery->images); $i++) |
$gallery->images[$i] = setPerms($gallery->images[$i]); |
if(putGallery($gallery,$path)) |
echo "Successfully converted $path<br />\n"; |
else |
echo "Problem saving data file for $path<br />\n"; |
} else |
echo "Skipping $path<br />\n"; |
$d = dir($path); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$path = $d->path."/".$file; |
if (is_dir($path)) { |
convertDirectory($path); |
} |
} |
echo "</li></ul>\n"; |
} |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>database converter</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>database converter</h1> |
<?php |
if(isset($_REQUEST["convertType"])) { |
include "../includes/config.class.php"; |
include "../includes/gallery.class.php"; |
include "../includes/image.class.php"; |
$config = new sgConfig("../singapore.ini"); |
$config->base_path = "../"; |
//echo "<ul>\n"; |
convertDirectory($config->base_path.$config->pathto_galleries); |
//echo "</ul>\n"; |
echo "<p>All operations complete.</p>\n"; |
} else { ?> |
<p>This will convert all your metadata files from singapore 0.9.6, 0.9.7, 0.9.8 or 0.9.9 to 0.9.10.</p> |
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> |
<h3>summary field</h3> |
<p>There is a new gallery summary field that is displayed instead of the |
description in the parent gallery. You can choose to either copy or move the |
old description field to the summary field or leave both untouched:</p> |
<p><input type="radio" class="radio" name="convertType" value="copy" checked="true" /> Copy<br /> |
<input type="radio" class="radio" name="convertType" value="move" /> Move<br /> |
<input type="radio" class="radio" name="convertType" value="none" /> Neither<br /> |
<p>By default only empty summary fields will be written to. Check this option to |
allow the summary field to be overwritten <input type="checkbox" class="checkbox" name="convertOverwrite" /></p> |
<h3>permissions</h3> |
<p>This version introduces multiple authorised users and image & gallery |
permissions. Please choose the default permissions that you would like all |
objects to be set to. The default permissions selected below are recommended as |
they will make all images & galleries readable by everyone but only |
modifiable by administrators. See the readme for more information on the |
permissions model used by singapore.</p> |
<table> |
<tr> |
<td>Owner</td> |
<td><input type="text" name="sgOwner" value="__nobody__" /></td> |
</tr> |
<tr> |
<td>Groups</td> |
<td><input type="text" name="sgGroups" value="" /></td> |
</tr> |
<tr> |
<td>Group permissions</td> |
<td><div class="inputbox"> |
<input type="checkbox" class="checkbox" name="sgGrpRead" checked="true"/> Read |
<input type="checkbox" class="checkbox" name="sgGrpEdit" /> Edit |
<input type="checkbox" class="checkbox" name="sgGrpAdd" /> Add |
<input type="checkbox" class="checkbox" name="sgGrpDelete" /> Delete |
</div></td> |
</tr> |
<tr> |
<td>World permissions</td> |
<td><div class="inputbox"> |
<input type="checkbox" class="checkbox" name="sgWldRead" checked="true"/> Read |
<input type="checkbox" class="checkbox" name="sgWldEdit" /> Edit |
<input type="checkbox" class="checkbox" name="sgWldAdd" /> Add |
<input type="checkbox" class="checkbox" name="sgWldDelete" /> Delete |
</div></td> |
</tr> |
</table> |
<p>Please note that while the script will create backups of your metadata files |
it is highly recommended that you create your own backups for added security.</p> |
<input type="submit" class="button" value="Go" /></p> |
</form> |
<?php } ?> |
<p><a href="index.html">Return</a> to tools.</p> |
</body> |
</html> |
/photogallery/tools/extract.php |
---|
0,0 → 1,133 |
<?php |
/** |
* This file searches for strings in all project files matching the filter and |
* creates two PO template files (singapore.pot and singapore.admin.pot) |
* |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: extract.php,v 1.14 2006/06/24 22:36:15 tamlyn Exp $ |
*/ |
// Programs to call (insert path to them if necessary) |
$GETTEXT_EXTRACT = "xgettext"; |
$BASEPATH = realpath("..")."/"; |
//require config class |
require_once $BASEPATH."includes/config.class.php"; |
//get config object |
$config = sgConfig::getInstance(); |
$config->loadConfig($BASEPATH."singapore.ini"); |
$OUTPUTPATH = $BASEPATH.$config->pathto_locale; |
$standardPot = $OUTPUTPATH."singapore.pot"; |
$adminPot = $OUTPUTPATH."singapore.admin.pot"; |
/** |
* Parses a directory and returns full path to all the files |
* matching the filter (file name suffix) |
* |
* @param string $dir full directory name (must end with /) |
* @param string $filter file name suffixes separated by | (optional, default don't filter) |
* @return array an array with all files |
**/ |
function parseDirectory ($dir, $filter = "php|html|tpl|inc") |
{ |
$ret = array(); |
if (is_dir($dir)) { |
$d = dir($dir); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$fullfile = $d->path . $file; |
if (is_dir($fullfile)) $ret = array_merge($ret,parseDirectory($fullfile."/")); |
else if (!$filter || preg_match("/\.({$filter})$/i", $file)) $ret[] = $fullfile; |
} |
} |
return $ret; |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>i18n string extractor</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>i18n string extractor</h1> |
<p><?php |
// Create tempfile |
$temp = $OUTPUTPATH."/".'~tempfile'; |
$fp = fopen($temp, 'wb') or die("Couldn't open tempfile {$temp} for writing.\n"); |
// Get all files matching pattern in current template |
$files = parseDirectory("../".$config->pathto_templates.$config->default_template.'/'); |
$files[] = "../includes/image.class.php"; |
$files[] = "../includes/item.class.php"; |
$files[] = "../includes/gallery.class.php"; |
$files[] = "../includes/singapore.class.php"; |
$files[] = "../includes/user.class.php"; |
fwrite($fp, implode("\n", $files)); |
// Close tempfile |
fclose($fp); |
// Call gettext |
$res = shell_exec("{$GETTEXT_EXTRACT} --debug --keyword=_g --keyword=_ng:1,2 --keyword=__g -C -F --output=\"" . $standardPot . "\" --files-from=\"" . $temp . "\""); |
if (trim($res)) die("Something seemed to go wrong with gettext:\n" . $res . "\n"); |
else echo "Standard strings extracted $standardPot<br />"; |
// Remove tempfile |
unlink($temp); |
//set permissions on new POT file |
@chmod($standardPot, octdec($config->file_mode)); |
///////admin/////////// |
// Create tempfile |
$temp = $OUTPUTPATH."/".'~tempfile'; |
$fp = fopen($temp, 'w') or die("Couldn't open tempfile {$temp} for writing.\n"); |
// Get all files matching pattern in current template |
$files = parseDirectory("../".$config->pathto_templates.$config->admin_template_name.'/'); |
$files[] = "../includes/admin.class.php"; |
$files[] = "../admin.php"; |
fwrite($fp, implode("\n", $files)); |
// Close tempfile |
fclose($fp); |
// Call gettext |
$res = shell_exec("{$GETTEXT_EXTRACT} --debug --keyword=_g --keyword=_ng:1,2 -C -F -x \"" . $standardPot . "\" --output=\"" . $adminPot . "\" --files-from=\"" . $temp . "\""); |
if (trim($res)) die("Something seemed to go wrong with gettext:\n" . $res . "\n"); |
else echo "Admin strings extracted to $adminPot<br />"; |
// Remove tempfile |
unlink($temp); |
//set permissions on new POT file |
@chmod($adminPot, octdec($config->file_mode)); |
?> |
</p> |
<p>You may now <a href="merge.php">merge</a> the strings into all previously |
translated PO files.</p> |
</body> |
</html> |
/photogallery/tools/generate.php |
---|
0,0 → 1,68 |
<?php |
/** |
* Use this script to batch generate all main and preview thumbnails for all |
* galleries. Galleries which contain sub-galleries are skipped as are hidden |
* galleries. |
* |
* Currently this is a bit of a hack. Hopefully a later version of the script |
* will be built more robustly using the singapore class to greater advantage. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2004-2005 Tamlyn Rhodes |
* @version 0.1 |
*/ |
//relative path to the singapore base installation |
$basePath = '../'; |
//remove the built in time limit |
set_time_limit(0); |
// require main class |
require_once $basePath."includes/singapore.class.php"; |
//create singapore object |
$sg = new Singapore($basePath); |
function showAllThumbnails(&$sg, &$gal) |
{ |
echo "<li>Entering <code>".$gal->name()."</code></li>\n"; |
echo "<ul>\n"; |
echo "<li>".$gal->thumbnailHTML()."</li>\n"; |
if($gal->isGallery()) { |
foreach($gal->galleries as $subgal) |
showAllThumbnails($sg, $sg->io->getGallery($subgal->id, $gal)); |
} else |
foreach($gal->images as $img) |
echo "<li>".$img->thumbnailHTML().$img->thumbnailHTML("","preview")."</li>\n"; |
echo "</ul>\n"; |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>batch thumbnail generator</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>Generating thumbnails</h1> |
<?php |
//start recursive thumbnail generation |
showAllThumbnails($sg, $sg->gallery); |
?> |
<p>All done! <a href="index.html">Return</a> to tools.</p> |
</body> |
</html> |
/photogallery/tools/index.html |
---|
0,0 → 1,58 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore tools</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>singapore tools</h1> |
<p>This is a collection of tools for use with the singapore image gallery. They |
must be located in a child directory of the main singapore directory |
(<code>tools/</code> by default). Since they are PHP scripts they must be run |
on a PHP enabled web server</p> |
<h1>language tools</h1> |
<p>These tools are to aid translators. They require GNU Gettext to be available |
on the host system but do not require the Gettext PHP extension. Please |
see the <a href="../docs/Translation.html">translation</a> readme for more |
information.</p> |
<ol> |
<li><a href="extract.php">Extractor</a> - for developers. Extracts |
translatable strings from singapore files and current template and creates |
PO template files. Unless you have edited text in the sources you do not need |
to execute this.</li> |
<li><a href="merge.php">Merger</a> - for translators. Merges new strings from |
the PO templates with all currently available PO files.</li> |
<li><a href="compile.php">Compiler</a> - for translators. Compiles all |
currently available PO files into PHP serialized objects for use with singapore.</li> |
<li><a href="localecache.php">Cache updater</a> - for anyone. Caches the names |
of all installed languages for use with the language flipper.</li> |
</ol> |
<h1>misc tools</h1> |
<ul> |
<!--<li><a href="convertdb.php">Database converter</a> - copies or moves the |
gallery description field of pre v0.9.10 to the summary field of v0.9.10.</li>--> |
<li><a href="generate.php">Batch thumbnail generator</a> - use to generate all |
album and preview thumbnails for all galleries in one go. Particularly useful |
on slow servers to run overnight.</li> |
<li><a href="cleanup.php">Cleanup script</a> - use this script to make all |
server generated content world readable allowing you to delete it. Since this |
script does not actually delete anything it is safe to be run by anyone.</li> |
<li><a href="mod_rewrite.htaccess">mod_rewrite</a> - The .htaccess file you |
need for use with Apache mod_rewrite. See readme for more info.</li> |
</ul> |
<p><a href="../">Return</a> to singapore.</p> |
</body> |
</html> |
/photogallery/tools/localecache.php |
---|
0,0 → 1,98 |
<?php |
/** |
* This file merges the two PO template files (singapore.pot and singapore.admin.pot) |
* with all existing language files (singapore.LANG.po) |
* |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: localecache.php,v 1.5 2005/12/15 17:18:47 tamlyn Exp $ |
*/ |
//require config class |
$BASEPATH = "../"; |
require_once $BASEPATH."includes/config.class.php"; |
require_once $BASEPATH."includes/translator.class.php"; |
//get config object |
$sgConfig = sgConfig::getInstance(); |
$sgConfig->loadConfig($BASEPATH."singapore.ini"); |
$sgConfig->base_path = $BASEPATH; |
$OUTPUTPATH = $sgConfig->base_path.$sgConfig->pathto_locale; |
$OUTPUTFILE = $sgConfig->base_path.$sgConfig->pathto_data_dir."languages.cache"; |
/** |
* Parses a directory and returns full path to all the files |
* matching the filter (file name suffix) |
* |
* @param string $dir full directory name (must end with /) |
* @param string $filter file name suffixes separated by | (optional, default don't filter) |
* @return array an array with all files |
**/ |
function parseDirectory ($dir, $filter = 'php|html|tpl|inc') |
{ |
$ret = array(); |
if (is_dir($dir)) { |
$d = dir($dir); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$fullfile = $d->path . $file; |
if (is_dir($fullfile)) $ret = array_merge($ret,parseDirectory($fullfile."/")); |
else if (!$filter || preg_match("/\.({$filter})$/i", $file)) $ret[] = $fullfile; |
} |
} |
return $ret; |
} |
function saveCache($availableLanguages, $output) |
{ |
// Open data file for writing |
$fp = @fopen($output, "wb") or die("Couldn't open file ({$output}).\n"); |
fwrite($fp, serialize($availableLanguages)); |
return fclose($fp); |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>language cache updater</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>language cache updater</h1> |
<p><?php |
$files = parseDirectory($OUTPUTPATH, 'pmo'); |
$availableLanguages = array(); |
foreach ($files as $file) { |
if (!preg_match("/singapore\.([\w]+)\.pmo$/i", $file, $matches)) continue; |
$i18n = Translator::getInstance($matches[1]); |
$i18n->readLanguageFile($sgConfig->base_path.$sgConfig->pathto_locale."singapore.".$i18n->language.".pmo"); |
$availableLanguages[$matches[1]] = $i18n->languageStrings[0]['language']; |
echo "Added $matches[1] => ".$i18n->languageStrings[0]['language']." to available languages.<br />\n"; |
} |
//add english which has no translation files |
$availableLanguages["en"] = "English"; |
ksort($availableLanguages); |
if(saveCache($availableLanguages, $OUTPUTFILE)) |
echo "Cache file saved as ".$OUTPUTFILE; |
else |
echo "Could not save cache file as ".$OUTPUTFILE; |
?> |
</p> |
<p>All operations complete. <a href="index.html">Return</a> to tools.</p> |
</body> |
</html> |
/photogallery/tools/merge.php |
---|
0,0 → 1,115 |
<?php |
/** |
* This file merges the two PO template files (singapore.pot and singapore.admin.pot) |
* with all existing language files (singapore.LANG.po) |
* |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: merge.php,v 1.8 2006/05/08 09:40:02 thepavian Exp $ |
*/ |
// Programs to call (insert path to them if necessary) |
$GETTEXT_MERGE = "msgmerge"; |
$BASEPATH = realpath("..")."/"; |
//require config class |
require_once $BASEPATH."includes/config.class.php"; |
//get config object |
$config = sgConfig::getInstance(); |
$config->loadConfig($BASEPATH."singapore.ini"); |
$OUTPUTPATH = $BASEPATH.$config->pathto_locale; |
$standardPot = $OUTPUTPATH."singapore.pot"; |
$adminPot = $OUTPUTPATH."singapore.admin.pot"; |
$createbackups = true; |
/** |
* Parses a directory and returns full path to all the files |
* matching the filter (file name suffix) |
* |
* @param string $dir full directory name (must end with /) |
* @param string $filter file name suffixes separated by | (optional, default don't filter) |
* @return array an array with all files |
**/ |
function parseDirectory ($dir, $filter = 'php|html|tpl|inc') |
{ |
$ret = array(); |
if (is_dir($dir)) { |
$d = dir($dir); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$fullfile = $d->path . $file; |
if (is_dir($fullfile)) $ret = array_merge($ret,parseDirectory($fullfile."/")); |
else if (!$filter || preg_match("/\.({$filter})$/i", $file)) $ret[] = $fullfile; |
} |
} |
return $ret; |
} |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>i18n string merger</title> |
<link rel="stylesheet" type="text/css" href="tools.css" /> |
</head> |
<body> |
<h1>i18n string merger</h1> |
<p><?php |
$files = parseDirectory($OUTPUTPATH, 'po'); |
foreach ($files as $file) { |
if (!preg_match("/singapore\.[\w]+\.po$/i", $file)) continue; |
$backup = $file . '.bak'; |
if (file_exists($backup)) @unlink($backup); |
@rename($file, $backup); |
$res = shell_exec("{$GETTEXT_MERGE} --strict \"{$backup}\" \"" . $standardPot . "\" > \"{$file}\""); |
if (trim($res)) echo "Something seemed to go wrong with msgmerge:\n" . $res . "\n"; |
else echo "$standardPot merged with $file<br />"; |
// Remove backup? |
if (!@$createbackups) @unlink($backup); |
//set permissions on new POT file |
@chmod($standardPot, octdec($config->file_mode)); |
} |
///////admin/////////// |
$files = parseDirectory($OUTPUTPATH, 'po'); |
foreach ($files as $file) { |
if (!preg_match("/singapore\.admin\.[\w]+\.po$/i", $file)) continue; |
$backup = $file . '.bak'; |
if (file_exists($backup)) @unlink($backup); |
@rename($file, $backup); |
$res = shell_exec("{$GETTEXT_MERGE} --strict \"{$backup}\" \"" . $adminPot . "\" > \"{$file}\""); |
if (trim($res)) echo "Something seemed to go wrong with msgmerge:\n" . $res . "\n"; |
else echo "$adminPot merged with $file<br />"; |
// Remove backup? |
if (!@$createbackups) @unlink($backup); |
//set permissions on new POT file |
@chmod($adminPot, octdec($config->file_mode)); |
} |
?> |
</p> |
<p>Once you have translated the updated PO files you may |
<a href="compile.php">compile</a> them into PHP serialized objects for use with |
singapore.</p> |
</body> |
</html> |
/photogallery/tools/mod_rewrite.htaccess |
---|
0,0 → 1,33 |
# WHAT YOU NEED TO EDIT |
# |
# There are just two things you need to edit to make this file work on your |
# installation. On each of the two lines below starting 'RewriteRule' about |
# half way along the line there is a '/singapore/'. Change this to the full |
# path to your installation (e.g. the bit after the .com, .org or whatever) |
# then rename this file to .htaccess and put it in the singapore root |
# directory (the one containing thumb.php). Finally don't forget to turn on |
# use_mod_rewrite and update the base_path in singapore.ini. Voila! |
Options +FollowSymlinks |
RewriteEngine On |
# rewrite galleries |
# url must end in / and gallery names must not contain commas (,) |
# example: /singapore/gallery/subgallery,20/ |
# becomes: /singapore/index.php?gallery=gallery/subgallery&startat=20 |
RewriteRule ^([^,]+)(,([0-9]+))?/$ /singapore/index.php?gallery=$1&startat=$3&%{QUERY_STRING} [ne] |
# rewrite images |
# do not rewrite requests to files and directories that really exist |
RewriteCond %{REQUEST_FILENAME} !-d |
RewriteCond %{REQUEST_FILENAME} !-f |
# example: /singapore/gallery/subgallery/myphoto.jpeg |
# becomes: /singapore/index.php?gallery=gallery/subgallery&image=myphoto.jpeg |
RewriteRule ^((.*)/)?([^/]+\.(jpeg|jpg|jpe|png|gif|bmp|tif|tiff))$ /singapore/index.php?gallery=$2&image=$3&%{QUERY_STRING} [ne,nc] |
# rewrite feed.xml to the rss template |
# example: /singapore/gallery/feed.xml |
# becomes: /singapore/index.php?gallery=gallery&template=rss |
RewriteRule ^((.*)/)?feed.xml$ /singapore/index.php?gallery=$2&template=rss&%{QUERY_STRING} [ne] |
/photogallery/tools/tools.css |
---|
0,0 → 1,82 |
body { |
margin: 1em; |
font: small sans-serif; |
color: #000; |
background-color: #fff; |
} |
p, td, th, li, dd, dt { |
font: small sans-serif; |
} |
h1, h2, h3, h4{ |
color: #f60; |
} |
h1, h2 { |
font-size: medium; |
border-bottom: 1px solid #ccc; |
letter-spacing: 0.3em; |
text-transform: uppercase; |
} |
code, pre { |
color: #444; |
} |
p, td, th, li, dt, h3, h4, pre { |
margin-left: 2em; |
} |
dd { |
margin-left: 3em; |
} |
dt { |
margin-top: 0.5em; |
} |
a:link { |
color: #09f; |
text-decoration: underline; |
} |
a:visited { |
color: #05a; |
text-decoration: underline; |
} |
a:hover { |
text-decoration: none; |
} |
input, textarea, select, .inputbox { |
border: 1px solid #f60; |
color: #000; |
background-color: #fff; |
} |
input.radio { |
border: none; |
background-color: #fff; |
} |
input.button { |
font-weight: bold; |
border: 1px outset #fff; |
color: #fff; |
background-color: #f60; |
} |
ul.things > li { |
margin-top: 0.75em; |
} |
.note { |
color: #d00; |
} |
.boxed, .note { |
border: 1px dashed #ccc; |
padding: 0.5em; |
} |
/photogallery/templates/admin_default/admin.ini |
---|
0,0 → 1,88 |
; singapore admin configuration file <http://singapore.sourceforge.net> |
; |
; This is a special case of a template.ini file |
; |
[Functionality] |
; |
; these settings should not be changed |
; |
track_views = false |
show_views = true |
use_mod_rewrite = off |
;mod rewrite doesn't work in admin mode |
[Advanced] |
; |
; these settings must not be changed |
; |
index_file_url = "admin.php?action=view&" |
[GET variable names] |
; |
; these settings must not be changed |
; |
url_gallery = "gallery" |
url_image = "image" |
url_startat = "startat" |
url_action = "action" |
url_lang = "lang" |
url_template = "template" |
[Template] |
;Option descriptions have been grouped together here. |
;Do not uncomment the following lines, they are for illustration only. |
; |
;thumb_width_* |
; Width in pixels of thumbnails generated by the script. |
; This option is affected by the thumb_crop_* option (see below). |
; |
;thumb_height_* |
; Height in pixels of thumbnails generated by the script. |
; This option is affected by the thumb_crop_* option (see below). |
; |
;thumb_crop_* |
; By default, width and height are maximum dimensions and images will be |
; resized, maintaining the same aspect ratio, to fit within these limits. |
; Turn force_size on to make the script crop images to the specified size. |
; |
;*_gallery |
; These options affect gallery pages (those that contain sub-galleries). |
; |
;*_album |
; These options affect album pages (those that contain only images). |
; |
;*_preview |
; These options affect the preview thumbnails displayed on image pages. |
; |
;*_image |
; These options affect full size display images and are only used if |
; full_image_resize is on in singapore.ini |
thumb_width_gallery = 50 |
thumb_height_gallery = 50 |
thumb_crop_gallery = off |
thumb_number_gallery = 10 |
;Maximum number of galleries to show on one gallery page. |
thumb_width_album = 100 |
thumb_height_album = 100 |
thumb_crop_album = off |
thumb_number_album = 20 |
;Maximum number of image thumbnails to show on one album page. |
thumb_width_preview = 50 |
thumb_height_preview = 50 |
thumb_crop_preview = off |
thumb_number_preview = 5 |
;Maximum number of preview thumbnails to display before and |
;after current image in image view (eg a value of 2 here |
;will result in 5 thumbnails (2 before + current + 2 after) |
thumb_width_image = 700 |
thumb_height_image = 500 |
/photogallery/templates/admin_default/changethumbnail.tpl.php |
---|
0,0 → 1,32 |
<h1><?php echo $sg->translator->_g("Choose Thumbnail") ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="changethumbnail" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<p><?php echo $sg->translator->_g("Choose the filename of the image used to represent this gallery.") ?></p> |
<?php /*<p><select name="sgThumbName"> |
<option value="__none__"<?php if($sg->gallery->filename == "__none__") echo ' selected="true"'; ?>><?php echo $sg->translator->_g("thumbnail|None") ?></option> |
<option value="__random__"<?php if($sg->gallery->filename == "__random__") echo ' selected="true"'; ?>><?php echo $sg->translator->_g("thumbnail|Random") ?></option> |
<?php |
foreach($sg->gallery->images as $img) { |
echo '<option value="'.$img->idEntities().'"'; |
if($sg->gallery->filename == $img->id) echo ' selected="true"'; |
echo '>'.$img->name().' ('.$img->idEntities().")</option>\n "; |
} |
?> |
</select></p> */ ?> |
<p> |
<label><input type="radio" name="sgThumbName" value="__none__"<?php if($sg->gallery->filename == "__none__") echo ' checked="true"'; ?>><?php echo $sg->translator->_g("thumbnail|None") ?></label> |
<label><input type="radio" name="sgThumbName" value="__random__"<?php if($sg->gallery->filename == "__random__") echo ' checked="true"'; ?>><?php echo $sg->translator->_g("thumbnail|Random") ?></label> |
<?php |
foreach($sg->gallery->images as $img) { |
echo '<label><input type="radio" name="sgThumbName" value="'.$img->idEntities().'"'; |
if($sg->gallery->filename == $img->id) echo ' checked="true"'; |
echo '>'.$img->thumbnailHTML("", "preview")."</label>\n "; |
} |
?> |
</p> |
<p><input type="submit" class="button" name="confirmed" value="<?php /*"*/ echo $sg->translator->_g("confirm|OK") ?>"> |
<input type="submit" class="button" name="confirmed" value="<?php /*"*/ echo $sg->translator->_g("confirm|Cancel") ?>"></p> |
</form> |
/photogallery/templates/admin_default/confirm.tpl.php |
---|
0,0 → 1,15 |
<h1><?php echo $confirmTitle ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<?php |
foreach($_REQUEST as $name => $value) |
if(is_array($value)) |
foreach($value as $subname => $subvalue) |
echo "<input type=\"hidden\" name=\"{$name}[{$subname}]\" value=\"$subvalue\" />\n"; |
else |
echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />\n"; |
?> |
<p><?php echo $confirmMessage ?></p> |
<p><input type="submit" class="button" name="confirmed" value="<?php /*"*/ echo $sg->translator->_g("confirm|OK") ?>"> |
<input type="submit" class="button" name="confirmed" value="<?php /*"*/ echo $sg->translator->_g("confirm|Cancel") ?>"></p> |
</form> |
/photogallery/templates/admin_default/editgallery.tpl.php |
---|
0,0 → 1,57 |
<h1><?php echo $sg->translator->_g("Edit Gallery") ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="savegallery" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<input type="hidden" name="sgCategories" value="<?php echo $sg->gallery->categories ?>" /> |
<table class="formTable"> |
<tr> |
<td><?php echo $sg->translator->_g("Thumbnail") ?></td> |
<td><div class="inputbox sgImageInput"> |
<?php |
if($sg->gallery->filename == "__random__") |
echo nl2br($sg->translator->_g("Random\nthumbnail")); |
else |
echo $sg->gallery->thumbnailHTML(); |
?> |
<br /> |
<a href="<?php echo $sg->formatAdminURL("changethumbnail",$sg->gallery->idEncoded()) ?>"><?php echo $sg->translator->_g("thumbnail|Change...") ?></a> |
</div></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Gallery name") ?></td> |
<td><input type="text" name="sgGalleryName" value="<?php echo $sg->gallery->name ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Artist name") ?></td> |
<td><input type="text" name="sgArtistName" value="<?php echo $sg->gallery->artist ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Email") ?></td> |
<td><input type="text" name="sgArtistEmail" value="<?php echo $sg->gallery->email ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Date") ?></td> |
<td><input type="text" name="sgDate" value="<?php echo $sg->gallery->date ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Copyright") ?></td> |
<td><input type="text" name="sgCopyright" value="<?php echo $sg->gallery->copyright ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Summary") ?></td> |
<td><textarea name="sgSummary" cols="70" rows="3"><?php echo $sg->gallery->summaryStripped() ?></textarea></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Description") ?></td> |
<td><textarea name="sgGalleryDesc" cols="70" rows="8"><?php echo $sg->gallery->descriptionStripped() ?></textarea></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Save Changes") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/editimage.tpl.php |
---|
0,0 → 1,67 |
<h1><?php echo $sg->translator->_g("Edit Image") ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="saveimage" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<input type="hidden" name="image" value="<?php echo $sg->image->idEntities() ?>" /> |
<input type="hidden" name="sgThumbnail" value="<?php echo $sg->image->thumbnail ?>" /> |
<input type="hidden" name="sgCategories" value="<?php echo $sg->image->categories ?>" /> |
<table class="formTable"> |
<tr> |
<td><?php echo $sg->translator->_g("Image") ?></td> |
<td><div class="inputbox sgImageInput"><?php echo $sg->image->thumbnailHTML() ?></div></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Image name") ?></td> |
<td><input type="text" name="sgImageName" value="<?php echo $sg->image->name ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Artist name") ?></td> |
<td><input type="text" name="sgArtistName" value="<?php echo $sg->image->artist ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Email") ?></td> |
<td><input type="text" name="sgArtistEmail" value="<?php echo $sg->image->email ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Location") ?></td> |
<td><input type="text" name="sgLocation" value="<?php echo $sg->image->location ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Date") ?></td> |
<td><input type="text" name="sgDate" value="<?php echo $sg->image->date ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Copyright") ?></td> |
<td><input type="text" name="sgCopyright" value="<?php echo $sg->image->copyright ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Description") ?></td> |
<td><textarea name="sgImageDesc" cols="70" rows="8"><?php echo $sg->image->descriptionStripped() ?></textarea></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Camera") ?></td> |
<td><input type="text" name="sgField01" value="<?php echo $sg->image->camera ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Lens") ?></td> |
<td><input type="text" name="sgField02" value="<?php echo $sg->image->lens ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Film") ?></td> |
<td><input type="text" name="sgField03" value="<?php echo $sg->image->film ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Darkroom manipulation") ?></td> |
<td><input type="text" name="sgField04" value="<?php echo $sg->image->darkroom ?>" size="40" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Digital manipulation") ?></td> |
<td><input type="text" name="sgField05" value="<?php echo $sg->image->digital ?>" size="40" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Save Changes") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/editpass.tpl.php |
---|
0,0 → 1,25 |
<h1><?php echo $sg->translator->_g("Change Password") ?></h1> |
<p><?php echo $sg->translator->_g("Please choose a new password between 6 and 16 characters in length.") ?></p> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="savepass" /> |
<input type="hidden" name="sgUsername" value="<?php echo $sg->user->username ?>" /> |
<table> |
<tr> |
<td><?php echo $sg->translator->_g("Current password:") ?></td> |
<td><input type="password" name="sgOldPass" size="23" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("New password:") ?></td> |
<td><input type="password" name="sgNewPass1" size="23" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Confirm password:") ?></td> |
<td><input type="password" name="sgNewPass2" size="23" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Save Changes") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/editpermissions.tpl.php |
---|
0,0 → 1,95 |
<h1><?php echo $sg->translator->_g("Access Control") ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="savepermissions" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<table class="formTable"> |
<tr> |
<td><?php echo $sg->translator->_g("Owner") ?></td> |
<td><?php |
if($sg->user->isAdmin()) |
echo '<input type="text" name="sgOwner" value="'.$sg->gallery->owner.'" />'; |
else |
echo '<strong>'.$sg->gallery->owner.'</strong>'; |
?></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Groups") ?></td> |
<td><input type="text" name="sgGroups" value="<?php echo $sg->gallery->groups ?>" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("access control|Read") ?></td> |
<td><div class="inputbox"> |
<?php |
if(($sg->gallery->permissions & SG_IHR_READ) == SG_IHR_READ) $checked = 0; |
elseif($sg->gallery->permissions & SG_GRP_READ) $checked = 1; |
elseif($sg->gallery->permissions & SG_WLD_READ) $checked = 2; |
else $checked = 3; |
?> |
<label for="sgOwnRead"><input type="radio" class="radio" id="sgOwnRead" name="sgRead" value="owner" <?php if($checked == 3) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Owner") ?></label> |
<label for="sgGrpRead"><input type="radio" class="radio" id="sgGrpRead" name="sgRead" value="group" <?php if($checked == 1) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Group") ?></label> |
<label for="sgWldRead"><input type="radio" class="radio" id="sgWldRead" name="sgRead" value="world" <?php if($checked == 2) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|World") ?></label> |
<?php if(!$sg->gallery->isRoot()): ?> |
<label for="sgIhrRead"><input type="radio" class="radio" id="sgIhrRead" name="sgRead" value="inherit" <?php if($checked == 0) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Inherit") ?></label> |
<?php endif; ?> |
</div></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("access control|Edit") ?></td> |
<td><div class="inputbox"> |
<?php |
if(($sg->gallery->permissions & SG_IHR_EDIT) == SG_IHR_EDIT) $checked = 0; |
elseif($sg->gallery->permissions & SG_GRP_EDIT) $checked = 1; |
elseif($sg->gallery->permissions & SG_WLD_EDIT) $checked = 2; |
else $checked = 3; |
?> |
<label for="sgOwnEdit"><input type="radio" class="radio" id="sgOwnEdit" name="sgEdit" value="owner" <?php if($checked == 3) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Owner") ?></label> |
<label for="sgGrpEdit"><input type="radio" class="radio" id="sgGrpEdit" name="sgEdit" value="group" <?php if($checked == 1) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Group") ?></label> |
<label for="sgWldEdit"><input type="radio" class="radio" id="sgWldEdit" name="sgEdit" value="world" <?php if($checked == 2) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|World") ?></label> |
<?php if(!$sg->gallery->isRoot()): ?> |
<label for="sgIhrEdit"><input type="radio" class="radio" id="sgIhrEdit" name="sgEdit" value="inherit" <?php if($checked == 0) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Inherit") ?></label> |
<?php endif; ?> |
</div></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("access control|Add") ?></td> |
<td><div class="inputbox"> |
<?php |
if(($sg->gallery->permissions & SG_IHR_ADD) == SG_IHR_ADD) $checked = 0; |
elseif($sg->gallery->permissions & SG_GRP_ADD) $checked = 1; |
elseif($sg->gallery->permissions & SG_WLD_ADD) $checked = 2; |
else $checked = 3; |
?> |
<label for="sgOwnAdd"><input type="radio" class="radio" id="sgOwnAdd" name="sgAdd" value="owner" <?php if($checked == 3) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Owner") ?></label> |
<label for="sgGrpAdd"><input type="radio" class="radio" id="sgGrpAdd" name="sgAdd" value="group" <?php if($checked == 1) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Group") ?></label> |
<label for="sgWldAdd"><input type="radio" class="radio" id="sgWldAdd" name="sgAdd" value="world" <?php if($checked == 2) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|World") ?></label> |
<?php if(!$sg->gallery->isRoot()): ?> |
<label for="sgIhrAdd"><input type="radio" class="radio" id="sgIhrAdd" name="sgAdd" value="inherit" <?php if($checked == 0) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Inherit") ?></label> |
<?php endif; ?> |
</div></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("access control|Delete") ?></td> |
<td><div class="inputbox"> |
<?php |
if(($sg->gallery->permissions & SG_IHR_DELETE) == SG_IHR_DELETE) $checked = 0; |
elseif($sg->gallery->permissions & SG_GRP_DELETE) $checked = 1; |
elseif($sg->gallery->permissions & SG_WLD_DELETE) $checked = 2; |
else $checked = 3; |
?> |
<label for="sgOwnDelete"><input type="radio" class="radio" id="sgOwnDelete" name="sgDelete" value="owner" <?php if($checked == 3) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Owner") ?></label> |
<label for="sgGrpDelete"><input type="radio" class="radio" id="sgGrpDelete" name="sgDelete" value="group" <?php if($checked == 1) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Group") ?></label> |
<label for="sgWldDelete"><input type="radio" class="radio" id="sgWldDelete" name="sgDelete" value="world" <?php if($checked == 2) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|World") ?></label> |
<?php if(!$sg->gallery->isRoot()): ?> |
<label for="sgIhrDelete"><input type="radio" class="radio" id="sgIhrDelete" name="sgDelete" value="inherit" <?php if($checked == 0) echo 'checked="true" '; ?>/> <?php echo $sg->translator->_g("permissions|Inherit") ?></label> |
<?php endif; ?> |
</div></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Save Changes") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/editprofile.tpl.php |
---|
0,0 → 1,27 |
<h1><?php echo $sg->translator->_g("Edit Profile"); ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<table class="formTable"> |
<input type="hidden" name="action" value="saveprofile" /> |
<input type="hidden" name="user" value="<?php echo $sg->user->username; ?>" /> |
<tr> |
<td><?php echo $sg->translator->_g("Username"); ?></td> |
<td><strong><?php echo $sg->user->username; ?></strong></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Email"); ?></td> |
<td><input type="input" name="sgEmail" value="<?php echo $sg->user->email; ?>" /></td> |
</tr> |
<tr> |
<td><?php echo $sg->translator->_g("Full name"); ?></td> |
<td><input type="input" name="sgFullname" value="<?php echo $sg->user->fullname; ?>" /></td> |
</tr> |
<tr><td><?php echo $sg->translator->_g("Description"); ?></td> |
<td><input type="input" name="sgDescription" value="<?php echo $sg->user->description; ?>" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Save Changes") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/edituser.tpl.php |
---|
0,0 → 1,34 |
<h1><?php echo $sg->translator->_g("User Management"); ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<table class="formTable"> |
<input type="hidden" name="action" value="saveuser" /> |
<input type="hidden" name="user" value="<?php echo $_REQUEST["user"]; ?>" /> |
<?php |
$users = $sg->io->getUsers(); |
for($i=0; $i<count($users); $i++) |
if($users[$i]->username == $_REQUEST["user"]) { |
$usr = $users[$i]; |
break; |
} |
echo "<tr><td>".$sg->translator->_g("Username")."</td><td><strong>".$usr->username."</strong></td></tr>\n"; |
if($sg->user->isAdmin()) |
echo "<tr><td>".$sg->translator->_g("Type").'</td><td>'. |
'<label for="sgTypeAdmin"><input type="radio" class="radio" id="sgTypeAdmin" name="sgType" value="admin"'.($usr->permissions & SG_ADMIN ? ' checked="true"' : "").' />'.$sg->translator->_g("Administrator")."</label><br />\n". |
'<label for="sgTypeUser"><input type="radio" class="radio" id="sgTypeUser" name="sgType" value="user"'. ($usr->permissions & SG_ADMIN ? "" : ' checked="true"').' />'.$sg->translator->_g("User")."</label></td></tr>\n"; |
if($sg->user->isAdmin()) |
echo "<tr><td>".$sg->translator->_g("Groups").'</td><td><input type="input" name="sgGroups" value="'.$usr->groups."\" /></td></tr>\n"; |
echo "<tr><td>".$sg->translator->_g("Email").'</td><td><input type="input" name="sgEmail" value="'.$usr->email."\" /></td></tr>\n"; |
echo "<tr><td>".$sg->translator->_g("Full name").'</td><td><input type="input" name="sgFullname" value="'.$usr->fullname."\" /></td></tr>\n"; |
echo "<tr><td>".$sg->translator->_g("Description").'</td><td><input type="input" name="sgDescription" value="'.$usr->description."\" /></td></tr>\n"; |
if($sg->user->isAdmin() && !$usr->isGuest()) |
echo "<tr><td>".$sg->translator->_g("Password").'</td><td><input type="input" name="sgPassword" value="**********" /></td></tr>'."\n"; |
?> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Save Changes") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/footer.tpl.php |
---|
0,0 → 1,10 |
<div id="footer"><p> |
<?php echo $sg->allRightsReserved() ?> |
<br /> |
<?php echo $sg->poweredByText() ?> |
<?php echo $sg->scriptExecTimeText() ?> |
</p></div> |
</body> |
</html> |
/photogallery/templates/admin_default/galleryhits.tpl.php |
---|
0,0 → 1,25 |
<p class="sgNavBar sgTopNavBar"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink("showgalleryhits")." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink("showgalleryhits"); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink("showgalleryhits"); ?> |
</p> |
<h1><?php echo $sg->gallery->name(); ?></h1> |
<div class="sgContainer"> |
<div class="sgContent"> |
<table class="sgList"> |
<tr><th><?php echo $sg->translator->_g("Gallery name") ?></th><th><?php echo $sg->translator->_g("hits table|Hits") ?></th><th><?php echo $sg->translator->_g("hits table|Last hit") ?></th><th><?php echo $sg->translator->_g("hits table|Graph") ?></th></tr> |
<?php $maxhits = $sg->getMaxHits($sg->gallery->galleries); ?> |
<?php foreach($sg->gallery->galleries as $index => $gal): ?> |
<tr class="sgRow<?php echo $index%2 ?>"> |
<td><?php echo $gal->nameLink($gal->isGallery()?"showgalleryhits":"showimagehits"); ?> (<?php echo $gal->idEntities() ?>)</td> |
<td align="right"><?php echo $gal->hits; ?></td> |
<td align="right" title="<?php echo $gal->lasthit==0 ? "n/a" : date("Y-m-d H:i:s",$gal->lasthit) ?>"><?php echo $gal->lasthit==0 ? "n/a" : date("D j H:i",$gal->lasthit) ?></td> |
<td><img src="<?php echo $sg->config->base_url.$sg->config->pathto_admin_template ?>images/graph.gif" height="8" width="<?php echo $maxhits==0 ? "0" : floor(($gal->hits/$maxhits)*300) ?>" alt="" /></td> |
</tr> |
<?php endforeach; ?> |
</table> |
</div> |
</div> |
/photogallery/templates/admin_default/header.tpl.php |
---|
0,0 → 1,39 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title><?php echo $sg->pageTitle() ?></title> |
<link rel="stylesheet" type="text/css" href="<?php echo $sg->config->base_url.$sg->config->pathto_admin_template ?>main.css" /> |
<!-- |
This page was generated by singapore <http://singapore.sourceforge.net> |
singapore is free software licensed under the terms of the GNU GPL. |
--> |
</head> |
<body> |
<div id="crumb"> |
<?php echo $sg->crumbLine() ?> |
</div> |
<div id="header"><img src="<?php echo $sg->config->base_url.$sg->config->pathto_admin_template ?>images/header.gif" alt="<?php echo $sg->config->gallery_name ?>" /></div> |
<div id="sgAdminBar"> |
<?php |
$sections = $sg->adminLinksArray(); |
foreach($sections[0] as $text => $url): ?> |
<a href="<?php echo $url ?>"><?php echo $text ?></a> |
<?php endforeach; ?> |
<?php for($i=1;$i<count($sections);$i++): ?> |
<span class="sgAdminBarSeparator"></span> |
<?php foreach($sections[$i] as $text => $url): ?> |
<a href="<?php echo $url ?>"><?php echo $text ?></a> |
<?php endforeach; ?> |
<?php endfor; ?> |
</div> |
<?php echo $sg->showMessages(); ?> |
<!-- start of generated content --> |
/photogallery/templates/admin_default/imagehits.tpl.php |
---|
0,0 → 1,24 |
<p class="sgNavBar sgTopNavBar"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink("showimagehits")." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink("showimagehits"); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink("showimagehits"); ?> |
</p> |
<h1><?php echo $sg->gallery->name(); ?></h1> |
<div class="sgContainer"> |
<div class="sgContent"> |
<table class="sgList"> |
<tr><th><?php echo $sg->translator->_g("Image name") ?></th><th><?php echo $sg->translator->_g("hits table|Hits") ?></th><th><?php echo $sg->translator->_g("hits table|Last hit") ?></th><th><?php echo $sg->translator->_g("hits table|Graph") ?></th></tr> |
<?php $maxhits = $sg->getMaxHits($sg->gallery->images); ?> |
<?php foreach($sg->gallery->images as $index => $img): ?> |
<tr class="sgRow<?php echo $index%2 ?>"> |
<td><?php echo $img->nameLink(); ?> (<?php echo $img->id ?>)</td> |
<td align="right"><?php echo empty($img->hits) ? "0" : $img->hits ?></td> |
<td align="right" title="<?php echo empty($img->lasthit) ? "n/a" : date("Y-m-d H:i:s",$img->lasthit) ?>"><?php echo empty($img->lasthit) ? "n/a" : date("D j H:i",$img->lasthit) ?></td> |
<td><img src="<?php echo $sg->config->base_url.$sg->config->pathto_admin_template ?>images/graph.gif" height="8" width="<?php echo $maxhits==0 ? "0" : floor(($img->hits/$maxhits)*300) ?>" /></td> |
</tr> |
<?php endforeach; ?> |
</table> |
</div> |
</div> |
/photogallery/templates/admin_default/images/blank.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/admin_default/images/graph.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/admin_default/images/header.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/admin_default/index.tpl.php |
---|
0,0 → 1,21 |
<?php |
/** |
* Default singapore admin template. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version 1.0 |
*/ |
//include header file |
include $sg->config->base_path.$sg->config->pathto_admin_template."header.tpl.php"; |
//include selected file |
include $sg->config->base_path.$sg->config->pathto_admin_template.$sg->includeFile.".tpl.php"; |
//include footer file |
include $sg->config->base_path.$sg->config->pathto_admin_template."footer.tpl.php"; |
?> |
/photogallery/templates/admin_default/login.tpl.php |
---|
0,0 → 1,22 |
<h1><?php echo $sg->translator->_g("Log In") ?></h1> |
<p><?php echo $sg->translator->_g("Please enter your admin username and password below.") ?></p> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="login" /> |
<p> |
<?php echo $sg->translator->_g("Username:") ?> <input type="text" name="sgUsername" /> |
<?php echo $sg->translator->_g("Password:") ?> <input type="password" name="sgPassword" /> |
<input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Go") ?>" /> |
</p> |
</form> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="login" /> |
<input type="hidden" name="sgUsername" value="guest" /> |
<input type="hidden" name="sgPassword" value="password" /> |
<p> |
<?php echo $sg->translator->_g("If you do not have a username then you may log in as a guest."); ?> |
<input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Log in as guest"); ?>" /> |
</p> |
</form> |
/photogallery/templates/admin_default/main.css |
---|
0,0 → 1,231 |
body { |
margin: 1em; |
font: small sans-serif; |
color: #000; |
background-color: #fff; |
} |
p, td, th, li, h4 { |
font: small sans-serif; |
} |
h1, h2, h3 { |
color: #f60; |
} |
h1 { |
font-size: large; |
} |
a:link, a:visited { |
color: #09f; |
text-decoration: underline; |
} |
a:hover { |
text-decoration: none; |
} |
input, textarea, select, .inputbox { |
border: 1px solid #f60; |
color: #000; |
background-color: #fff; |
} |
input.radio, input.checkbox { |
border: none; |
background-color: #fff; |
} |
input.button { |
font-weight: bold; |
border: 1px outset #fff; |
color: #fff; |
background-color: #f60; |
} |
label { |
cursor: default; |
} |
#header { |
} |
#crumb { |
} |
#footer { |
text-align: center; |
} |
a img { |
border: 0; |
} |
/* image or gallery name header */ |
.sgTitle { |
margin-bottom: 0; |
} |
/* image or gallery artist subheader */ |
.sgSubTitle { |
margin-top: 0; |
} |
table.sgList { |
background-color: #fff; |
border: 1px solid #888; |
width: 100% |
} |
tr.sgRow0 { |
background-color: #f0f0f0; |
margin: 1px; |
} |
tr.sgRow1 { |
background-color: #e0e0e0; |
margin: 1px; |
} |
table.formTable input, table.formTable textarea, table.formTable .inputbox { |
width: 500px; |
} |
table.formTable td { |
vertical-align: top; |
} |
table.formTable input.radio, table.formTable input.checkbox { |
width: auto; |
height: auto; |
} |
.sgImageInput { |
text-align: center; |
padding: 2px; |
} |
#sgAdminMessages { |
background-color: #fff; |
border: 1px dashed #000; |
margin: 1em 0; |
padding: 5px; |
font-size: x-small; |
} |
#sgAdminMessages li.adminError { |
list-style-image: url(images/error.gif); |
margin-left: 20px; |
} |
#sgAdminMessages li.adminMessage { |
list-style-image: url(images/message.gif); |
margin-left: 20px; |
} |
#sgAdminBar { |
background-color: #f0f0f0; |
border: 1px solid #000; |
margin: 1em 0 1em 0; |
padding: 5px; |
font-size: x-small; |
} |
#sgAdminBar a:link, #sgAdminBar a:visited, #sgAdminBar a:active { |
color: #000; |
font: x-small Verdana, sans-serif; |
position: relative; |
left: 1px; |
top: 1px; |
border: 1px solid #f0f0f0; |
text-decoration: none; |
padding: 2px; |
} |
#sgAdminBar a:hover { |
position: relative; |
left: 0px; |
top: 0px; |
border: 1px solid #000; |
color: #000; |
background-color: #fff; |
} |
span.sgAdminBarSeparator { |
border-left: 1px solid #888; |
width: 0px; |
margin-right: 4px; |
} |
div.sgNavBar, p.sgNavBar { |
text-align: center; |
float: right; |
} |
div.sgContainer { |
clear: both; |
text-align: center; |
} |
div.sgTab { |
padding: 0.25em; |
text-align: left; |
} |
div.sgContent { |
background-color: #f0f0f0; |
border: 1px solid #000; |
padding: 1em; |
text-align: left; |
} |
table.sgContent { |
margin-left: auto; |
margin-right: auto; |
} |
div.sgGallery, div.sgThumbnail { |
margin: 0.5em; |
padding: 0.5em; |
border: 1px solid #888; |
background-color: #fff; |
} |
td.sgGalleryThumbnail { |
width: 60px; |
text-align: center; |
} |
p.sgGalleryTitle a { |
font-weight: bold; |
} |
div.sgThumbnail { |
float: left; |
} |
div.sgThumbnail table { |
width: 110px; |
height: 110px; |
text-align: center; |
vertical-align: middle; |
} |
div.stretcher { |
clear: both; |
} |
img.sgImage { |
border: 1px solid #000; |
} |
input.sgImageCheckbox { |
position: absolute; |
float: left; |
z-index: 10; |
} |
/photogallery/templates/admin_default/manageusers.tpl.php |
---|
0,0 → 1,34 |
<h1><?php echo $sg->translator->_g("User Management"); ?></h1> |
<?php if(!$sg->user->isAdmin()) echo '<p>'.$sg->translator->_g("You must be an administrator to access this area.").'</p>'; ?> |
<table> |
<?php |
$users = $sg->io->getUsers(); |
foreach($users as $usr) { |
echo "<tr>\n "; |
echo "<td><strong>".$sg->translator->_g("Username")."</strong> "; |
if($usr->permissions & SG_SUSPENDED) echo "<strike>"; |
if($usr->permissions & SG_ADMIN) echo "<u>"; |
echo $usr->username; |
if($usr->permissions & SG_ADMIN) echo "</u>"; |
if($usr->permissions & SG_SUSPENDED) echo "</strike>"; |
echo "</td>\n "; |
echo "<td><strong>".$sg->translator->_g("Email")."</strong> ".$usr->email."</td>\n "; |
echo "<td><strong>".$sg->translator->_g("Full name")."</strong> ".$usr->fullname."</td>\n "; |
echo '<td><a href="'.$sg->formatAdminURL("edituser", null, null, null, "&user=".$usr->username).'">'.$sg->translator->_g("edit")."</a></td>\n "; |
echo '<td><a href="'.$sg->formatAdminURL("deleteuser", null, null, null, "&user=".$usr->username).'">'.$sg->translator->_g("delete")."</a></td>\n "; |
echo '<td><a href="'.$sg->formatAdminURL("suspenduser", null, null, null, "&user=".$usr->username).'">'.($usr->permissions & SG_SUSPENDED ? $sg->translator->_g("unsuspend") : $sg->translator->_g("suspend"))."</a></td>\n"; |
echo "</tr>\n"; |
} |
?> |
</table> |
<h2><?php echo $sg->translator->_g("Create New User"); ?></h2> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"><p> |
<?php echo $sg->translator->_g("Username"); ?> |
<input type="hidden" name="action" value="newuser" /> |
<input type="input" name="user" /> |
<input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Create"); ?>" /> |
</p></form> |
/photogallery/templates/admin_default/menu.tpl.php |
---|
0,0 → 1,15 |
<p><?php echo $sg->translator->_g("Please choose an option:") ?></p> |
<ul> |
<li><a href="<?php echo $sg->formatAdminURL("view") ?>"><?php echo $sg->translator->_g("Manage galleries and images") ?></a></li> |
<li><a href="<?php echo $sg->formatAdminURL("showgalleryhits") ?>"><?php echo $sg->translator->_g("View gallery hits") ?></a></li> |
<?php if(!$sg->user->isGuest()): ?> |
<li><a href="<?php echo $sg->formatAdminURL("editpass") ?>"><?php echo $sg->translator->_g("Change password") ?></a></li> |
<li><a href="<?php echo $sg->formatAdminURL("editprofile") ?>"><?php echo $sg->translator->_g("My profile") ?></a></li> |
<?php endif; ?> |
<?php if($sg->user->isAdmin()): ?> |
<li><a href="<?php echo $sg->formatAdminURL("manageusers") ?>"><?php echo $sg->translator->_g("Manage users") ?></a></li> |
<?php /*<li><a href="<?php echo $sg->formatAdminURL("purgecache") ?>"><?php echo $sg->translator->_g("Purge cached thumbnails") ?></a></li>*/ ?> |
<?php endif; ?> |
<li><a href="<?php echo $sg->formatAdminURL("logout") ?>"><?php echo $sg->translator->_g("Log out of admin") ?></a></li> |
</ul> |
/photogallery/templates/admin_default/multimove.tpl.php |
---|
0,0 → 1,29 |
<h1><?php echo $sg->translator->_g("Move or Copy Items") ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="multimove" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<?php |
if(isset($_REQUEST["sgGalleries"])) |
foreach($_REQUEST["sgGalleries"] as $name => $value) |
echo "<input type=\"hidden\" name=\"sgGalleries[$name]\" value=\"$value\" />\n"; |
elseif(isset($_REQUEST["sgImages"])) |
foreach($_REQUEST["sgImages"] as $name => $value) |
echo "<input type=\"hidden\" name=\"sgImages[$name]\" value=\"$value\" />\n"; |
?> |
<p>Select the gallery to which you wish to move or copy the selected items.</p> |
<p><select name="sgMoveTarget"> |
<?php |
foreach($sg->allGalleriesArray() as $gal) |
//if(strpos($gal->id, $sg->gallery->id) !== 0) |
echo '<option value="'.$gal->idEntities().'">'.$gal->idEntities()." (".$gal->name().")</option>\n"; |
?> |
</select></p> |
<p> |
<label><input type="radio" name="sgMoveType" value="copy" checked="true" /> <?php /*"*/ echo $sg->translator->_g("Copy") ?></label> |
<label><input type="radio" name="sgMoveType" value="move" /> <?php /*"*/ echo $sg->translator->_g("Move") ?></label> |
</p> |
<p><input type="submit" class="button" name="confirmed" value="<?php /*"*/ echo $sg->translator->_g("confirm|OK") ?>"> |
<input type="submit" class="button" name="confirmed" value="<?php /*"*/ echo $sg->translator->_g("confirm|Cancel") ?>"></p> |
</form> |
/photogallery/templates/admin_default/newgallery.tpl.php |
---|
0,0 → 1,18 |
<h1><?php echo $sg->translator->_g("New Gallery") ?></h1> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"> |
<input type="hidden" name="action" value="addgallery" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<table class="formTable"> |
<tr> |
<td><?php echo $sg->translator->_g("Identifier") ?></td> |
<td><input type="text" name="newgallery" value="" size="40" /></td> |
</tr> |
<tr> |
<td></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Create") ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/newimage.tpl.php |
---|
0,0 → 1,52 |
<h1><?php echo $sg->translator->_g("New Image") ?></h1> |
<?php if($sg->gallery->hasChildGalleries()) echo "<p>".$sg->translator->_g("This image will not be visible because this gallery is not an album: it contains child galleries.")."</p>"; ?> |
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data" method="post"> |
<input type="hidden" name="action" value="addimage" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities() ?>" /> |
<table class="formTable"> |
<tr> |
<td><input type="radio" class="radio" id="sgLocationChoiceSingle" name="sgLocationChoice" value="single" checked="true" /></td> |
<td colspan="2"><label for="sgLocationChoiceSingle"><?php echo $sg->translator->_g("Upload single file") ?></label></td> |
<tr> |
<tr> |
<td></td> |
<td><?php echo $sg->translator->_g("Image file to upload:") ?></td> |
<td><input type="file" name="sgImageFile" value="" size="40" /></td> |
</tr> |
<tr> |
<td></td> |
<td><?php echo $sg->translator->_g("Identifier:") ?></td> |
<td> |
<label for="sgNameChoiceSame"><input type="radio" class="radio" id="sgNameChoiceSame" name="sgNameChoice" value="same" checked="true" /> <?php echo $sg->translator->_g("Use filename of uploaded file.") ?></label><br /> |
<label for="sgNameChoiceNew"><input type="radio" class="radio" id="sgNameChoiceNew" name="sgNameChoice" value="new" /> <?php echo $sg->translator->_g("Specify different filename:") ?></label><br /> |
<input type="text" name="sgFileName" value="" size="40" /></td> |
</tr> |
<tr> |
<td><input type="radio" class="radio" id="sgLocationChoiceMulti" name="sgLocationChoice" value="multi" /></td> |
<td colspan="2"><label for="sgLocationChoiceMulti"><?php echo $sg->translator->_g("Upload multiple files") ?></label></td> |
<tr> |
<tr> |
<td></td> |
<td><?php echo $sg->translator->_g("ZIP file to upload:") ?></td> |
<td><input type="file" name="sgArchiveFile" value="" size="40" /></td> |
</tr> |
<tr> |
<td><input type="radio" class="radio" id="sgLocationChoiceRemote" name="sgLocationChoice" value="remote"></td> |
<td colspan="2"><label for="sgLocationChoiceRemote"><?php echo $sg->translator->_g("Add remote file") ?></label></td> |
<tr> |
<tr> |
<td></td> |
<td><?php echo $sg->translator->_g("URL of image:") ?></td> |
<td><input type="text" name="sgImageURL" value="http://" size="40" /></td> |
</tr> |
<tr> |
<td colspan="2"></td> |
<td><input type="submit" class="button" value="<?php /*"*/ echo $sg->translator->_g("Create"); ?>" /></td> |
</tr> |
</table> |
</form> |
/photogallery/templates/admin_default/view.tpl.php |
---|
0,0 → 1,9 |
<?php |
if($sg->isImagePage()) { |
include $sg->config->base_path.$sg->config->pathto_admin_template."viewimage.tpl.php"; |
} elseif($sg->isAlbumPage()) { |
include $sg->config->base_path.$sg->config->pathto_admin_template."viewalbum.tpl.php"; |
} else { |
include $sg->config->base_path.$sg->config->pathto_admin_template."viewgallery.tpl.php"; |
} |
?> |
/photogallery/templates/admin_default/viewalbum.tpl.php |
---|
0,0 → 1,37 |
<p class="sgNavBar sgTopNavBar"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink()." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink(); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink(); ?> |
</p> |
<h2 class="sgTitle"><?php echo $sg->gallery->name(); ?></h2> |
<div class="sgContainer"> |
<div class="sgTab"><?php echo $sg->galleryTab()?></div> |
<div class="sgContent"> |
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> |
<input type="hidden" name="action" value="multi" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEntities(); ?>" /> |
<div class="sgGallery"> |
<?php echo $sg->translator->_g("With selected:"); ?> |
<?php /* <input type="submit" class="button" name="subaction" value="<?php echo $sg->translator->_g("Copy or move"); ?>" /> */ ?> |
<input type="submit" class="button" name="subaction" value="<?php echo $sg->translator->_g("Delete"); ?>" /> |
</div> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->imageCountSelected()+$sg->gallery->startat; $index++): ?> |
<div class="sgThumbnail"> |
<input type="checkbox" class="sgImageCheckbox checkbox" name="sgImages[]" value="<?php echo $sg->gallery->images[$index]->idEntities(); ?>" /> |
<table><tr><td> |
<?php echo $sg->gallery->images[$index]->thumbnailLink() ?> |
</td></tr></table> |
</div> |
<?php endfor; ?> |
<div class="stretcher"></div> |
</div> |
</form> |
</div> |
<p> |
<?php foreach($sg->gallery->detailsArray() as $key => $value): ?> |
<strong><?php echo $key ?>:</strong> <?php echo $value ?><br /> |
<?php endforeach; ?> |
</p> |
/photogallery/templates/admin_default/viewgallery.tpl.php |
---|
0,0 → 1,51 |
<p class="sgNavBar sgTopNavBar"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink()." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink(); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink(); ?> |
</p> |
<h2 class="sgTitle"><?php echo $sg->gallery->name(); ?></h2> |
<div class="sgContainer"> |
<div class="sgTab"><?php echo $sg->galleryTab()?></div> |
<div class="sgContent"> |
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> |
<input type="hidden" name="action" value="multi" /> |
<input type="hidden" name="gallery" value="<?php echo $sg->gallery->idEncoded(); ?>" /> |
<div class="sgGallery"> |
<?php echo $sg->translator->_g("With selected:"); ?> |
<input type="submit" class="button" name="subaction" value="<?php echo $sg->translator->_g("Copy or move"); ?>" /> |
<input type="submit" class="button" name="subaction" value="<?php echo $sg->translator->_g("Delete"); ?>" /> |
<input type="submit" class="button" name="subaction" value="<?php echo $sg->translator->_g("Re-index"); ?>" /> |
</div> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->galleryCountSelected()+$sg->gallery->startat; $index++): ?> |
<div class="sgGallery"><table> |
<tr valign="top"> |
<td><input type="checkbox" class="checkbox" name="sgGalleries[]" value="<?php echo $sg->gallery->galleries[$index]->idEntities(); ?>" /></td> |
<td class="sgGalleryThumbnail"><?php echo $sg->gallery->galleries[$index]->thumbnailHTML() ?></td> |
<td> |
<?php echo $sg->gallery->galleries[$index]->name() ?> - <?php echo $sg->gallery->galleries[$index]->itemCountText() ?><br /> |
<?php |
echo '<a href="'.$sg->formatAdminURL("view",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|View gallery")."</a> |\n"; |
echo '<a href="'.$sg->formatAdminURL("editgallery",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|Edit gallery")."</a> |\n"; |
echo '<a href="'.$sg->formatAdminURL("editpermissions",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|Access control")."</a> |\n"; |
echo '<a href="'.$sg->formatAdminURL("deletegallery",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|Delete gallery")."</a> |\n"; |
echo '<a href="'.$sg->formatAdminURL("newgallery",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|New subgallery")."</a> |\n"; |
echo '<a href="'.$sg->formatAdminURL("reindex",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|Re-index gallery")."</a> |\n"; |
//echo '<a href="'.$sg->formatAdminURL("newimage",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|New image")."</a> |\n"; |
echo '<a href="'.$sg->formatAdminURL("changethumbnail",$sg->gallery->galleries[$index]->idEncoded()).'">'.$sg->translator->_g("admin bar|Change thumbnail")."</a>\n"; |
?> |
</td> |
</tr> |
</table></div> |
<?php endfor; ?> |
</form> |
</div> |
</div> |
<p> |
<?php foreach($sg->gallery->detailsArray() as $key => $value): ?> |
<strong><?php echo $key ?>:</strong> <?php echo $value ?><br /> |
<?php endforeach; ?> |
</p> |
/photogallery/templates/admin_default/viewimage.tpl.php |
---|
0,0 → 1,30 |
<p class="sgNavBar sgTopNavBar"> |
<?php echo $sg->previewThumbnails();?> |
<br /> |
<?php if($sg->image->hasPrev()) echo $sg->image->prevLink()." | "; ?> |
<?php echo $sg->image->parentLink(); ?> |
<?php if($sg->image->hasNext()) echo " | ".$sg->image->nextLink(); ?> |
</p> |
<h2 class="sgTitle"><?php echo $sg->image->name(); ?></h2> |
<div class="sgContainer"> |
<table class="sgContent"><tr><td><div class="sgContent"> |
<?php echo $sg->image->imageHTML() ?> |
</div></td></tr></table> |
</div> |
<div class="sgNavBar sgTopNavBar"><p> |
<?php if($sg->image->hasPrev()) echo $sg->image->prevLink()." | "; ?> |
<?php echo $sg->image->parentLink(); ?> |
<?php if($sg->image->hasNext()) echo " | ".$sg->image->nextLink(); ?> |
</p></div> |
<p><em><?php echo $sg->image->name() ?></em><?php echo $sg->image->byArtistText() ?></p> |
<p> |
<?php foreach($sg->image->detailsArray() as $key => $value): ?> |
<strong><?php echo $key ?>:</strong> <?php echo $value ?><br /> |
<?php endforeach; ?> |
</p> |
<?php echo $sg->imageMap() ?> |
/photogallery/templates/default/album.tpl.php |
---|
0,0 → 1,60 |
<p class="sgNavBar sgTopNavBar"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink()." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink(); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink(); ?> |
</p> |
<h2 class="sgTitle"><?php echo $sg->gallery->name(); ?></h2> |
<h4 class="sgSubTitle"><?php echo $sg->gallery->byArtistText(); ?></h4> |
<div class="sgShadow"><table class="sgShadow" cellspacing="0"> |
<tr> |
<td class="tabl"></td> |
<td class="tabm"> |
<div><?php echo $sg->galleryTab(); ?></div> |
</td> |
<td class="tabr"></td> |
</tr> |
<tr> |
<td class="tl"></td> |
<td class="tm"></td> |
<td class="tr"></td> |
</tr> |
<tr> |
<td class="ml"></td> |
<td class="mm"> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->imageCountSelected()+$sg->gallery->startat; $index++): ?> |
<div class="sgThumbnail"> |
<div class="sgThumbnailContent"> |
<img class="borderTL" src="<?php echo $sg->config->base_url.$sg->config->pathto_current_template ?>images/slide-tl.gif" alt="" /> |
<img class="borderTR" src="<?php echo $sg->config->base_url.$sg->config->pathto_current_template ?>images/slide-tr.gif" alt="" /> |
<table><tr><td> |
<?php echo $sg->gallery->images[$index]->thumbnailLink(); ?> |
</td></tr></table> |
<div class="roundedCornerSpacer"> </div> |
</div> |
<div class="bottomCorners"> |
<img class="borderBL" src="<?php echo $sg->config->base_url.$sg->config->pathto_current_template ?>images/slide-bl.gif" alt="" /> |
<img class="borderBR" src="<?php echo $sg->config->base_url.$sg->config->pathto_current_template ?>images/slide-br.gif" alt="" /> |
</div> |
</div> |
<?php endfor; ?> |
</td> |
<td class="mr"></td> |
</tr> |
<tr> |
<td class="bl"></td> |
<td class="bm"></td> |
<td class="br"></td> |
</tr> |
</table></div> |
<p class="sgDetailsList"> |
<?php foreach($sg->gallery->detailsArray() as $key => $value): ?> |
<strong><?php echo $key; ?>:</strong> <?php echo $value; ?><br /> |
<?php endforeach; ?> |
</p> |
/photogallery/templates/default/footer.tpl.php |
---|
0,0 → 1,12 |
<div id="footer"><p> |
<?php echo $sg->allRightsReserved(); ?> |
<?php echo $sg->licenseText(); ?> |
<br /> |
<?php echo $sg->poweredByText(); ?> |
<?php echo $sg->scriptExecTimeText(); ?> | |
<?php echo $sg->adminLink(); ?> |
</p></div> |
</body> |
</html> |
/photogallery/templates/default/gallery.tpl.php |
---|
0,0 → 1,56 |
<p class="sgNavBar sgTopNavBar"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink()." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink(); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink(); ?> |
</p> |
<h2 class="sgTitle"><?php echo $sg->gallery->name(); ?></h2> |
<h4 class="sgSubTitle"><?php echo $sg->gallery->byArtistText(); ?></h4> |
<div class="sgShadow"><table class="sgShadow" cellspacing="0"> |
<tr> |
<td class="tabl"></td> |
<td class="tabm"> |
<div><?php echo $sg->galleryTab(); ?></div> |
</td> |
<td class="tabr"></td> |
</tr> |
<tr> |
<td class="tl"></td> |
<td class="tm"></td> |
<td class="tr"></td> |
</tr> |
<tr> |
<td class="ml"></td> |
<td class="mm"> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->galleryCountSelected()+$sg->gallery->startat; $index++): ?> |
<div class="sgGallery"><table class="sgGallery"><tr valign="top"> |
<td class="sgGalleryThumb"> |
<?php echo $sg->gallery->galleries[$index]->thumbnailLink(); ?> |
</td> |
<td> |
<p><strong><?php echo $sg->gallery->galleries[$index]->nameLink(); ?></strong></p> |
<p><?php echo $sg->gallery->galleries[$index]->summary(); ?></p> |
<p>[<?php echo $sg->gallery->galleries[$index]->itemCountText(); ?>]</p> |
</td> |
</tr></table></div> |
<?php endfor; ?> |
</td> |
<td class="mr"></td> |
</tr> |
<tr> |
<td class="bl"></td> |
<td class="bm"></td> |
<td class="br"></td> |
</tr> |
</table></div> |
<p class="sgDetailsList"> |
<?php foreach($sg->gallery->detailsArray() as $key => $value): ?> |
<strong><?php echo $key; ?>:</strong> <?php echo $value; ?><br /> |
<?php endforeach; ?> |
</p> |
/photogallery/templates/default/header.tpl.php |
---|
0,0 → 1,25 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title><?php echo $sg->pageTitle(); ?></title> |
<link rel="stylesheet" type="text/css" href="<?php echo $sg->config->base_url.$sg->config->pathto_current_template ?>main.css" /> |
<?php echo $sg->navigationLinks(); ?> |
<!-- |
This page was generated by singapore <http://singapore.sourceforge.net> |
singapore is free software licensed under the terms of the GNU GPL. |
--> |
</head> |
<body> |
<?php echo $sg->languageFlipper(); ?> |
<?php echo $sg->templateFlipper(); ?> |
<div id="crumb"><?php echo $sg->crumbLine(); ?></div> |
<div id="header"><img src="<?php echo $sg->config->base_url.$sg->config->pathto_current_template ?>images/header.gif" alt="<?php echo$sg->config->gallery_name ?>" /></div> |
<!-- start of generated content --> |
/photogallery/templates/default/image.tpl.php |
---|
0,0 → 1,45 |
<p class="sgNavBar sgTopNavBar"> |
<?php echo $sg->previewThumbnails(); ?> |
<br /> |
<?php if($sg->image->hasPrev()) echo $sg->image->prevLink()." | "; ?> |
<?php echo $sg->image->parentLink(); ?> |
<?php if($sg->image->hasNext()) echo " | ".$sg->image->nextLink(); ?> |
</p> |
<h2 class="sgTitle"><?php echo $sg->image->name(); ?></h2> |
<h4 class="sgSubTitle"><?php echo $sg->image->byArtistText(); ?></h4> |
<div class="sgShadow"><table class="sgShadow" cellspacing="0"> |
<tr> |
<td class="tl"></td> |
<td class="tm"></td> |
<td class="tr"></td> |
</tr> |
<tr> |
<td class="ml"></td> |
<td class="mm"> |
<?php echo $sg->image->imageHTML() ?> |
</td> |
<td class="mr"></td> |
</tr> |
<tr> |
<td class="bl"></td> |
<td class="bm"></td> |
<td class="br"></td> |
</tr> |
</table></div> |
<p class="sgNavBar sgBottomNavBar"> |
<?php if($sg->image->hasPrev()) echo $sg->image->prevLink()." | "; ?> |
<?php echo $sg->image->parentLink(); ?> |
<?php if($sg->image->hasNext()) echo " | ".$sg->image->nextLink(); ?> |
</p> |
<h4 class="sgNameByArtist"><em><?php echo $sg->image->name() ?></em><?php echo $sg->image->byArtistText() ?></h4> |
<p class="sgDetailsList"> |
<?php foreach($sg->image->detailsArray() as $key => $value): ?> |
<strong><?php echo $key ?>:</strong> <?php echo $value ?><br /> |
<?php endforeach; ?> |
</p> |
<?php echo $sg->imageMap() ?> |
/photogallery/templates/default/images/blank.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/header.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-bl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-bm.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-br.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-ml.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-mr.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-tabl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-tabm.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-tabr.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-tl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-tm.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/shadow-tr.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/slide-bl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/slide-br.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/slide-tl.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/images/slide-tr.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/default/index.tpl.php |
---|
0,0 → 1,32 |
<?php |
/** |
* Default singapore template. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version 1.0 |
*/ |
//include header file |
include $sg->config->base_path.$sg->config->pathto_current_template."header.tpl.php"; |
switch($sg->action) { |
case "addcomment" : |
include $sg->config->base_path.$sg->config->pathto_current_template."addcomment.tpl.php"; |
default : |
if($sg->isImagePage()) { |
//this is an 'image' page so include the 'image' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."image.tpl.php"; |
} elseif($sg->isAlbumPage()) { |
//this is an 'album' page so include the 'album' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."album.tpl.php"; |
} else { |
//this is a 'gallery' page so include the 'gallery' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."gallery.tpl.php"; |
} |
} |
//include footer file |
include $sg->config->base_path.$sg->config->pathto_current_template."footer.tpl.php"; |
?> |
/photogallery/templates/default/main.css |
---|
0,0 → 1,232 |
/* * * * * * * * * * */ |
/* Generic elements */ |
/* * * * * * * * * * */ |
body { |
margin: 1em; |
font: small sans-serif; |
color: #000; |
background-color: #fff; |
} |
p, td, th, li, h4 { |
font: small sans-serif; |
} |
h1, h2, h3 { |
color: #f60; |
} |
h1 { |
font-size: large; |
} |
a:link, a:visited { |
color: #09f; |
text-decoration: underline; |
} |
a:hover { |
text-decoration: none; |
} |
input, textarea, select, .inputbox { |
border: 1px solid #f60; |
color: #000; |
background-color: #fff; |
} |
input.radio { |
border: none; |
background-color: #fff; |
} |
input.button { |
font-weight: bold; |
border: 1px outset #fff; |
color: #fff; |
background-color: #f60; |
} |
a img { |
border: 0; |
} |
/* * * * * * * * * * */ |
/* Elements with IDs */ |
/* * * * * * * * * * */ |
/* header: image and/or title */ |
#header { } |
/* crumb line: (You are here: ...) */ |
#crumb { } |
/* footer: copyright notices */ |
#footer { |
text-align: center; |
} |
/* * * * * * * * * */ |
/* Custom classes */ |
/* * * * * * * * * */ |
/* image or gallery name header */ |
.sgTitle { |
margin-bottom: 0; |
} |
/* image or gallery artist subheader */ |
.sgSubTitle { |
margin-top: 0; |
} |
/* image and artist name displayed beneath image */ |
p.sgNameByArtist { } |
/* image and gallery details such as date, location, camera model, hits etc. */ |
p.sgDetailsList { } |
/* language select box and template select box respectively */ |
div.sgLanguageFlipper, div.sgTemplateFlipper { |
float: right; |
clear: right; |
} |
div.sgClear { |
clear: both; |
} |
/* wraps the drop-shadow table to allow IE to center it */ |
div.sgShadow { |
text-align: center; |
padding: 1em; |
} |
/* the main content table that does the drop-shadow effect */ |
table.sgShadow { |
margin-left: auto; |
margin-right: auto; |
clear: both; |
} |
table.sgShadow { |
background-color: #f0f0f0; |
padding: 0; |
text-align: left; |
} |
table.sgShadow td { |
padding: 0; |
margin: 0; |
} |
/* div containing each gallery sub-gallery on a gallery page */ |
div.sgGallery { |
margin: 5px; |
padding: 5px; |
border: 1px solid #ccc; |
background-color: #fff; |
} |
/* the table cell containing the gallery thumbnail */ |
td.sgGalleryThumb { |
width: 100px; |
text-align: center; |
} |
/* the gallery thumbnail itself */ |
img.sgGalleryThumb { |
border: 1px solid #000; |
} |
/* the descriptive text (title, summary, contents) */ |
div.sgGallery p { |
margin-top: 0; |
margin-bottom: 2px; |
} |
/* full size image on an image page*/ |
img.sgImage { |
border: none; |
} |
/* the preview thumbnails and previous, thumbnails, next links */ |
p.sgTopNavBar, p.sgBottomNavBar { |
text-align: center; |
float: right; |
} |
/* wraps the thumbnail and rounded-corner code on an album page */ |
div.sgThumbnail { |
width: 124px; |
height: 124px; |
margin: 10px 5px; |
float: left; |
padding: 0px; |
text-align: center; |
} |
div.sgThumbnail table { |
width: 114px; |
height: 114px; |
margin: 0px; |
text-align: center; |
vertical-align: middle; |
} |
.sgThumbnailContent { |
background: #fff; |
margin: 0px; |
padding: 0px; |
border: 1px solid #ccc; |
} |
/* the following code does the rounded corners of the 35mm slide effect on |
the album pages. Taken from http://www.albin.net/CSS/roundedCorners/ */ |
.roundedCornerSpacer { |
margin: 0px; padding: 0px; border: 0px; |
clear: both; |
font-size: 1px; line-height: 1px; |
} |
.borderTL, .borderTR, .borderBL, .borderBR { |
width: 5px; height: 5px; |
padding: 0px; border: 0px; |
z-index: 99; |
} |
.borderTL, .borderBL { float: left; clear: both; } |
.borderTR, .borderBR { float: right; clear: right; } |
.borderTL { margin: -1px 0px 0px -1px; } |
.borderTR { margin: -1px -1px 0px 0px; } |
.borderBL { margin: -5px 0px 0px 0px; } |
.borderBR { margin: -5px 0px 0px 0px; } |
/* appropriate background images for drop-shadow effect */ |
table.sgShadow td.tabl { background-image: url('images/shadow-tabl.gif'); width: 16px; height: 16px; } |
table.sgShadow td.tabm { background-color: #fff; } |
table.sgShadow td.tabr { background-color: #fff; } |
table.sgShadow td.tl { background-image: url('images/shadow-tl.gif'); width: 32px; height: 16px; } |
table.sgShadow td.tm { background-image: url('images/shadow-tm.gif');} |
table.sgShadow td.tr { background-image: url('images/shadow-tr.gif');} |
table.sgShadow td.ml { background-image: url('images/shadow-ml.gif');} |
table.sgShadow td.mm { padding: 10px;} /* cell containing image */ |
table.sgShadow td.mr { background-image: url('images/shadow-mr.gif');} |
table.sgShadow td.bl { background-image: url('images/shadow-bl.gif');} |
table.sgShadow td.bm { background-image: url('images/shadow-bm.gif');} |
table.sgShadow td.br { background-image: url('images/shadow-br.gif'); width: 32px; height: 32px; } |
/* the bit with previous, next */ |
table.sgShadow td.tabm div { |
font-size: 13px; |
background: #f0f0f0 url('images/shadow-tabm.gif') top right; |
padding-right: 30px; |
float: left; |
} |
/photogallery/templates/default/template.ini |
---|
0,0 → 1,50 |
;Option descriptions have been grouped together here. |
;Do not uncomment the following lines, they are for illustration only. |
; |
;thumb_width_* |
; Width in pixels of thumbnails generated by the script. |
; This option is affected by the thumb_crop_* option (see below). |
; |
;thumb_height_* |
; Height in pixels of thumbnails generated by the script. |
; This option is affected by the thumb_crop_* option (see below). |
; |
;thumb_crop_* |
; By default, width and height are maximum dimensions and images will be |
; resized, maintaining the same aspect ratio, to fit within these limits. |
; Turn force_size on to make the script crop images to the specified size. |
; |
;*_gallery |
; These options affect gallery pages (those that contain sub-galleries). |
; |
;*_album |
; These options affect album pages (those that contain only images). |
; |
;*_preview |
; These options affect the preview thumbnails displayed on image pages. |
; |
;*_image |
; These options affect full size display images and are only used if |
; full_image_resize is on in singapore.ini |
thumb_width_gallery = 80 |
thumb_height_gallery = 80 |
thumb_crop_gallery = off |
thumb_number_gallery = 10 |
;Maximum number of galleries to show on one gallery page. |
thumb_width_album = 100 |
thumb_height_album = 100 |
thumb_crop_album = off |
thumb_number_album = 20 |
;Maximum number of image thumbnails to show on one album page. |
thumb_width_preview = 50 |
thumb_height_preview = 50 |
thumb_crop_preview = off |
thumb_number_preview = 5 |
;Maximum number of preview thumbnails to display (including |
;current image). An odd number is usually preferred. |
thumb_width_image = 700 |
thumb_height_image = 500 |
/photogallery/templates/index.php |
---|
0,0 → 1,0 |
<?php header("Location: ../") ?> |
/photogallery/templates/modern/admin.tpl.php |
---|
--- templates/modern/album.tpl.php (nonexistent) |
+++ templates/modern/album.tpl.php (revision 250) |
@@ -0,0 +1,29 @@ |
+ <h2><?php echo $sg->gallery->name(); ?></h2> |
+ <h4><?php echo $sg->gallery->byArtistText(); ?></h4> |
+</div> |
+ |
+<div id="sgMain-nav"> |
+</div> |
+ |
+<div id="sgContent"> |
+ <p class="sgTab"><?php echo $sg->galleryTab(); ?></p> |
+ |
+ <div class="sgAlbum"> |
+ <?php for($index = $sg->gallery->startat; $index < $sg->gallery->imageCountSelected()+$sg->gallery->startat; $index++): ?> |
+ <?php echo $sg->gallery->images[$index]->thumbnailLink(); ?> |
+ <?php endfor; ?> |
+ <div class="sgFoot"></div> |
+ </div> |
+ |
+ <p class="sgTab"><?php echo $sg->galleryTab(); ?></p> |
+ |
+ <div class="sgDetailsList"> |
+ <dl> |
+ <?php foreach($sg->gallery->detailsArray() as $key => $value): ?> |
+ <dt><?php echo $key; ?>:</dt><dd><?php echo $value; ?></dd> |
+ <?php endforeach; ?> |
+ </dl> |
+ </div> |
+ |
+</div> |
+ |
/photogallery/templates/modern/css/color_bob.css |
---|
0,0 → 1,173 |
/* |
Black on Black CSS for Modern - Singapore Template v1.3 (www.sgal.org) |
by Ross Howard (www.abitcloser.com) |
*/ |
/* Structure */ |
body { |
background-color: #111; |
} |
#sgContainer { |
border-right-color: #0A0A0A; |
border-left-color: #222; |
border-top-color: #222; |
border-bottom-color: #0A0A0A; |
background-color: #1A1A1A; |
} |
#sgHeader { |
border-right-color:#111; |
} |
#sgMain-nav { |
border-right-color: #111; |
color: #444; |
} |
#sgContent { |
border-right-color: #111; |
border-bottom-color: #111; |
border-top-color: #1A1A1A; |
} |
#sgUpdate { |
background-color: #222; |
border-bottom-color: #111; |
color: #666; |
} |
/* Page Elements */ |
.sgCrumb { |
color: #444; |
} |
.sgGallery { |
border-color: #1E1E1E; |
background-color: #111; |
} |
.sgAlbum { |
border-color:#1E1E1E; |
background-color: #111; |
} |
.sgImageBox { |
background-color: #111; |
border-color: #222; |
border-right-color: #111; |
border-bottom-color: #111; |
} |
img.sgImage { |
background: #111 url(../img/loader_b.gif) center bottom no-repeat; |
} |
/* Typography */ |
h2 { |
color: #DDD; |
} |
h4 { |
color: #666; |
} |
p { |
color: #666; |
} |
.sgGallery p.sgCount { |
color: #AAA; |
} |
.sgPreview p { |
color: #999; |
} |
#sgFooter p { |
color: #333; |
} |
a { |
color: #22628D; |
} |
#sgFooter a { |
color: #22628D; |
} |
/* Links and Thumbnails */ |
.sgAlbum a img { |
background-color: #181818; |
border-color: #222; |
} |
.sgGallery a img { |
background-color: #181818; |
border-color: #222; |
} |
a:hover img.sgThumbnailAlbum, a:hover img.sgThumbGallery { |
border-color: #333; |
} |
.sgPreview a img { |
border-color: #333; |
color: #CCC; |
} |
.sgPreview a:hover img, .sgPreview a:hover img.sgThumbnailPreviewCurrent{ |
border-color: #666; |
} |
/* Details */ |
dl { |
color: #999; |
} |
dt { |
color: #666; |
} |
/* Forms */ |
select{ |
color: #666; |
} |
/* In-Image Rollovers */ |
.sgImageBox a { |
background-color: #111; |
} |
.sgImageBox a.prev { |
border-right-color: #111; |
} |
.sgImageBox a.thumb { |
border-bottom-color: #111; |
} |
.sgImageBox a.next { |
border-left-color: #111; |
} |
.sgImageBox a.control { |
border-top-color: #111; |
} |
/* Slideshow */ |
body#slideshow { |
background-color: #000; |
} |
#slideshow div.sgImageBox { |
background-color: #000; |
} |
/photogallery/templates/modern/css/color_wob.css |
---|
0,0 → 1,173 |
/* |
White on Black CSS for Modern - Singapore Template v1.3 (www.sgal.org) |
by Ross Howard (www.abitcloser.com) |
*/ |
/* Structure */ |
body { |
background-color: #111; |
} |
#sgContainer { |
border-right-color: #0A0A0A; |
border-left-color: #222; |
border-top-color: #222; |
border-bottom-color: #0A0A0A; |
background-color: #FFF; |
} |
#sgHeader { |
border-right-color: #C3C3C3; |
} |
#sgMain-nav { |
border-right-color: #C3C3C3; |
color: #999; |
} |
#sgContent { |
border-right-color: #C3C3C3; |
border-bottom-color: #C3C3C3; |
border-top-color: #FFF; |
} |
#sgUpdate { |
background-color: #222; |
border-bottom-color: #111; |
color: #666; |
} |
/* Page Elements */ |
.sgCrumb { |
color: #999; |
} |
.sgGallery { |
border-color: #CCC; |
background-color: #EEE; |
} |
.sgAlbum { |
border-color: #CCC; |
background-color: #EEE; |
} |
.sgImageBox { |
background-color: #EEE; |
border-color: #DDD; |
border-right-color: #AAA; |
border-bottom-color: #AAA; |
} |
img.sgImage { |
background: #EEE url(../img/loader_w.gif) center bottom no-repeat; |
} |
/* Typography */ |
h2 { |
color: #555; |
} |
h4 { |
color: #666; |
} |
p { |
color: #666; |
} |
.sgGallery p.sgCount { |
color: #AAA; |
} |
.sgPreview p { |
color: #999; |
} |
#sgFooter p { |
color: #333; |
} |
a { |
color: #29A9FF; |
} |
#sgFooter a { |
color: #22628D; |
} |
/* Links and Thumbnails */ |
.sgAlbum a img { |
background-color: #FFF; |
border-color: #DDD; |
} |
.sgGallery a img { |
background-color: #FFF; |
border-color: #DDD; |
} |
a:hover img.sgThumbnailAlbum, a:hover img.sgThumbGallery { |
border-color: #BBB; |
} |
.sgPreview a img { |
border-color: #CCC; |
color: #CCC; |
} |
.sgPreview a:hover img, .sgPreview a:hover img.sgThumbnailPreviewCurrent{ |
border-color: #29A9FF; |
} |
/* Details */ |
dl { |
color: #999; |
} |
dt { |
color: #666; |
} |
/* Forms */ |
select{ |
color: #666; |
} |
/* In-Image Rollovers */ |
.sgImageBox a { |
background-color: #222; |
} |
.sgImageBox a.prev { |
border-right-color: #111; |
} |
.sgImageBox a.thumb { |
border-bottom-color: #111; |
} |
.sgImageBox a.next { |
border-left-color: #111; |
} |
.sgImageBox a.control { |
border-top-color: #111; |
} |
/* Slideshow */ |
body#slideshow { |
background-color: #000; |
} |
#slideshow div.sgImageBox { |
background-color: #000; |
} |
/photogallery/templates/modern/css/color_wow.css |
---|
0,0 → 1,173 |
/* |
White on White CSS for Modern - Singapore Template v1.3 (www.sgal.org) |
by Ross Howard (www.abitcloser.com) |
*/ |
/* Structure */ |
body { |
background-color: #E5E5E5; |
} |
#sgContainer { |
border-right-color: #DEDEDE; |
border-left-color: #DEDEDE; |
border-top-color: #DEDEDE; |
border-bottom-color: #DEDEDE; |
background-color: #FFF; |
} |
#sgHeader { |
border-right-color: #C3C3C3; |
} |
#sgMain-nav { |
border-right-color: #C3C3C3; |
color: #999; |
} |
#sgContent { |
border-right-color: #C3C3C3; |
border-bottom-color: #C3C3C3; |
border-top-color: #FFF; |
} |
#sgUpdate { |
background-color: #FFF; |
border-bottom-color: #DEDEDE; |
color: #666; |
} |
/* Page Elements */ |
.sgCrumb { |
color: #999; |
} |
.sgGallery { |
border-color: #CCC; |
background-color: #EEE; |
} |
.sgAlbum { |
border-color: #CCC; |
background-color: #EEE; |
} |
.sgImageBox { |
background-color: #EEE; |
border-color: #DDD; |
border-right-color: #AAA; |
border-bottom-color: #AAA; |
} |
img.sgImage { |
background: #EEE url(../img/loader_w.gif) center bottom no-repeat; |
} |
/* Typography */ |
h2 { |
color: #555; |
} |
h4 { |
color: #666; |
} |
p { |
color: #666; |
} |
.sgGallery p.sgCount { |
color: #AAA; |
} |
.sgPreview p { |
color: #999; |
} |
#sgFooter p { |
color: #AAA; |
} |
a { |
color: #29A9FF; |
} |
#sgFooter a { |
color: #29A9FF; |
} |
/* Links and Thumbnails */ |
.sgAlbum a img { |
background-color: #FFF; |
border-color: #DDD; |
} |
.sgGallery a img { |
background-color: #FFF; |
border-color: #DDD; |
} |
a:hover img.sgThumbnailAlbum, a:hover img.sgThumbGallery { |
border-color: #BBB; |
} |
.sgPreview a img { |
border-color: #CCC; |
color: #CCC; |
} |
.sgPreview a:hover img, .sgPreview a:hover img.sgThumbnailPreviewCurrent{ |
border-color: #29A9FF; |
} |
/* Details */ |
dl { |
color: #999; |
} |
dt { |
color: #666; |
} |
/* Forms */ |
select{ |
color: #666; |
} |
/* In-Image Rollovers */ |
.sgImageBox a { |
background-color: #222; |
} |
.sgImageBox a.prev { |
border-right-color: #111; |
} |
.sgImageBox a.thumb { |
border-bottom-color: #111; |
} |
.sgImageBox a.next { |
border-left-color: #111; |
} |
.sgImageBox a.control { |
border-top-color: #111; |
} |
/* Slideshow */ |
body#slideshow { |
background-color: #000; |
} |
#slideshow div.sgImageBox { |
background-color: #000; |
} |
/photogallery/templates/modern/css/ie.css |
---|
0,0 → 1,46 |
/* IE Hacks */ |
body { |
text-align: center; |
} |
.sgAlbum, #sgContent, h3, .sgGallery p { |
height: 1%; |
} |
#sgContent div.sgImageWrapper { |
text-align: center; |
} |
p.sgTab { |
position: relative; |
margin-top: 0px; |
} |
#sgContainer { |
text-align: left; |
} |
.sgAlbum a { |
display: inline; |
margin: 0 18px 20px 19px; |
} |
.sgPreview a:hover img, a:hover img.sgThumbnailAlbum, a:hover img.sgThumbGallery { |
filter: alpha(opacity=100); |
} |
img.sgThumbnailPreviewCurrent { |
filter: alpha(opacity=60); |
} |
.sgImageBox a { |
filter: alpha(opacity=0); |
} |
.sgImageBox a:hover { |
filter: alpha(opacity=90); |
} |
.sgGalleryFloat { |
display: inline; |
} |
/photogallery/templates/modern/css/layout.css |
---|
0,0 → 1,348 |
/* |
Layout CSS for Modern - Singapore Template v1.3 (www.sgal.org) |
by Ross Howard (www.abitcloser.com) |
*/ |
/* Structure */ |
/* For editing and customisation read these notes */ |
body { |
padding: 0; |
margin: 0; |
font-family: Arial, Helvetica, sans-serif; /* Set the font here to effect entire template */ |
} |
#sgContainer { |
width: 740px; /* This is the page width, if you want a full-screen/liquid layout use 'auto' */ |
border-right: 4px solid; /* If you use full-screen/liquid layout you probably want to set all borders to 'none' */ |
border-left: 1px solid; |
border-top: 1px solid; |
border-bottom: 4px solid; |
margin: 24px auto 0 auto; |
} |
#sgHeader { |
border-right: 1px solid; |
} |
#sgOptions { |
text-align: right; |
float: right; |
margin: 6px 0 0 0; |
} |
#sgMain-nav { |
border-right: 1px solid; |
padding-top: 12px; |
margin: 0 0 0 26px; |
font-size: 11px; |
} |
#sgContent { |
border-right: 1px solid; |
border-bottom: 1px solid; |
border-top: 1px solid; |
} |
#sgFooter { |
width: 760px; |
margin: 16px auto 0 auto; |
padding: 0 0 16px 0; |
text-align: center; |
} |
#sgUpdate { |
font-size: 11px; |
padding: 8px 0 8px 0; |
text-align: center; |
border-bottom: 1px solid; |
} |
/* Page Elements */ |
.sgCrumb { |
font-size: 11px; |
line-height: 16px; |
padding: 20px 0 16px 26px; |
} |
.sgGallery { |
border: 1px solid; |
margin: 18px 24px 24px 24px; |
padding: 12px 12px 10px 12px; |
} |
.sgGalleryFloat { |
margin: 18px 4px 12px 24px; |
float: left; |
width: 304px; |
} |
.sgAlbum { |
border: 1px solid; |
margin: 18px 24px 32px 24px; |
padding: 22px 0 0 0; |
clear: both; |
} |
.sgImageBox { |
margin: 24px auto 24px auto; |
position: relative; |
font-size: 11px; |
padding: 5px; |
border: 1px solid; |
border-right: 1px solid; |
border-bottom: 1px solid; |
} |
img.sgImage { |
display: block; |
} |
.sgPreview { |
text-align: center; |
margin: 28px 0 24px 0; |
} |
.sgFoot { |
clear: both; |
} |
/* Typography */ |
h2 { |
font-size: 32px; |
line-height: 32px; |
font-weight: normal; |
margin: 0 200px 0 24px; |
padding: 0; |
} |
h3 { |
font-size: 16px; |
line-height: 18px; |
font-weight: normal; |
margin: 0px 0 6px 130px; |
padding: 0; |
} |
h4 { |
font-size: 11px; |
line-height: 12px; |
font-weight: normal; |
margin: 0 0 0 26px; |
padding: 0; |
} |
p { |
font-size: 11px; |
line-height: 16px; |
margin: 6px 16px 4px 16px; |
} |
.sgGallery p { |
border: none; |
margin: 0 0 4px 130px; |
} |
#sgFooter p { |
text-align: center; |
} |
p.sgLinks { |
margin: 24px 0 -38px 24px; |
padding: 0 0 6px 0; |
} |
p.sgTab { |
line-height: 16px; |
text-align: right; |
margin: -16px 32px 0 24px; |
padding: 0 0 0 0; |
clear: both; |
} |
p.sgTab a{ |
margin-right: 0px; |
} |
p.sgFullsize { |
text-align: center; |
margin: 0; |
padding: 0; |
} |
a { |
text-decoration: none; |
} |
a:hover { |
text-decoration: underline; |
} |
/* Links and Thumbnails */ |
.sgAlbum a { |
width: 134px; /* This equals template.ini 'thumb_width_album' + padding and borders of inside img */ |
height: 134px; /* This equals template.ini 'thumb_height_album' + padding and borders of inside img */ |
float: left; |
text-align: center; |
margin: 0 19px 20px 19px; |
} |
.sgAlbum a img { |
padding: 16px; /* 16px x 2 = 32px */ |
border: 1px solid ; /* 1px x 2 = 2px = 34px */ |
} |
.sgGallery a img { |
padding: 16px; |
border: 1px solid; |
float: left; |
margin: 0 -150px 0 0; |
} |
a:hover img.sgThumbnailAlbum, a:hover img.sgThumbGallery { |
border: 1px solid; |
} |
.sgPreview a { |
border: none; |
} |
.sgPreview a img { |
border: 1px solid; |
margin: 0 4px 0 4px; |
padding: 2px; |
} |
img.sgThumbnailPreviewCurrent { |
opacity: .6; |
} |
.sgPreview a:hover img, .sgPreview a:hover img.sgThumbnailPreviewCurrent{ |
border: 1px solid; |
opacity: 1; |
} |
/* Details */ |
dl { |
font-size: 11px; |
line-height: 16px; |
margin: 12px 64px 24px 64px; |
padding: 0; |
text-align: center; |
} |
dt { |
display: inline; |
margin: 0 4px 0 0; |
padding: 0; |
} |
dd { |
display: inline; |
margin: 0; |
padding: 0; |
} |
/* Forms */ |
#sgOptions form{ |
border: none; |
margin: 0 0 0 12px; |
padding: 0 12px 0 0; |
font-size: 10px; |
display: inline; |
} |
input { |
font-size: 10px; |
margin: 12px 0 0 0; |
} |
select{ |
font-size: 10px; |
} |
/* Utility */ |
.clear { |
display: block; |
clear:both; |
float: none; |
} |
/* In-Image Rollovers */ |
.sgImageBox a { |
display: block; |
position: absolute; |
text-indent: -3000px; |
font-size: 15px; |
opacity: .0; |
width: 80px; |
text-align: center; |
} |
.sgImageBox a:hover { |
opacity: .9; |
text-indent: 0px; |
text-decoration: none; |
} |
.sgImageBox a span{ |
display: block; |
} |
.sgImageBox a.thumb span, .sgImageBox a.control span{ |
margin-top: 22px; |
} |
.sgImageBox a.prev { |
top: 5px; |
left: 5px; |
border-right: 1px solid; |
} |
.sgImageBox a.thumb { |
top: 5px; |
left: 5px; |
height: 60px; |
border-bottom: 1px solid; |
} |
.sgImageBox a.next { |
top: 5px; |
right: 5px; |
border-left: 1px solid; |
} |
.sgImageBox a.control { |
left: 5px; |
bottom: 4px; |
height: 60px; |
border-top: 1px solid; |
} |
/* Slideshow */ |
body#slideshow div.sgImageWrapper{ |
position: absolute; |
top: 50%; |
left: 0px; |
width: 100%; |
} |
#slideshow div.sgImageBox { |
margin: 0 auto 0 auto; |
font-size: 11px; |
padding: 5px; |
border: none; |
} |
body#slideshow div img{ |
margin: 0px auto 0px; |
} |
/photogallery/templates/modern/footer.tpl.php |
---|
0,0 → 1,17 |
<!-- start of footer.tpl.php --> |
</div> |
<div id="sgFooter"> |
<p> |
<?php echo $sg->allRightsReserved(); ?> |
<?php echo $sg->licenseText(); ?> |
<br /> |
<?php echo $sg->poweredByText(); ?> |
<?php echo $sg->scriptExecTimeText(); ?> | |
<?php echo $sg->adminLink(); ?> |
</p> |
</div> |
<?php |
if (!defined('EXTERNAL')) { |
echo '</body> |
</html>'; |
} |
/photogallery/templates/modern/gallery.tpl.php |
---|
0,0 → 1,41 |
<h2><?php echo $sg->gallery->name(); ?></h2> |
<h4><?php echo $sg->gallery->byArtistText(); ?></h4> |
</div> |
<div id="sgMain-nav"> |
<?php if($sg->gallery->hasPrev()) echo $sg->gallery->prevLink()." | "; ?> |
<?php if(!$sg->gallery->isRoot()) echo $sg->gallery->parentLink(); ?> |
<?php if($sg->gallery->hasNext()) echo " | ".$sg->gallery->nextLink(); ?> |
</div> |
<div id="sgContent"> |
<p class="sgTab"><?php echo $sg->galleryTab(); ?></p> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->galleryCountSelected()+$sg->gallery->startat; $index++): ?> |
<div class="sgGallery <?php if ($sg->config->thumb_float_gallery == 1) { echo 'sgGalleryFloat';} ?>"> |
<?php echo $sg->gallery->galleries[$index]->thumbnailLink(); ?> |
<h3 title="View Gallery"><?php echo $sg->gallery->galleries[$index]->nameLink(); ?></h3> |
<p><?php echo $sg->gallery->galleries[$index]->summary(); ?></p> |
<p class="sgCount"><?php echo $sg->gallery->galleries[$index]->itemCountText(); ?></p> |
<?php if ($sg->config->show_slideshowURL == 1) { ?> |
<?php if ($sg->gallery->galleries[$index]->hasImages() && !$sg->gallery->galleries[$index]->hasChildGalleries()) { ?> |
<p><a href="<?php echo $sg->gallery->galleries[$index]->images[0]->URL(); if (!strstr($sg->gallery->galleries[$index]->images[0]->URL(), '?')) { echo '?'; } else { echo '&'; } ?>action=slideshow">View Slideshow</a></p> |
<?php } ?> |
<?php } ?> |
<div class="sgFoot"></div> |
</div> |
<?php // The number below equals the number of boxes before a new line starts. 1 will never echo the clear |
if($index % 2) {echo '<div class="clear"></div>';} ?> |
<?php endfor; ?> |
<p class="sgTab"><?php echo $sg->galleryTab(); ?></p> |
<div class="sgDetailsList"> |
<dl> |
<?php foreach($sg->gallery->detailsArray() as $key => $value): ?> |
<dt><?php echo $key; ?>:</dt><dd><?php echo $value; ?></dd> |
<?php endforeach; ?> |
</dl> |
</div> |
</div> |
/photogallery/templates/modern/header.tpl.php |
---|
0,0 → 1,36 |
<?php |
if (!defined('EXTERNAL')) { |
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>'.$sg->config->gallery_name.' - '.$sg->pageTitle().'</title> |
<style type="text/css">@import url('.$sg->config->base_url.$sg->config->pathto_current_template.'css/layout.css);</style> |
<style type="text/css">@import url('.$sg->config->base_url.$sg->config->pathto_current_template.'css/color_'.$sg->config->template_scheme.'.css);</style> |
<!--[if IE]><link rel="stylesheet" type="text/css" media="all" href="'.$sg->config->base_url.$sg->config->pathto_current_template.'css/ie.css"><![endif]--> |
<link rel="alternate" type="application/rss+xml" title="'.$sg->pageTitle().'" href="'.$_SERVER["PHP_SELF"]; if (isset($_GET["gallery"])) { echo '?gallery='.$_GET["gallery"];} echo '&template=rss" /> |
'.$sg->navigationLinks().'</head> |
<body> |
'; |
} |
if (!isset($_GET["gallery"]) && $sg->config->update_check == 1 && $sg->isLoggedIn()) { |
$handle = fopen($sg->config->update_url."update.php", "r"); |
$buffer = fgets($handle); |
$thisBuffer = str_replace(' ', '', $buffer); |
if ($thisBuffer != $sg->config->current_version) { echo '<div id="sgUpdate">There is a new version of Modern ('.$thisBuffer.') - <a href="'.$sg->config->update_url.$thisBuffer.'.zip">Download</a> - <a href="http://www.abitcloser.com/projects/singapore/">Read More</a></div>'; }; |
fclose($handle); |
} |
?> |
<!-- |
This page was generated by singapore <http://singapore.sourceforge.net> |
singapore is free software licensed under the terms of the GNU GPL. |
Modern Template <? echo $sg->config->current_version ?> by Ross Howard |
http://www.abitcloser.com/projects/singapore |
--> |
<div id="sgContainer"> |
<div id="sgHeader"> |
<div id="sgOptions"><?php echo $sg->languageFlipper(); ?><?php echo $sg->templateFlipper(); ?></div> |
<div class="sgCrumb"><?php echo $sg->crumbLine(); ?></div> |
<!-- end of header.tpl.php --> |
/photogallery/templates/modern/image.tpl.php |
---|
0,0 → 1,36 |
<h2><?php echo $sg->image->name(); ?></h2> |
<h4><?php echo $sg->image->byArtistText(); ?></h4> |
</div> |
<div id="sgContent"> |
<div class="sgImageWrapper"> |
<div class="sgImageBox" style="width: <?php echo $sg->image->width(); ?>px; "> |
<?php echo $sg->image->imageHTML() ?> |
<a class="thumb" style="width: <?php echo $sg->image->width().'px;" href="'.$sg->image->parent->URL().'"><span>'.$sg->translator->_g("image|Thumbnails").'</span></a>'; ?> |
<?php if($sg->image->hasPrev()) {echo '<a class="prev" style="height:'.$sg->image->height().'px;" href="'.$sg->image->prevURL().'"><span style="margin-top:'.floor(($sg->image->height())/2).'px;">'.$sg->translator->_g("image|Previous").'</span></a>'; } ?> |
<?php if($sg->image->hasNext()) {echo '<a class="next" style="height:'.$sg->image->height().'px;" href="'.$sg->image->nextURL().'"><span style="margin-top:'.floor(($sg->image->height())/2).'px;">'.$sg->translator->_g("image|Next").'</span></a>'; } ?> |
</div> |
</div> |
<?php if ($sg->config->show_fullsizeURL == 1) { ?> |
<p class="sgFullsize"><a href="<?php echo $sg->image->realURL(); ?>"><?php echo $sg->translator->_g("image|View Full Size Image"); ?></a> <a href="<?php echo $sg->image->realURL(); ?>" target="_new">[+]</a></p> |
<?php } ?> |
<div class="sgDetailsList"> |
<dl> |
<?php foreach($sg->image->detailsArray() as $key => $value): ?> |
<dt><?php echo $key; ?>:</dt><dd><?php echo $value; ?></dd> |
<?php endforeach; ?> |
</dl> |
</div> |
<div class="sgPreview"> |
<?php echo $sg->previewThumbnails(); ?> |
<p> |
<?php if($sg->image->hasPrev()) echo "‹ ".$sg->image->prevLink()." "; ?> |
<?php echo $sg->image->parentLink(); ?> |
<?php if($sg->image->hasNext()) echo " ".$sg->image->nextLink()." ›"; ?> |
</p> |
</div> |
</div> |
<?php echo $sg->imageMap() ?> |
/photogallery/templates/modern/img/loader_b.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/modern/img/loader_w.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/photogallery/templates/modern/index.tpl.php |
---|
0,0 → 1,49 |
<?php |
/** |
* Modern Template by Ross Howard |
* http://www.abitcloser.com/projects/singapore |
*/ |
//debugging code |
//error_reporting(E_ALL); |
// set embed to false |
$embed = false; |
//load user details (must be done after session_start) |
$sg->loadUser(); |
//if slideshow then set external |
if($sg->action == 'slideshow') {$embed = true;} |
//include header file |
if ($embed == false) { |
include $sg->config->base_path.$sg->config->pathto_current_template."header.tpl.php"; |
} |
//watch actions and pagetypes |
switch($sg->action) { |
case "addcomment" : |
include $sg->config->base_path.$sg->config->pathto_current_template."addcomment.tpl.php"; |
default : |
if($sg->action == 'slideshow') { |
//this is an 'slideshow' page so include the 'slideshow' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."slideshow.tpl.php"; |
} elseif($sg->isImagePage()) { |
//this is an 'image' page so include the 'image' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."image.tpl.php"; |
} elseif($sg->isAlbumPage()) { |
//this is an 'album' page so include the 'album' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."album.tpl.php"; |
} else { |
//this is a 'gallery' page so include the 'gallery' template file |
include $sg->config->base_path.$sg->config->pathto_current_template."gallery.tpl.php"; |
} |
} |
//include footer file |
if ($embed == false) { |
include $sg->config->base_path.$sg->config->pathto_current_template."footer.tpl.php"; |
} |
?> |
/photogallery/templates/modern/readme.txt |
---|
0,0 → 1,60 |
Modern - singapore template v1.3.2 |
by Ross Howard (www.abitcloser.com/projects/singapore) |
Modern is a lightweight xHTML/CSS template for singapore. |
It includes gallery, album and image pages, and also has |
a built-in slideshow, and full-size image pop-up ability. |
It uses common naming conventions (albeit with an sg prefix) |
and a clean div structure to allow you to easily and simply customise |
it to suit your needs. |
It supports both fixed-width, and scaling page sizes, and is intended to |
be web standard compliant and render correctly on a wide range of browsers. |
These include Mozilla/Firefox 1.5, Safari, Opera and IE6. |
Modern comes standard with a default 'black on black' colour scheme, but also |
includes CSS files for 'white on black' and 'white on white'. |
By default, Modern uses the 'Arial, Helvetica, sans-serif;' font family, as |
declared for the body CSS. Simply changing this one line will effect the |
entire template. |
If you make any changes to template.ini please make sure to check the CSS file |
too, in case you need to adjust page or thumbnail block widths. |
TODO - Future Versions |
Add Javascript UI library |
Add AJAX Slideshow |
CHANGELOG |
1.3.2 - NEW RSS included as <link> in each page - Uses RSS template |
1.3.2 - NEW Update check system checks for new version of Modern when logged in and viewing root public page |
1.3.2 - NEW versioning number system |
1.3 - FIX stop slideshow link for galleries with child galleries |
1.3 - FIX template.ini thumb_force_size renamed to thumb_crop_ |
1.3 - FIX CSS image urls |
1.3 - FIX Slideshow rollovers wrong size with resized images |
1.3 - FIX slideshow links for galleries with no images |
1.3 - Rewrote CSS to separate structure from colour |
1.2 - Added 'Loading' GIF |
1.2 - Added Play/Pause for Slideshow |
1.2 - All text now utilised translator |
1.2 - Added ability to use old image map in image page (not in slideshow) but have set it as off in template.ini which overwrites singapore.ini |
1.2 - Rewrite URL coding to work without mod_rewrite and handles variable stack detection in URL |
1.2 - Set colour scheme to 'black on black' by default, can be set via template.ini |
1.2 - Added ability to float galleries next to each other via template.ini |
1.2 - Added simple HTML slideshow that can be enabled via template.ini |
1.2 - Added link to full size image when current image is resized, can enabled via template.ini |
1.2 - Added rollover behaviour for image navigation which replaces imagemap |
1.1 - Added support for external.php and prefixed selectors with sg |
1.0 - Added IE conditional comments |
0.9 - Original working build |
/photogallery/templates/modern/slideshow.tpl.php |
---|
0,0 → 1,34 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title><?php echo $sg->translator->_g("image|Slideshow").' - '.$sg->pageTitle(); ?></title> |
<style type="text/css">@import url("<?php echo $sg->config->base_url.$sg->config->pathto_current_template.'css/layout.css");</style>'; ?> |
<style type="text/css">@import url("<?php echo $sg->config->base_url.$sg->config->pathto_current_template.'css/color_'.$sg->config->template_scheme.'.css");</style>'; ?> |
<!--[if IE]><link rel="stylesheet" type="text/css" media="all" href="<?php echo $sg->config->base_url.$sg->config->pathto_current_template; ?>css/ie.css"><![endif]--> |
<?php if($sg->image->hasNext() && !isset($control)) { |
echo '<meta http-equiv="refresh" content="5;url='.$sg->image->nextURL('slideshow').'" />'; |
} ?> |
</head> |
<body id="slideshow"> |
<!-- |
This page was generated by singapore <http://singapore.sourceforge.net> |
singapore is free software licensed under the terms of the GNU GPL. |
--> |
<div class="sgImageWrapper"> |
<div class="sgImageBox" style="width: <?php echo $sg->image->width(); ?>px; margin-top:-<?php echo floor($sg->image->height()/2); ?>px;" title="<?php foreach($sg->image->detailsArray() as $key => $value): ?><?php echo $key; ?>: <?php echo $value; ?><?php endforeach; ?>"> |
<?php echo $sg->image->imageHTML() ?> |
<a class="thumb" style="width: <?php echo $sg->image->width(); ?>px;" href="<?php echo $sg->image->parent->URL().'"><span>'.$sg->translator->_g("image|Thumbnails").'</span></a>'; ?> |
<?php if($sg->image->hasPrev()) {echo '<a class="prev" style="height:'.$sg->image->height().'px;" href="'.$sg->image->prevURL(); if (!strstr($sg->image->prevURL(), '?')) { echo '?'; } else { echo '&'; } echo 'action=slideshow"><span style="margin-top:'.floor(($sg->image->height())/2).'px;">'.$sg->translator->_g("image|Previous").'</span></a>';}?> |
<?php if($sg->image->hasNext()) {echo '<a class="next" style="height:'.$sg->image->height().'px;" href="'.$sg->image->nextURL(); if (!strstr($sg->image->nextURL(), '?')) { echo '?'; } else { echo '&'; } echo 'action=slideshow"><span style="margin-top:'.floor(($sg->image->height())/2).'px;">'.$sg->translator->_g("image|Next").'</span></a>';}?> |
<?php if (!isset($control)) { |
echo '<a class="control" style="width:'.$sg->image->width().'px;" href="'.$sg->image->URL(); if (!strstr($sg->image->URL(), '?')) { echo '?'; } else { echo '&'; } echo 'action=slideshow&control=pause"><span>'.$sg->translator->_g("image|Pause").'</span></a>'; |
} |
else { |
echo '<a class="control" style="width:'.$sg->image->width().'px;" href="'.$sg->image->URL(); if (!strstr($sg->image->URL(), '?')) { echo '?'; } else { echo '&'; } echo 'action=slideshow"><span>'.$sg->translator->_g("image|Play").'</span></a>'; |
} |
?> |
</div> |
</div> |
</body> |
</html> |
/photogallery/templates/modern/template.ini |
---|
0,0 → 1,69 |
;Option descriptions have been grouped together here. |
;Do not uncomment the following lines, they are for illustration only. |
; |
;thumb_width_* |
; Width in pixels of thumbnails generated by the script. |
; This option is affected by the thumb_force_size_* option (see below). |
; |
;thumb_height_* |
; Height in pixels of thumbnails generated by the script. |
; This option is affected by the thumb_force_size_* option (see below). |
; |
;thumb_force_size_* |
; By default, width and height are maximum dimensions and images will be |
; resized, maintaining the same aspect ratio, to fit within these limits. |
; Turn force_size on to make the script crop images to the specified size. |
; |
;*_gallery |
; These options affect gallery pages (those that contain sub-galleries). |
; |
;*_album |
; These options affect album pages (those that contain only images). |
; |
;*_preview |
; These options affect the preview thumbnails displayed on image pages. |
; |
;*_image |
; These options affect full size display images and are only used if |
; full_image_resize is on in singapore.ini |
template_scheme = bob |
;bob - black on black, wob - white on black, wow - white on white |
imagemap_navigation = off |
; typically set in singapore.ini but set here to stop cursor behaviour |
thumb_width_gallery = 80 |
thumb_height_gallery = 80 |
thumb_force_size_gallery = off |
thumb_number_gallery = 10 |
;Maximum number of galleries to show on one gallery page. |
thumb_float_gallery = on |
;Float gallery blocks side-by-side |
thumb_width_album = 100 |
thumb_height_album = 100 |
thumb_force_size_album = off |
thumb_number_album = 20 |
;Maximum number of image thumbnails to show on one album page. |
thumb_width_preview = 50 |
thumb_height_preview = 50 |
thumb_force_size_preview = off |
thumb_number_preview = 3 |
;Maximum number of preview thumbnails to display (including |
;current image). An odd number is usually preferred. |
show_fullsizeURL = on |
;Turn this on to display link to the full size image |
show_slideshowURL = on |
;Turn this on to show a link to slideshow on gallery page |
thumb_width_image = 700 |
thumb_height_image = 500 |
;Modern Update Checker - Connects to my site to check for new version |
update_check = yes |
update_url = http://www.abitcloser.com/files/ |
current_version = modern-v1.3.2 |
/photogallery/templates/rss/index.tpl.php |
---|
0,0 → 1,56 |
<?php |
/** |
* RSS 2.0 output for singapore. |
* |
* @author Ross Howard <abitcloser.com |
* @copyright (c)2006 Tamlyn Rhodes |
* @version 0.8 |
*/ |
if(headers_sent()) |
die("ERROR: Unable to send XML content-type header."); |
else |
header("Content-type: application/rss+xml; charset=".$sg->character_set); |
echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?> |
<rss version="2.0" |
xmlns:content="http://purl.org/rss/1.0/modules/content/" |
xmlns:wfw="http://wellformedweb.org/CommentAPI/" |
xmlns:dc="http://purl.org/dc/elements/1.1/"> |
<channel> |
<title><?php echo $sg->gallery->name(); ?></title> |
<link><?php echo "http://".$_SERVER['HTTP_HOST'].($sg->config->use_mod_rewrite ? '' : dirname($_SERVER['PHP_SELF']).'/').str_replace("template=rss", "", $sg->gallery->URL()); ?></link> |
<description><?php echo $sg->gallery->name(); ?> Feed</description> |
<?php if(($timestamp = @strtotime($sg->gallery->date())) !== false && $timestamp != -1) |
echo '<pubDate>'.date('r', $timestamp).'</pubDate>'; ?> |
<generator>http://www.sgal.org/</generator> |
<?php if($sg->isAlbumPage()) { ?> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->imageCountSelected()+$sg->gallery->startat; $index++): ?> |
<item> |
<title><?php echo $sg->gallery->images[$index]->name; ?></title> |
<link><?php echo "http://".$_SERVER['HTTP_HOST'].str_replace("?template=rss", "", $sg->gallery->images[$index]->url()); ?></link> |
<?php if(($timestamp = @strtotime($sg->gallery->images[$index]->date())) !== false && $timestamp != -1) |
echo '<pubDate>'.date('r', $timestamp).'</pubDate>'; ?> |
<dc:creator><?php echo $sg->gallery->images[$index]->artist(); ?></dc:creator> |
<description> |
<![CDATA[ <?php echo $sg->gallery->images[$index]->description(); ?> ]]> |
</description> |
</item> |
<?php endfor; ?> |
<?php } elseif($sg->isGalleryPage()) { ?> |
<?php for($index = $sg->gallery->startat; $index < $sg->gallery->galleryCountSelected()+$sg->gallery->startat; $index++): ?> |
<item> |
<title><![CDATA[<?php echo $sg->gallery->galleries[$index]->name(); ?> ]]></title> |
<link><?php echo "http://".$_SERVER['HTTP_HOST'].str_replace("?template=rss", "", $sg->gallery->galleries[$index]->url()); ?></link> |
<?php if(($timestamp = @strtotime($sg->gallery->date())) !== false && $timestamp != -1) |
echo '<pubDate>'.date('r', $timestamp).'</pubDate>'; ?> |
<dc:creator><?php echo $sg->gallery->galleries[$index]->artist(); ?></dc:creator> |
<description> |
<![CDATA[ <?php echo $sg->gallery->galleries[$index]->description(); ?>]]> |
</description> |
</item> |
<?php endfor; ?> |
<?php } ?> |
</channel> |
</rss> |
/photogallery/templates/rss/template.ini |
---|
0,0 → 1,10 |
thumb_number_gallery = 100 |
;Maximum number of gallery items to show in one feed. |
thumb_number_album = 100 |
;Maximum number of image items to show in one feed. |
track_views = false |
;Turn off hit logging as we don't want to count every hit |
;to the RSS feed |
/photogallery/locale/index.php |
---|
0,0 → 1,0 |
<?php header("Location: ../") ?> |
/photogallery/locale/singapore.admin.bg.pmo |
---|
0,0 → 1,0 |
a:2:{s:13:"URL of image:";s:36:"URL на изображението:";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:9:"Bulgarian";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.ca.pmo |
---|
0,0 → 1,7 |
a:92:{s:27:"Welcome to singapore admin!";s:41:"Benvingut a l'administració de singapore!";s:18:"An error occurred:";s:20:"Hi ha hagut un error";s:22:"Thank you and goodbye!";s:21:"Gràcies i fins aviat!";s:14:"Password saved";s:20:"Contrasenya guardada";s:13:"Gallery added";s:15:"Galería afegida";s:18:"Gallery info saved";s:33:"Informació de la galería guardada";s:10:"confirm|OK";s:8:"Acceptar";s:15:"Gallery deleted";s:15:"Galería borrada";s:14:"confirm|Cancel";s:8:"Cancelar";s:14:"delete gallery";s:14:"borrar galería";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:125:"La galería %s no està buida |
Estàs segur que vols eliminarla permanentment junt amb todas les subgaleríes i imatges que conté?";s:17:"Thumbnail changed";s:18:"Miniatura canviada";s:11:"Image added";s:14:"Imatge afegida";s:24:"Image saved successfully";s:27:"Imatge guardada exitosament";s:13:"Image deleted";s:14:"Imagen borrada";s:12:"delete image";s:13:"Borrar imatge";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:74:"Estàs segur que vols borrar la imatge %s de la galería %s permanentement?";s:22:"Thumbnail cache purged";s:37:"Memòria cau de vistes prèvies buidada";s:23:"purge cached thumbnails";s:39:"Buidar vistes prèvies de la memòria cau";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:65:"Estàs segur que vols buidar %s vistes prèvies de la memòria cau?";s:14:"admin bar|Back";s:9:"Endarrere";s:15:"admin bar|Admin";s:11:"Administrar";s:19:"admin bar|Galleries";s:8:"Galeries";s:17:"admin bar|Log out";s:6:"Sortir";s:22:"admin bar|Edit gallery";s:14:"Editar galería";s:24:"admin bar|Delete gallery";s:14:"Borrar galería";s:24:"admin bar|New subgallery";s:15:"Nova subgalería";s:20:"admin bar|Edit image";s:13:"Editar imatge";s:22:"admin bar|Delete image";s:13:"Borrar imatge";s:19:"admin bar|New image";s:11:"Nova imatge";s:43:"There was an error saving the new password.";s:52:"Hi ha hagut un error al guardar la nova contrasenya.";s:54:"New password must be between 6 and 16 characters long.";s:55:"La nova contrasenya ha de tenir entre 6 i 16 caràcters.";s:43:"The new passwords you entered do not match.";s:39:"Les noves contrasenyes no coincideixen.";s:72:"The current password you entered does not match the one in the database.";s:70:"La contrsenya actual no coincideix amb la que està a la base de dades.";s:53:"The username specified was not found in the database.";s:62:"El nom d'usuari especificat no s'ha trobat a la base de dades.";s:34:"Username and/or password incorrect";s:34:"Usuari i/o contrasenya incorrectes";s:38:"You must enter a username and password";s:45:"Has d'escriure un nom d'usuari i contrasenya.";s:22:"Gallery already exists";s:22:"La galería ja existeix";s:26:"Could not create directory";s:32:"No s'ha pogut crear el directori";s:27:"Could not save gallery info";s:44:"No es pot guardar l'informació de la galeria";s:37:"Cannot delete the top level directory";s:39:"No es pot borrar el directroi principal";s:19:"File already exists";s:19:"L'arxiu ja existeix";s:21:"Could not upload file";s:29:"No es pot carregar la imatge.";s:23:"Invalid location choice";s:21:"Localització invàlida";s:30:"Could not add image to gallery";s:42:"No s'ha pogut afegir l'imatge a la galería";s:32:"Could not save image information";s:48:"No s'ha pogut grabar la informació de la imatge.";s:22:"Could not delete image";s:31:"No s'ha pogut borrar la imatge.";s:16:"choose thumbnail";s:20:"Escull una miniatura";s:64:"Choose the filename of the image used to represent this gallery.";s:48:"Escull l'imatge per representar aquesta galería.";s:14:"thumbnail|None";s:3:"Cap";s:6:"Random";s:9:"Aleatoria";s:12:"edit gallery";s:14:"editar galería";s:18:"Gallery thumbnail:";s:27:"Vista prèvia de la galería:";s:16:"Random |
thumbnail";s:23:"Vista prèvia aleatòria |
";s:19:"thumbnail|Change...";s:10:"Canviar...";s:12:"Gallery name";s:17:"Nom de la galería";s:11:"Artist name";s:16:"Nom de l'artista";s:10:"edit image";s:13:"editar imatge";s:5:"Image";s:6:"Imatge";s:10:"Image name";s:16:"Nom de la imatge";s:15:"change password";s:19:"canviar contrasenya";s:67:"Please choose a new password between 6 and 16 characters in length.";s:62:"Siusplau escull una nova contrasenya d'entre 6 i 16 caràcters.";s:17:"Current password:";s:19:"Contrasenya actual:";s:13:"New password:";s:17:"Nova contrasenya:";s:17:"Confirm password:";s:22:"Confirmar contrasenya:";s:20:"singapore|Powered by";s:10:"Powered by";s:16:"hits table|Graph";s:6:"Gràfic";s:15:"hits table|Hits";s:7:"Visites";s:19:"hits table|Last hit";s:13:"Última visita";s:14:"Admin message:";s:28:"Missatge de l'administrador:";s:20:"Return to galleries.";s:22:"Tornar a les galeríes.";s:6:"log in";s:25:"Entrar a la Administració";s:110:"Only authorised users are allowed into the admin section. |
Please enter your admin username and password below.";s:120:"Només es permeten usuaris autoritzats a aquesta secció |
Siusplau entreu el nom d'usuari i la contrasenya d'administració.";s:9:"Username:";s:13:"Nom d'usuari:";s:9:"Password:";s:12:"Contrasenya:";s:24:"Please choose an option:";s:21:"Seleccioni una opció:";s:27:"Manage galleries and images";s:30:"Administrar galeríes d'imatges";s:17:"View gallery hits";s:26:"Veure visites a la galería";s:23:"Purge cached thumbnails";s:41:"Eliminar vistes prèvies de la memòria cau";s:15:"Change password";s:19:"Canviar contrasenya";s:16:"Log out of admin";s:25:"Sortir de l'administració";s:11:"new gallery";s:12:"nova galería";s:11:"Identifier:";s:14:"Identificador:";s:9:"new image";s:11:"nova imatge";s:74:"This image will not be visible because this gallery contains subgalleries.";s:70:"Aquesta imatge no és visible perquè aquesta galeria conté subgaleries.";s:11:"Remote file";s:11:"Arxiu remot";s:13:"URL of image:";s:28:"Ubicació (URL) de la imatge:";s:10:"Local file";s:11:"Arxiu local";s:21:"Image file to upload:";s:20:"Imatge per carregar:";s:30:"Use filename of uploaded file.";s:35:"Fer servir el nom d'arxiu carregat.";s:27:"Specify different filename:";s:36:"Especificar un nom d'arxiu diferent.";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:16:"Catalan (Català)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.cs.pmo |
---|
0,0 → 1,5 |
a:142:{s:53:"You do not have permission to perform this operation.";s:42:"Nemáte oprávnìní k provedení této operace.";s:13:"Gallery added";s:15:"Galerie pøidána";s:18:"An error occurred:";s:6:"Chyba:";s:11:"Image added";s:14:"Obrázek pøidán";s:22:"Archive contents added";s:20:"Obsah archivu pøidán";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:13:"Náhled zmìnìn";s:14:"confirm|Cancel";s:6:"Zru¹it";s:15:"Gallery deleted";s:15:"Galerie smazána";s:14:"delete gallery";s:14:"Smazat galerii";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:122:"Galerie %s není prázdná. |
Jste si naprosto jistý, ¾e chcete nenávratnì smazat tuto galerii a v¹echny v ní obsa¾ené obrázky?";s:13:"Image deleted";s:14:"Obrázek smazán";s:12:"delete image";s:14:"Smazat obrázek";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:74:"Jste si naprosto jistý, ¾e chcete nenávratnì smazat obrázek %s galerie %s?";s:12:"User deleted";s:18:"U¾ivatel odstranìn";s:11:"delete user";s:16:"Smazat u¾ivatele";s:52:"Are you sure you want to permanently delete user %s?";s:56:"Jste si naprosto jistý, ¾e chtee odstranit u¾ivatele %s?";s:27:"Welcome to singapore admin!";s:23:"Vítejte v administraci!";s:22:"Thank you and goodbye!";s:23:"Dìkujeme a nashledanou!";s:22:"Thumbnail cache purged";s:23:"Cache náhledù vyèi¹tìna";s:23:"purge cached thumbnails";s:22:"Vyèistit cache náhledù";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:55:"Jste si naprosto jistý, ¾e chcete smazat v¹ech náhledy?";s:36:"Gallery re-indexed. %s images added.";s:45:"Gallery znovu indexována. Pøidáno %s obrázkù.";s:18:"Gallery info saved";s:27:"Informace o galerii ulo¾eny";s:16:"Image info saved";s:27:"Informace o obrázku ulo¾eny";s:14:"Password saved";s:13:"Heslo ulo¾eno";s:17:"Permissions saved";s:17:"Oprávnìní ulo¾eno";s:15:"User info saved";s:29:"Informace o u¾ivateli ulo¾eny";s:14:"admin bar|Back";s:4:"Zpìt";s:15:"admin bar|Admin";s:12:"Administrace";s:19:"admin bar|Galleries";s:7:"Galerie";s:17:"admin bar|Log out";s:11:"Odhlásit se";s:22:"admin bar|Edit gallery";s:15:"Editace galerie";s:26:"admin bar|Edit permissions";s:17:"Editace oprávnìní";s:24:"admin bar|Delete gallery";s:14:"Smazat galerii";s:24:"admin bar|New subgallery";s:20:"Nová vnoøená galerie";s:26:"admin bar|Re-index gallery";s:23:"Znovu indexovat galerii";s:20:"admin bar|Edit image";s:16:"Editovat obrázek";s:22:"admin bar|Delete image";s:14:"Smazat obrázek";s:19:"admin bar|New image";s:12:"Nový obrázek";s:24:"Could not save user info";s:35:"Nemù¾u ulo¾it informace o u¾ivateli";s:54:"New password must be between 6 and 16 characters long.";s:41:"Nové heslo musí být 6 a¾ 16 znakù dlouhé.";s:43:"The new passwords you entered do not match.";s:43:"Nové heslo, které jste vlo¾il se neshoduje.";s:72:"The current password you entered does not match the one in the database.";s:63:"Souèasné heslo, které jste vlo¾il, neodpovídá heslo v databázi.";s:53:"The username specified was not found in the database.";s:59:"Specifikované u¾ivatelské jméno nebylo nalezeno v databázi.";s:31:"Your account has been suspended";s:25:"Vá¹ ú¹et byl suspendován.";s:34:"Username and/or password incorrect";s:53:"U¾ivatelské jméno a/nebo heslo bylo nesprávnì zadáno.";s:38:"You must enter a username and password";s:39:"Musíte vlo¾it u¾ivatelské jméno a heslo";s:27:"Could not save gallery info";s:33:"Nemù¾u ulo¾it informace o galerii";s:23:"Username already exists";s:30:"U¾ivatelské jméno ji¾ existuje";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:35:"U¾ivatelské jméno nebylo rozpoznáno";s:22:"Gallery already exists";s:20:"Galerie ji¾ existuje";s:26:"Could not create directory";s:23:"Nemù¾u vytvoøit adresáø";s:37:"Cannot delete the top level directory";s:37:"Nemù¾u smazat adresáø nejvy¹¹í úrovnì";s:19:"File already exists";s:19:"Soubor ji¾ existuje";s:21:"Could not upload file";s:20:"Nemù¾u nahrát soubor";s:30:"Could not add image to gallery";s:32:"Nemù¾u pøidat obrázek do galerie";s:38:"Could not find temporary storage space";s:48:"Nemù¾u najít prostor pro doèasné ulo¾ení souborù";s:28:"Could not decompress archive";s:27:"Nemù¾u dekomprimovat archiv";s:40:"Some archive contents could not be added";s:44:"Nìkteré souèásti archivu nemohly být pøidány";s:32:"Could not save image information";s:33:"Nemù¾u ulo¾it informace o obrázku";s:22:"Could not delete image";s:21:"Nemù¾u smazat obrázek";s:16:"choose thumbnail";s:13:"zvolte náhled";s:64:"Choose the filename of the image used to represent this gallery.";s:54:"Zvolte obrázek, který bude reprezentovat tuto galerii.";s:14:"thumbnail|None";s:5:"®ádný";s:16:"thumbnail|Random";s:7:"Náhodný";s:12:"edit gallery";s:16:"Editovat galerii";s:9:"Thumbnail";s:6:"Náhled";s:16:"Random |
thumbnail";s:14:"Náhodný |
náhléd";s:19:"thumbnail|Change...";s:10:"Zmìnit ...";s:12:"Gallery name";s:13:"Jméno galerie";s:11:"Artist name";s:12:"Jméno autora";s:7:"Summary";s:6:"Souhrn";s:12:"Save Changes";s:12:"Ulo¾it zmìny";s:10:"edit image";s:16:"Editovat obrázek";s:5:"Image";s:7:"Obrázek";s:10:"Image name";s:13:"Jméno obrázku";s:15:"change password";s:11:"Zmìna heslo";s:67:"Please choose a new password between 6 and 16 characters in length.";s:53:"Prosím, zvolte nové heslo o délce mezi 6 a¾ 16 znakù.";s:17:"Current password:";s:15:"Souèasné heslo:";s:13:"New password:";s:11:"Nové heslo:";s:17:"Confirm password:";s:16:"Potvrzení hesla:";s:16:"edit permissions";s:15:"Zmìna oprávnìní";s:5:"Owner";s:8:"Vlastník";s:6:"Groups";s:7:"Skupiny";s:17:"Group permissions";s:17:"Oprávnìní skupiny";s:16:"permissions|Read";s:5:"Ètení";s:16:"permissions|Edit";s:7:"Editace";s:15:"permissions|Add";s:9:"Pøidávání";s:18:"permissions|Delete";s:6:"Mazání";s:17:"World permissions";s:18:"Globální oprávnìní";s:10:"my profile";s:10:"mùj profil";s:8:"Username";s:17:"U¾ivatelské jméno";s:9:"Full name";s:10:"Celé jméno";s:15:"user management";s:16:"Správa u¾ivatelù";s:4:"Type";s:3:"Typ";s:13:"Administrator";s:13:"Administrátor";s:4:"User";s:8:"U¾ivatel";s:8:"Password";s:5:"Heslo";s:22:"admin bar|View gallery";s:16:"Zobrazit galerii";s:26:"admin bar|Change thumbnail";s:13:"Zmìnit náhled";s:16:"hits table|Graph";s:4:"Graf";s:15:"hits table|Hits";s:8:"Pøístupy";s:19:"hits table|Last hit";s:16:"Poslední pøístup";s:14:"Admin message:";s:22:"Zpráva administrátora:";s:6:"log in";s:12:"Pøihlásit se";s:52:"Please enter your admin username and password below.";s:63:"Prosím, vlo¾te administrátorské u¾ivatelské jméno a heslo ní¾e.";s:9:"Username:";s:18:"U¾ivatelské jméno:";s:9:"Password:";s:6:"Heslo:";s:61:"If you do not have a username then you may log in as a guest.";s:70:"Pokud nemáte u¾ivatelské jméno a heslo, mù¾ete se pøihlásit jako host.";s:15:"Log in as guest";s:22:"Pøihlásit se jako host";s:49:"You must be an administrator to access this area.";s:66:"Musíte být administrátor, aby jste mohli vstoupit do této oblasti.";s:6:"Email:";s:7:"E-mail:";s:10:"Full name:";s:11:"Celé jméno:";s:4:"edit";s:8:"editovat";s:6:"delete";s:6:"smazat";s:7:"suspend";s:11:"suspendovat";s:9:"unsuspend";s:7:"pový¹it";s:15:"create new user";s:25:"vytvoøit nového u¾ivatele";s:6:"Create";s:8:"Vytvoøit";s:24:"Please choose an option:";s:32:"Prosím, zvolte jednu z mo¾ností:";s:27:"Manage galleries and images";s:27:"Spravovat galerie a obrázky";s:17:"View gallery hits";s:25:"Zobrazit pøístupy galerií";s:15:"Change password";s:12:"Zmìnit heslo";s:10:"My profile";s:10:"Mùj profil";s:12:"Manage users";s:19:"Spravoavt u¾ivatele";s:23:"Purge cached thumbnails";s:27:"Odstranit cachované náhledy";s:16:"Log out of admin";s:26:"Odhlásit se z administrace";s:11:"new gallery";s:12:"nová galerie";s:11:"Identifier:";s:14:"Identifikátor:";s:9:"new image";s:12:"nový obrázek";s:97:"This image will not be visible because this gallery is not an album: it contains child galleries.";s:81:"Tento obrázek nebude dostupný, proto¾e tato galerie není albem: obsahuje galerie.";s:18:"Upload single file";s:19:"Nahrát jeden soubor";s:21:"Image file to upload:";s:25:"Soubor obrázku k nahrátí:";s:30:"Use filename of uploaded file.";s:31:"Pou¾ít jméno nahraného souboru.";s:27:"Specify different filename:";s:22:"Specifikuj jiné jméno:";s:21:"Upload multiple files";s:19:"Nahrát více souborù";s:19:"ZIP file to upload:";s:21:"Soubor ZIP k nahrátí:";s:15:"Add remote file";s:22:"Pøidat vzdálený soubor";s:13:"URL of image:";s:12:"URL obrázku:";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:6:"Czech ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.cs_utf8.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:43:"Nemáte oprávnění provést tuto operaci.";s:13:"Gallery added";s:17:"Galerie přidána";s:18:"An error occurred:";s:14:"Nastala chyba:";s:11:"Image added";s:17:"Obrázek přidán";s:22:"Archive contents added";s:22:"Přidán obsah archivu";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:16:"Náhled změněn";s:14:"confirm|Cancel";s:7:"Zrušit";s:15:"Gallery deleted";s:16:"Galerie smazána";s:14:"delete gallery";s:14:"Smazat galerii";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:131:"Galerie %s není prázdná. |
Jste si jist(a), že chcete ji, všechny její subgalerie a obrázky co obsahují, nenávratně smazat?";s:13:"Image deleted";s:16:"Obrázek smazán";s:12:"delete image";s:15:"Smazat obrázek";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:73:"Jste si jist(a), že chcete nenávratně smazat obrázek %s z galerie %s?";s:12:"User deleted";s:17:"Uživatel smazán";s:11:"delete user";s:17:"Smazat uživatele";s:52:"Are you sure you want to permanently delete user %s?";s:58:"Jste si jist(a), že chcete trvale odstranit uživatee %s?";s:27:"Welcome to singapore admin!";s:50:"Vítejte v administrační sekci sinapore galerie!";s:22:"Thank you and goodbye!";s:29:"Děkujeme vám a nashledanou!";s:22:"Thumbnail cache purged";s:29:"Cache náhledů vyčištěna.";s:23:"purge cached thumbnails";s:25:"Vyčistit cache náhledů";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:74:"Jste si jist(a), že chcete odstranit všech %s nacacheovaných náhledů?";s:36:"Gallery re-indexed. %s images added.";s:47:"Galerie přeindexována. %s obrázů přidáno.";s:18:"Gallery info saved";s:23:"Uloženo info o galerii";s:24:"Image saved successfully";s:28:"Obrázek uložen úspěšně";s:14:"Password saved";s:14:"Heslo uloženo";s:17:"Permissions saved";s:15:"Práva uložena";s:15:"User info saved";s:32:"Uživatelské informace uloženy";s:14:"admin bar|Back";s:5:"Zpět";s:15:"admin bar|Admin";s:5:"Admin";s:19:"admin bar|Galleries";s:7:"Galerie";s:17:"admin bar|Log out";s:9:"Odhlásit";s:22:"admin bar|Edit gallery";s:16:"Editovat galerii";s:26:"admin bar|Edit permissions";s:15:"Editovat práva";s:24:"admin bar|Delete gallery";s:14:"Smazat galerii";s:24:"admin bar|New subgallery";s:16:"Nová podgalerie";s:26:"admin bar|Re-index gallery";s:21:"Přeindexovat galerii";s:20:"admin bar|Edit image";s:17:"Editovat obrázek";s:22:"admin bar|Delete image";s:15:"Smazat obrázek";s:19:"admin bar|New image";s:14:"Nový obrázek";s:24:"Could not save user info";s:37:"Nelze uložit uživatelské informace";s:54:"New password must be between 6 and 16 characters long.";s:45:"Nové heslo musí mít mezi 6ti a 16ti znaky.";s:43:"The new passwords you entered do not match.";s:33:"Nově zadané heslo se neshoduje.";s:72:"The current password you entered does not match the one in the database.";s:63:"Současné heslo vámi zadané se neshoduje s tím z databáze.";s:53:"The username specified was not found in the database.";s:56:"Zadané uživatelské jméno se nenachází v databázi.";s:31:"Your account has been suspended";s:38:"Váš účet byl dočasně pozastaven.";s:34:"Username and/or password incorrect";s:48:"Uživatelské jméno a/nebo heslo je nesprávné";s:38:"You must enter a username and password";s:42:"Musíte zadat uživatelské jméno a heslo";s:27:"Could not save gallery info";s:33:"Nelze uložit informace o galerii";s:23:"Username already exists";s:34:"Uživatelské jméno již existuje";s:31:"Cannot delete built in accounts";s:31:"Nelze smazat vestavěné účty";s:23:"Username not recognised";s:39:"Uživatelské jméno nebylo rozpoznáno";s:22:"Gallery already exists";s:21:"Galerie již existuje";s:26:"Could not create directory";s:25:"Nelze vytvořit adresář";s:37:"Cannot delete the top level directory";s:34:"Nelze smazat nejvyšší adresář";s:19:"File already exists";s:20:"Soubor již existuje";s:21:"Could not upload file";s:20:"Nelze nahrát soubor";s:30:"Could not add image to gallery";s:33:"Nelze přidat obrázek do galerie";s:38:"Could not find temporary storage space";s:35:"Nelze najít dočasné úložiště";s:28:"Could not decompress archive";s:21:"Nelze rozbalit archiv";s:40:"Some archive contents could not be added";s:42:"Část obsahu archivu se nepovedlo přidat";s:32:"Could not save image information";s:34:"Nelze uložit informace o obrázku";s:22:"Could not delete image";s:21:"Nelze smazat obrázek";s:17:"Select gallery...";s:18:"Vyberte galerii...";s:16:"choose thumbnail";s:14:"Zvolte náhled";s:64:"Choose the filename of the image used to represent this gallery.";s:54:"Zvolte jméno souboru, který bude zastupovat galerii.";s:14:"thumbnail|None";s:8:"Žádné";s:16:"thumbnail|Random";s:9:"Náhodné";s:12:"edit gallery";s:16:"Editovat galerii";s:9:"Thumbnail";s:7:"Náhled";s:16:"Random |
thumbnail";s:17:"Náhodný |
náhled";s:19:"thumbnail|Change...";s:10:"Změnit...";s:12:"Gallery name";s:14:"Jméno galerie";s:11:"Artist name";s:13:"Jméno autora";s:7:"Summary";s:8:"Shrnutí";s:10:"edit image";s:17:"Editovat obrázek";s:5:"Image";s:8:"Obrázek";s:10:"Image name";s:15:"Jméno obrázku";s:15:"change password";s:13:"Změnit heslo";s:67:"Please choose a new password between 6 and 16 characters in length.";s:52:"Zvolte, prosím, nové heslo délky 6 až 16 znaků.";s:17:"Current password:";s:17:"Současné heslo:";s:13:"New password:";s:12:"Nové heslo:";s:17:"Confirm password:";s:17:"Potvrzení heslo:";s:16:"edit permissions";s:15:"Editovat práva";s:5:"Owner";s:9:"Vlastník";s:6:"Groups";s:7:"Skupiny";s:17:"Group permissions";s:13:"Práva skupin";s:16:"permissions|Read";s:7:"Čtení";s:16:"permissions|Edit";s:7:"Editace";s:15:"permissions|Add";s:10:"Přidání";s:18:"permissions|Delete";s:8:"Mazání";s:17:"World permissions";s:17:"Globální práva";s:15:"user management";s:19:"Správa uživatelů";s:8:"Username";s:20:"Uživatelské jméno";s:4:"Type";s:3:"Typ";s:13:"Administrator";s:14:"Administrátor";s:4:"User";s:9:"Uživatel";s:9:"Full name";s:12:"Celé jméno";s:8:"Password";s:5:"Heslo";s:22:"admin bar|View gallery";s:16:"Zobrazit galerii";s:26:"admin bar|Change thumbnail";s:15:"Změnit náhled";s:16:"hits table|Graph";s:4:"Graf";s:15:"hits table|Hits";s:10:"Zobrazení";s:19:"hits table|Last hit";s:20:"Poslední zobrazení";s:14:"Admin message:";s:15:"Zpráva admina:";s:6:"log in";s:14:"Přihlášení";s:52:"Please enter your admin username and password below.";s:72:"Zadejte, prosím, vaše administrátorské uživatelské jméno a heslo.";s:9:"Username:";s:21:"Uživatelské jméno:";s:9:"Password:";s:6:"Heslo:";s:61:"If you do not have a username then you may log in as a guest.";s:70:"Pokud nemáte uživatelské jméno, můžete se přihlásit jako host.";s:49:"You must be an administrator to access this area.";s:57:"Musíte být administrátor pro přístup do této sekce.";s:6:"Email:";s:6:"Email:";s:10:"Full name:";s:13:"Celé jméno:";s:4:"edit";s:8:"Editovat";s:6:"delete";s:6:"Smazat";s:7:"suspend";s:10:"Pozastavit";s:9:"unsuspend";s:12:"Odpozastavit";s:15:"create new user";s:28:"Vytvořit nového uživatele";s:24:"Please choose an option:";s:30:"Prosím vyberte jednu z voleb:";s:27:"Manage galleries and images";s:28:"Spravovat galerie a obrázky";s:17:"View gallery hits";s:30:"Statistiky zobrazení galerií";s:15:"Change password";s:12:"Změna hesla";s:10:"My profile";s:11:"Můj profil";s:12:"Manage users";s:20:"Spravovat uživatele";s:23:"Purge cached thumbnails";s:32:"Vyčistit nacacheované náhledy";s:16:"Log out of admin";s:26:"Odhlásit se z admin sekce";s:11:"new gallery";s:13:"Nová galerie";s:11:"Identifier:";s:15:"Identifikátor:";s:9:"new image";s:14:"Nový obrázek";s:74:"This image will not be visible because this gallery contains subgalleries.";s:72:"Tento obrázek nebude vidět, protože tato galerie obsahuje subgalerie.";s:18:"Upload single file";s:20:"Nahrát jeden soubor";s:21:"Image file to upload:";s:28:"Soubor obrázku k nahrání:";s:30:"Use filename of uploaded file.";s:33:"Použij název nahraného souboru";s:27:"Specify different filename:";s:26:"Zadej jiné název souboru";s:21:"Upload multiple files";s:22:"Nahrát více souborů";s:19:"ZIP file to upload:";s:23:"ZIP archiv k nahrání:";s:15:"Add remote file";s:25:"Přidat vzdálený soubor";s:13:"URL of image:";s:13:"URL obrázku:";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:13:"Czech (UTF-8)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.de.pmo |
---|
0,0 → 1,4 |
a:139:{s:53:"You do not have permission to perform this operation.";s:55:"Sie haben keine Berechtigung diesen Befehl auszuführen.";s:13:"Gallery added";s:19:"Galerie hinzugefügt";s:18:"An error occurred:";s:27:"Ein Fehler ist aufgetreten.";s:11:"Image added";s:22:"Bild wurde hinzugefügt";s:22:"Archive contents added";s:33:"Archiv Inhalte wurden hinzugefügt";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:27:"Miniaturbild wurde geändert";s:14:"confirm|Cancel";s:9:"Abbrechen";s:15:"Gallery deleted";s:16:"Galerie gelöscht";s:14:"delete gallery";s:15:"Galerie löschen";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:108:"Galerie %s is nicht leer. |
Soll die Galerie und alle Unter-Galerien wirklich unwiederruflich gelöscht werden?";s:13:"Image deleted";s:19:"Bild wurde gelöscht";s:12:"delete image";s:12:"Bild löschen";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:77:"Soll das Bild %s wirklich unwiederruflich aus der Galerie %s gelöscht werden?";s:12:"User deleted";s:16:"Galerie gelöscht";s:11:"delete user";s:15:"Galerie löschen";s:52:"Are you sure you want to permanently delete user %s?";s:77:"Soll das Bild %s wirklich unwiederruflich aus der Galerie %s gelöscht werden?";s:27:"Welcome to singapore admin!";s:46:"Willkomen im singapore Administrationsbereich.";s:22:"Thank you and goodbye!";s:32:"Danke schön und auf Wiedersehen.";s:22:"Thumbnail cache purged";s:36:"Miniaturvorschau-Cache wurde geleert";s:23:"purge cached thumbnails";s:29:"Miniaturvorschau-Cache leeren";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:63:"Wirklich alle %s Miniaturvorschau-Bilder aus dem Cache löschen?";s:36:"Gallery re-indexed. %s images added.";s:53:"Galerie neu indexieren. %S Bilder wurden hinzugefügt.";s:18:"Gallery info saved";s:32:"Galerie-Beschreibung gespeichert";s:24:"Image saved successfully";s:22:"Bild wurde gespeichert";s:14:"Password saved";s:20:"Passwort gespeichert";s:17:"Permissions saved";s:20:"Passwort gespeichert";s:15:"User info saved";s:32:"Galerie-Beschreibung gespeichert";s:14:"admin bar|Back";s:6:"Zurück";s:15:"admin bar|Admin";s:13:"Einstellungen";s:19:"admin bar|Galleries";s:8:"Galerien";s:17:"admin bar|Log out";s:8:"Abmelden";s:22:"admin bar|Edit gallery";s:18:"Galerie bearbeiten";s:26:"admin bar|Edit permissions";s:18:"Galerie bearbeiten";s:24:"admin bar|Delete gallery";s:15:"Galerie löschen";s:24:"admin bar|New subgallery";s:18:"Neue Unter-Galerie";s:26:"admin bar|Re-index gallery";s:15:"Galerie löschen";s:20:"admin bar|Edit image";s:15:"Bild bearbeiten";s:22:"admin bar|Delete image";s:12:"Bild löschen";s:19:"admin bar|New image";s:15:"Bild hinzufügen";s:24:"Could not save user info";s:43:"Konnte Galerie-Beschreibung nicht speichern";s:54:"New password must be between 6 and 16 characters long.";s:60:"Ein neues Passwort muss zwischen 6 und 16 Zeichen lang sein.";s:43:"The new passwords you entered do not match.";s:52:"Die neu eingebenen Passwörter stimmen nicht überein.";s:72:"The current password you entered does not match the one in the database.";s:74:"Das aktuelle Passwort stimmt nicht mit dem gespeicherten Passwort überein.";s:53:"The username specified was not found in the database.";s:47:"Der angegebene Nutzername wurde nicht gefunden.";s:31:"Your account has been suspended";s:26:"Ihr Zugang wurde gelöscht.";s:34:"Username and/or password incorrect";s:39:"Nutzername und/oder Passwort inkorrekt.";s:38:"You must enter a username and password";s:55:"Sie müssen einen Nutzernamen und ein Passwort eingeben.";s:27:"Could not save gallery info";s:43:"Konnte Galerie-Beschreibung nicht speichern";s:23:"Username already exists";s:28:"Nutzername existiert bereits";s:31:"Cannot delete built in accounts";s:46:"Das Nutzer-Konto konnte nicht gelöscht werden.";s:23:"Username not recognised";s:25:"Nutzername nicht gefunden";s:22:"Gallery already exists";s:26:"Galerie existiert bereits.";s:26:"Could not create directory";s:40:"Der Ordner konnte nicht erstellt werden.";s:37:"Cannot delete the top level directory";s:50:"Das Basis-Verzeichniss kann nicht gelöscht werden.";s:19:"File already exists";s:23:"Datei existiert bereits";s:21:"Could not upload file";s:29:"Konnte Datei nicht hochladen.";s:30:"Could not add image to gallery";s:40:"Konnte Bild nicht zur Galerie hinzufügen";s:38:"Could not find temporary storage space";s:37:"Zwischenspeicher wurde nicht gefunden";s:28:"Could not decompress archive";s:35:"Archiv konnte nicht entpackt werden";s:40:"Some archive contents could not be added";s:45:"Archiv-Teile konnten nicht hinzugefügt werden";s:32:"Could not save image information";s:40:"Konnte Bild-Beschreibung nicht speichern";s:22:"Could not delete image";s:25:"Konnte Bild nicht löschen";s:17:"Select gallery...";s:15:"Galerie löschen";s:16:"choose thumbnail";s:30:"Miniaturvorschaubild auswählen";s:64:"Choose the filename of the image used to represent this gallery.";s:68:"Wählen Sie ein Miniaturvorschau-Bild, als Vorschau für diese Galerie";s:14:"thumbnail|None";s:5:"Keins";s:16:"thumbnail|Random";s:8:"Zufällig";s:12:"edit gallery";s:18:"Galerie bearbeiten";s:9:"Thumbnail";s:5:"Keins";s:16:"Random |
thumbnail";s:32:"Zufälliges Miniaturvorschau-Bild";s:19:"thumbnail|Change...";s:9:"Ändern...";s:12:"Gallery name";s:12:"Galerie-Name";s:11:"Artist name";s:15:"Fotografen-Name";s:7:"Summary";s:9:"Übersicht";s:10:"edit image";s:15:"Bild bearbeiten";s:5:"Image";s:4:"Bild";s:10:"Image name";s:10:"Bilde-Name";s:15:"change password";s:15:"Passwort ändern";s:67:"Please choose a new password between 6 and 16 characters in length.";s:72:"Bitte wählen Sie ein Passwort mit einer Länge zwischen 6 und 16 Zeichen.";s:17:"Current password:";s:19:"Aktuelles Passwort:";s:13:"New password:";s:15:"Neues Passwort:";s:17:"Confirm password:";s:20:"Passwort bestätigen:";s:16:"edit permissions";s:18:"Bearbeitungsrechte";s:5:"Owner";s:8:"Besitzer";s:6:"Groups";s:6:"Gruppe";s:17:"Group permissions";s:14:"Gruppen-Rechte";s:16:"permissions|Read";s:5:"Lesen";s:16:"permissions|Edit";s:10:"Bearbeiten";s:15:"permissions|Add";s:10:"Hinzufügen";s:18:"permissions|Delete";s:7:"Löschen";s:17:"World permissions";s:14:"Globale Rechte";s:15:"user management";s:18:"Benutzerverwaltung";s:8:"Username";s:11:"Nutzername:";s:4:"Type";s:3:"Typ";s:13:"Administrator";s:13:"Administrator";s:4:"User";s:11:"Nutzername:";s:9:"Full name";s:12:"Galerie-Name";s:8:"Password";s:9:"Passwort:";s:22:"admin bar|View gallery";s:15:"Galerie ansehen";s:26:"admin bar|Change thumbnail";s:16:"Thumbnail ändern";s:16:"hits table|Graph";s:8:"Diagramm";s:15:"hits table|Hits";s:8:"Zugriffe";s:19:"hits table|Last hit";s:15:"Letzter Zugriff";s:14:"Admin message:";s:32:"Nachricht für den Administrator:";s:6:"log in";s:8:"anmelden";s:52:"Please enter your admin username and password below.";s:55:"Bitte geben Sie Ihren Nutzernamen und Ihr Passwort ein.";s:9:"Username:";s:11:"Nutzername:";s:9:"Password:";s:9:"Passwort:";s:61:"If you do not have a username then you may log in as a guest.";s:74:"Wenn Sie noch keinen Nutzernamen haben, können Sie sich als Gast anmelden.";s:49:"You must be an administrator to access this area.";s:85:"Um auf diesen Bereich zugreifen zu können, müssen Sie Administrator des Systems sein.";s:6:"Email:";s:5:"Email";s:10:"Full name:";s:12:"Galerie-Name";s:4:"edit";s:10:"bearbeiten";s:6:"delete";s:7:"löschen";s:7:"suspend";s:11:"deaktiviert";s:9:"unsuspend";s:9:"aktiviert";s:15:"create new user";s:20:"Neuen Nutzer anlegen";s:24:"Please choose an option:";s:17:"Bitte wählen Sie:";s:27:"Manage galleries and images";s:29:"Galerien und Bilder verwalten";s:17:"View gallery hits";s:40:"Zugriffszahlen für die Galerien anzeigen";s:15:"Change password";s:15:"Passwort ändern";s:10:"My profile";s:11:"Mein Profil";s:12:"Manage users";s:16:"Nutzer verwalten";s:23:"Purge cached thumbnails";s:45:"Miniaturvorschau-Bilder aus dem Cache löschen";s:16:"Log out of admin";s:33:"Administrations-Bereich verlassen";s:11:"new gallery";s:12:"Neue Galerie";s:11:"Identifier:";s:11:"Bezeichner:";s:9:"new image";s:10:"Neues Bild";s:74:"This image will not be visible because this gallery contains subgalleries.";s:76:"Dieses Bild wird nicht sichtbar sein, da die Galerie Unter-Galerien enthält.";s:18:"Upload single file";s:24:"Einzelne Datei hochladen";s:21:"Image file to upload:";s:24:"Bild-Datei zum hochladen";s:30:"Use filename of uploaded file.";s:45:"Dateinamen der hochgeladenen Datei verwenden-";s:27:"Specify different filename:";s:27:"Anderen Dateinamen angeben:";s:21:"Upload multiple files";s:25:"Mehrere Dateien hochladen";s:19:"ZIP file to upload:";s:20:"ZIP-Archiv hochladen";s:15:"Add remote file";s:59:"Datei die sich auf einem anderen Server befindet hinzufügen";s:13:"URL of image:";s:15:"URL des Bildes:";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:16:"German (Deutsch)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.es.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:15:"Galería añadida";s:18:"An error occurred:";s:21:"Ha ocurrido un error:";s:11:"Image added";s:14:"Imagen añadida";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:21:"Vista previa cambiada";s:14:"confirm|Cancel";s:8:"Cancelar";s:15:"Gallery deleted";s:15:"Galería borrada";s:14:"delete gallery";s:14:"borrar galería";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:137:"La galería %s no está vacía |
¿Estás seguro que quieres eliminarla permanentemente junto con todas las subgalerías e imagenes que contiene?";s:13:"Image deleted";s:16:"Imagen eliminada";s:12:"delete image";s:15:"Eliminar imagen";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:76:"Estás seguro que quieres borrar imagen %s de la galería %s permanentemente?";s:12:"User deleted";s:15:"Galería borrada";s:11:"delete user";s:14:"borrar galería";s:52:"Are you sure you want to permanently delete user %s?";s:76:"Estás seguro que quieres borrar imagen %s de la galería %s permanentemente?";s:27:"Welcome to singapore admin!";s:0:"";s:22:"Thank you and goodbye!";s:23:"¡Gracias y hasta luego!";s:22:"Thumbnail cache purged";s:31:"Cache de vistas previas vaciado";s:23:"purge cached thumbnails";s:31:"Vaciar vistas previas del cache";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:61:"Estas seguro que quieres vaciar %s vistas previas del cache?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:34:"Información de la galería guardada";s:24:"Image saved successfully";s:28:"Imagen guardada exitosamente";s:14:"Password saved";s:19:"Contraseña guardada";s:17:"Permissions saved";s:19:"Contraseña guardada";s:15:"User info saved";s:34:"Información de la galería guardada";s:14:"admin bar|Back";s:5:"Atrás";s:15:"admin bar|Admin";s:5:"Admin";s:19:"admin bar|Galleries";s:8:"Galerías";s:17:"admin bar|Log out";s:5:"Salir";s:22:"admin bar|Edit gallery";s:14:"Editar galería";s:26:"admin bar|Edit permissions";s:14:"Editar galería";s:24:"admin bar|Delete gallery";s:16:"Eliminar galería";s:24:"admin bar|New subgallery";s:16:"Nueva subgalería";s:26:"admin bar|Re-index gallery";s:16:"Eliminar galería";s:20:"admin bar|Edit image";s:13:"Editar imagen";s:22:"admin bar|Delete image";s:15:"Eliminar imagen";s:19:"admin bar|New image";s:12:"Nueva imagen";s:24:"Could not save user info";s:48:"No se pudo guardar la información de la galería.";s:54:"New password must be between 6 and 16 characters long.";s:58:"La nueva contraseña debe de tener entre 6 y 16 caracteres.";s:43:"The new passwords you entered do not match.";s:36:"Las nuevas contraseñas no coinciden.";s:72:"The current password you entered does not match the one in the database.";s:69:"La contraseña actual no coincide con la que está en la base de datos.";s:53:"The username specified was not found in the database.";s:69:"El nombre de usuario especificado no se encontró en la base de datos.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:34:"Usuario y/o contraseña incorrectos";s:38:"You must enter a username and password";s:49:"Debes escribir un nombre de usuario y contraseña.";s:27:"Could not save gallery info";s:48:"No se pudo guardar la información de la galería.";s:23:"Username already exists";s:20:"El archivo ya existe";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:20:"La galería ya existe";s:26:"Could not create directory";s:30:"No se pudo crear el directorio";s:37:"Cannot delete the top level directory";s:42:"No se puede borrar el directorio principal";s:19:"File already exists";s:20:"El archivo ya existe";s:21:"Could not upload file";s:28:"No se pudo borrar la imagen.";s:30:"Could not add image to gallery";s:40:"No se pudo añadir la imagen a la galería";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:28:"No se pudo borrar la imagen.";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:47:"No se pudo guardar la información de la imagen.";s:22:"Could not delete image";s:28:"No se pudo borrar la imagen.";s:17:"Select gallery...";s:14:"borrar galería";s:16:"choose thumbnail";s:23:"Escoge una vista previa";s:64:"Choose the filename of the image used to represent this gallery.";s:61:"Escoge el archivo de la imagen para representar esta galería.";s:14:"thumbnail|None";s:7:"Ninguna";s:16:"thumbnail|Random";s:7:"Ninguna";s:12:"edit gallery";s:14:"editar galería";s:9:"Thumbnail";s:7:"Ninguna";s:16:"Random |
thumbnail";s:23:"Vista previa aleatoria |
";s:19:"thumbnail|Change...";s:10:"Cambiar...";s:12:"Gallery name";s:15:"Galería añadida";s:11:"Artist name";s:0:"";s:7:"Summary";s:0:"";s:10:"edit image";s:13:"editar imagen";s:5:"Image";s:14:"Imagen añadida";s:10:"Image name";s:14:"Imagen añadida";s:15:"change password";s:18:"cambiar contraseña";s:67:"Please choose a new password between 6 and 16 characters in length.";s:65:"Por favor escoja una nueva contraseña de entre 6 y 16 caracteres.";s:17:"Current password:";s:18:"Contraseña actual:";s:13:"New password:";s:17:"Nueva contraseña:";s:17:"Confirm password:";s:21:"Confirmar contraseña:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:8:"Usuario:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:8:"Usuario:";s:9:"Full name";s:15:"Galería añadida";s:8:"Password";s:11:"Contraseña:";s:22:"admin bar|View gallery";s:16:"Nueva subgalería";s:26:"admin bar|Change thumbnail";s:16:"Nueva subgalería";s:16:"hits table|Graph";s:0:"";s:15:"hits table|Hits";s:0:"";s:19:"hits table|Last hit";s:0:"";s:14:"Admin message:";s:0:"";s:6:"log in";s:26:"Entrar a la Administración";s:52:"Please enter your admin username and password below.";s:49:"Debes escribir un nombre de usuario y contraseña.";s:9:"Username:";s:8:"Usuario:";s:9:"Password:";s:11:"Contraseña:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:15:"Galería añadida";s:4:"edit";s:0:"";s:6:"delete";s:15:"Eliminar imagen";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:22:"Seleccione una opción:";s:27:"Manage galleries and images";s:31:"Administrar galerías e imagenes";s:17:"View gallery hits";s:20:"Ver hits a galerías";s:15:"Change password";s:18:"Cambiar contraseña";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:33:"Eliminar vistas previas del cache";s:16:"Log out of admin";s:14:"Salir de admin";s:11:"new gallery";s:13:"nueva galería";s:11:"Identifier:";s:14:"Identificador:";s:9:"new image";s:12:"nueva imagen";s:74:"This image will not be visible because this gallery contains subgalleries.";s:0:"";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:26:"Archivo de imagen a subir:";s:30:"Use filename of uploaded file.";s:34:"Usar el nombre del archivo subido.";s:27:"Specify different filename:";s:42:"Especificar un nombre de archivo distinto:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:26:"Archivo de imagen a subir:";s:15:"Add remote file";s:14:"Archivo remoto";s:13:"URL of image:";s:17:"URL de la imagen:";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:9:"LANGUAGE ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.et.pmo |
---|
0,0 → 1,5 |
a:138:{s:53:"You do not have permission to perform this operation.";s:36:"Puuduvad õigused selleks tegevuseks.";s:13:"Gallery added";s:15:"Galerii lisatud";s:18:"An error occurred:";s:12:"Tekkis viga:";s:11:"Image added";s:12:"Pilt lisatud";s:22:"Archive contents added";s:20:"Arhiivi sisu lisatud";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:17:"Pisipilt muudetud";s:14:"confirm|Cancel";s:5:"Loobu";s:15:"Gallery deleted";s:18:"Galerii kustutatud";s:14:"delete gallery";s:15:"kustuta galerii";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:109:"Galerii %s ei ole tühi. |
Oled kindel, et soovid igaveseks kustutada selle, kõik alamgaleriid ja pildid nendes?";s:13:"Image deleted";s:15:"Pilt kustutatud";s:12:"delete image";s:12:"kustuta pilt";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:66:"Oled kindel, et soovid igaveseks kustutadad pildi %s galeriist %s?";s:12:"User deleted";s:19:"Kasutaja kustutatud";s:11:"delete user";s:16:"kustuta kasutaja";s:52:"Are you sure you want to permanently delete user %s?";s:55:"Oled kindel, et soovid lõplikult kustutada kasutaja %s?";s:27:"Welcome to singapore admin!";s:35:"Tere tulemast singapore haldusesse!";s:22:"Thank you and goodbye!";s:23:"Tänan sind ja nägemist!";s:22:"Thumbnail cache purged";s:32:"Pisipiltide vahemälu tühjendatud";s:23:"purge cached thumbnails";s:31:"Tühjenda vahemälu pisipiltidest";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:61:"Oled kindel, et soovid kustutada kõik %s vahemälu pisipildid?";s:36:"Gallery re-indexed. %s images added.";s:45:"Galerii on reindekseeritud. %s pilti lisatud.";s:18:"Gallery info saved";s:24:"Galerii info salvestatud";s:24:"Image saved successfully";s:28:"Pildid salvestamine õnnestus";s:14:"Password saved";s:18:"Parool salvestatud";s:17:"Permissions saved";s:19:"Õigused salvestatud";s:15:"User info saved";s:25:"Kasutaja info salvestatud";s:14:"admin bar|Back";s:6:"Tagasi";s:15:"admin bar|Admin";s:5:"Halda";s:19:"admin bar|Galleries";s:9:"Galleriid";s:17:"admin bar|Log out";s:10:"Logi välja";s:22:"admin bar|Edit gallery";s:15:"Muuda galleriid";s:26:"admin bar|Edit permissions";s:12:"Muuda õigusi";s:24:"admin bar|Delete gallery";s:15:"Kustuta galerii";s:24:"admin bar|New subgallery";s:15:"Uus alamgalerii";s:26:"admin bar|Re-index gallery";s:20:"Reindekseeri galerii";s:20:"admin bar|Edit image";s:11:"Muuda pilti";s:22:"admin bar|Delete image";s:12:"Kustuta pilt";s:19:"admin bar|New image";s:8:"Uus pilt";s:24:"Could not save user info";s:37:"Kasutajainfo salvestamine ebaõnnestus";s:54:"New password must be between 6 and 16 characters long.";s:41:"Uus parool peab olema 6 kuni 16 sümbolit.";s:43:"The new passwords you entered do not match.";s:45:"Sisestatud uued parool ei kattu teineteisega.";s:72:"The current password you entered does not match the one in the database.";s:56:"Sisestatud praegune parool ei kattu andmebaasis olevaga.";s:53:"The username specified was not found in the database.";s:42:"Antud kasutajanimi ei leitud andmebaasist.";s:31:"Your account has been suspended";s:24:"Kasutajanimi on peatatud";s:34:"Username and/or password incorrect";s:34:"Kasutajanimi ja/või parool on vale";s:38:"You must enter a username and password";s:38:"Pead sisestama kasutajanime ja parooli";s:27:"Could not save gallery info";s:37:"Galerii info salvestamine ebaõnnestus";s:23:"Username already exists";s:27:"Kasutajanimi on juba olemas";s:31:"Cannot delete built in accounts";s:42:"Vaikimisi kasutajanimesid ei saa kustutada";s:23:"Username not recognised";s:24:"Kasutajanimi on tundmatu";s:22:"Gallery already exists";s:22:"Galerii on juba olemas";s:26:"Could not create directory";s:29:"Kataloogi loomine ebaõnnestus";s:37:"Cannot delete the top level directory";s:37:"Tipptaseme kataloogi ei saa kustutada";s:19:"File already exists";s:19:"Fail on juba olemas";s:21:"Could not upload file";s:31:"Faili üleslaadimine ebaõnnestus";s:30:"Could not add image to gallery";s:37:"Pildi lisamine galeriisse ebaõnnestus";s:38:"Could not find temporary storage space";s:39:"Ajutuse kettapinna leidmine ebaõnnestus";s:28:"Could not decompress archive";s:35:"Arhiivi lahti pakkimine ebaõnnestus";s:40:"Some archive contents could not be added";s:32:"Osa arhiivi sisust ei saa lisada";s:32:"Could not save image information";s:45:"Pildi informatsiooni salvestamine ebaõnnestus";s:22:"Could not delete image";s:29:"Pildi kustutamine ebaõnnestus";s:16:"choose thumbnail";s:13:"vali pisipilt";s:64:"Choose the filename of the image used to represent this gallery.";s:65:"Vali pildi faili nimi millist kasutada selle galerii esitlemisel.";s:14:"thumbnail|None";s:6:"Puudub";s:16:"thumbnail|Random";s:8:"Juhuslik";s:12:"edit gallery";s:14:"muuda galeriid";s:9:"Thumbnail";s:8:"Pisipilt";s:16:"Random |
thumbnail";s:17:"Juhuslik |
pisipilt";s:19:"thumbnail|Change...";s:8:"Muuda...";s:12:"Gallery name";s:12:"Galerii nimi";s:11:"Artist name";s:11:"Autori nimi";s:7:"Summary";s:9:"Kokkuvõte";s:10:"edit image";s:11:"muuda pilti";s:5:"Image";s:4:"Pilt";s:10:"Image name";s:10:"Pildi nimi";s:15:"change password";s:12:"muuda parool";s:67:"Please choose a new password between 6 and 16 characters in length.";s:51:"Palun vali uus parool vahemikus 6 kuni 16 sümbolit.";s:17:"Current password:";s:16:"Praegune parool:";s:13:"New password:";s:11:"Uus parool:";s:17:"Confirm password:";s:15:"Kinnita parool:";s:16:"edit permissions";s:12:"muuda õigusi";s:5:"Owner";s:6:"Omanik";s:6:"Groups";s:6:"Grupid";s:17:"Group permissions";s:13:"Grupi õigused";s:16:"permissions|Read";s:8:"Lugemine";s:16:"permissions|Edit";s:8:"Muutmine";s:15:"permissions|Add";s:8:"Lisamine";s:18:"permissions|Delete";s:11:"Kustutamine";s:17:"World permissions";s:13:"Kõigi õigused";s:15:"user management";s:18:"kasutaja haldamine";s:8:"Username";s:12:"Kasutajanimi";s:4:"Type";s:4:"Tüüp";s:13:"Administrator";s:14:"Administraator";s:4:"User";s:8:"Kasutaja";s:9:"Full name";s:12:"Täielik nimi";s:8:"Password";s:6:"Parool";s:22:"admin bar|View gallery";s:14:"Vaata galeriid";s:26:"admin bar|Change thumbnail";s:15:"Muuda pisipilti";s:16:"hits table|Graph";s:7:"Graafik";s:15:"hits table|Hits";s:9:"Päringuid";s:19:"hits table|Last hit";s:14:"Viimane päring";s:14:"Admin message:";s:22:"Administraatori teade:";s:6:"log in";s:10:"logi sisse";s:52:"Please enter your admin username and password below.";s:60:"Palun sisesta haldamiseks kasutajanimi ja parool järgnevalt.";s:9:"Username:";s:13:"Kasutajanimi:";s:9:"Password:";s:7:"Parool:";s:61:"If you do not have a username then you may log in as a guest.";s:60:"Kui sul pole kasutajanime siis võid logida sisse külalisena.";s:49:"You must be an administrator to access this area.";s:58:"Pead olema administraator saamaks ligipääsu sellele alale.";s:6:"Email:";s:16:"E-posti aadress:";s:10:"Full name:";s:13:"Täielik nimi:";s:4:"edit";s:5:"muuda";s:6:"delete";s:7:"kustuta";s:7:"suspend";s:9:"passiivne";s:9:"unsuspend";s:8:"aktiivne";s:15:"create new user";s:16:"loo uus kasutaja";s:24:"Please choose an option:";s:16:"Palun tee valik:";s:27:"Manage galleries and images";s:25:"Halda galeriisid ja pilte";s:17:"View gallery hits";s:23:"Vaata galerii päringuid";s:15:"Change password";s:12:"Muuda parool";s:10:"My profile";s:12:"Minu profiil";s:12:"Manage users";s:16:"Halda kasutajaid";s:23:"Purge cached thumbnails";s:31:"Tühjenda vahemälu pisipiltidest";s:16:"Log out of admin";s:20:"Logi välja haldusest";s:11:"new gallery";s:11:"uus galerii";s:11:"Identifier:";s:15:"Identifikaator:";s:9:"new image";s:8:"uus pilt";s:74:"This image will not be visible because this gallery contains subgalleries.";s:60:"See pilt ei ole nähtav kuna galerii sisaldab alamgaleriisid.";s:18:"Upload single file";s:19:"Lae üles üksik fail";s:21:"Image file to upload:";s:28:"Pildi fail üles laadimiseks:";s:30:"Use filename of uploaded file.";s:39:"Kasuta faili nime üles laetud failidel.";s:27:"Specify different filename:";s:23:"Määra erinev failinimi:";s:21:"Upload multiple files";s:21:"Laadi üles mitu faili";s:19:"ZIP file to upload:";s:26:"ZIP fail üles laadimiseks:";s:15:"Add remote file";s:17:"Lisa fail võrgust";s:13:"URL of image:";s:10:"Pildi URL:";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:16:"Estonian (Eesti)";s:6:"plural";s:30:"$nplurals=2;$plural=($n != 1);";}} |
/photogallery/locale/singapore.admin.fr.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:14:"Galerie ajouté";s:18:"An error occurred:";s:7:"Erreur:";s:11:"Image added";s:12:"Image ajouté";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:15:"Vignette changé";s:14:"confirm|Cancel";s:7:"Annuler";s:15:"Gallery deleted";s:15:"Galerie suprimé";s:14:"delete gallery";s:19:"suprimer la galerie";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:93:"Gallerie %s n'est pas vide. |
Êtes vous sûr que vous voulez la suprimer avec tout son contenu ?";s:13:"Image deleted";s:13:"Image suprimé";s:12:"delete image";s:17:"supprimer l'image";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:68:"Êtes vous sûr que vous voulez suprimer l'image %s de la galerie %s ?";s:12:"User deleted";s:15:"Galerie suprimé";s:11:"delete user";s:19:"suprimer la galerie";s:52:"Are you sure you want to permanently delete user %s?";s:68:"Êtes vous sûr que vous voulez suprimer l'image %s de la galerie %s ?";s:27:"Welcome to singapore admin!";s:29:"Bienvenue à singapore admin !";s:22:"Thank you and goodbye!";s:20:"Merci et au revoir !";s:22:"Thumbnail cache purged";s:24:"Cache de vignette purger";s:23:"purge cached thumbnails";s:47:"Purger les vignettes enregistrées dans le cache";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:90:"Êtes vous sûr que vous voulez suprimer toutes les %s vignettes enregistrer dans le cache ?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:17:"Galerie sauvgardé";s:24:"Image saved successfully";s:15:"Image sauvgardé";s:14:"Password saved";s:22:"Mot de passe sauvgardé";s:17:"Permissions saved";s:22:"Mot de passe sauvgardé";s:15:"User info saved";s:17:"Galerie sauvgardé";s:14:"admin bar|Back";s:6:"Retour";s:15:"admin bar|Admin";s:14:"Administration";s:19:"admin bar|Galleries";s:8:"Galeries";s:17:"admin bar|Log out";s:11:"Déconnexion";s:22:"admin bar|Edit gallery";s:14:"Editer Galerie";s:26:"admin bar|Edit permissions";s:14:"Editer Galerie";s:24:"admin bar|Delete gallery";s:15:"Effacer Galerie";s:24:"admin bar|New subgallery";s:21:"Nouvelle Sous-Galerie";s:26:"admin bar|Re-index gallery";s:15:"Effacer Galerie";s:20:"admin bar|Edit image";s:12:"Editer Image";s:22:"admin bar|Delete image";s:13:"Effacer Image";s:19:"admin bar|New image";s:14:"Nouvelle Image";s:24:"Could not save user info";s:50:"Impossible de sauvegarder les infos sur la Galerie";s:54:"New password must be between 6 and 16 characters long.";s:59:"Le nouveau mot de passe doit contenir de 6 à 16 caractères.";s:43:"The new passwords you entered do not match.";s:48:"Le nouveau mot de passe entré ne correspond pas.";s:72:"The current password you entered does not match the one in the database.";s:72:"Le mot de passe entré ne correspond pas à celui enregistré dans la base.";s:53:"The username specified was not found in the database.";s:51:"L'identifiant spécifié est introuvable dans la base";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:41:"Identifiant et/ou mot de passe incorrects";s:38:"You must enter a username and password";s:51:"Vous devez entrer un identifiant et un mot de passe";s:27:"Could not save gallery info";s:50:"Impossible de sauvegarder les infos sur la Galerie";s:23:"Username already exists";s:22:"Le fichier existe déjà";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:22:"La galerie existe déjà";s:26:"Could not create directory";s:30:"Impossible de créer un dossier";s:37:"Cannot delete the top level directory";s:41:"Impossible d'effacer le dossier principal";s:19:"File already exists";s:22:"Le fichier existe déjà";s:21:"Could not upload file";s:28:"Impossible d'effacer l'image";s:30:"Could not add image to gallery";s:41:"Impossible d'ajouter l'image à la galerie";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:28:"Impossible d'effacer l'image";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:54:"Impossible de sauvegarder les informations sur l'image";s:22:"Could not delete image";s:28:"Impossible d'effacer l'image";s:17:"Select gallery...";s:19:"suprimer la galerie";s:16:"choose thumbnail";s:20:"Choisir une vignette";s:64:"Choose the filename of the image used to represent this gallery.";s:53:"Choisir le fichier image pour représenter la galerie.";s:14:"thumbnail|None";s:8:"Aucun(e)";s:16:"thumbnail|Random";s:9:"Aléatoire";s:12:"edit gallery";s:17:"Editer la Galerie";s:9:"Thumbnail";s:8:"Aucun(e)";s:16:"Random |
thumbnail";s:18:"Vignette |
aléatoire";s:19:"thumbnail|Change...";s:10:"Changer...";s:12:"Gallery name";s:5:"Titre";s:11:"Artist name";s:16:"Nom de l'artiste";s:7:"Summary";s:0:"";s:10:"edit image";s:14:"Editer l'image";s:5:"Image";s:5:"Image";s:10:"Image name";s:5:"Titre";s:15:"change password";s:23:"Changer le mot de passe";s:67:"Please choose a new password between 6 and 16 characters in length.";s:59:"Choisissez un mot de passe comprenant de 6 à 16 caractères.";s:17:"Current password:";s:20:"Mot de passe actuel:";s:13:"New password:";s:21:"Nouveau mot de passe:";s:17:"Confirm password:";s:26:"Confirmer le mot de passe:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:12:"Identifiant:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:12:"Identifiant:";s:9:"Full name";s:5:"Titre";s:8:"Password";s:13:"Mot de passe:";s:22:"admin bar|View gallery";s:21:"Nouvelle Sous-Galerie";s:26:"admin bar|Change thumbnail";s:21:"Nouvelle Sous-Galerie";s:16:"hits table|Graph";s:0:"";s:15:"hits table|Hits";s:0:"";s:19:"hits table|Last hit";s:0:"";s:14:"Admin message:";s:15:"Message admin :";s:6:"log in";s:9:"Connexion";s:52:"Please enter your admin username and password below.";s:51:"Vous devez entrer un identifiant et un mot de passe";s:9:"Username:";s:12:"Identifiant:";s:9:"Password:";s:13:"Mot de passe:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:5:"Titre";s:4:"edit";s:0:"";s:6:"delete";s:17:"supprimer l'image";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:21:"Choisissez une option";s:27:"Manage galleries and images";s:30:"Gestion des galeries et Images";s:17:"View gallery hits";s:35:"Voir le nombre de hits des galeries";s:15:"Change password";s:23:"Changer le mot de passe";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:47:"Purger les vignettes enregistrées dans le cache";s:16:"Log out of admin";s:26:"Déconnexion administration";s:11:"new gallery";s:16:"Nouvelle galerie";s:11:"Identifier:";s:8:"Nommage:";s:9:"new image";s:14:"Nouvelle image";s:74:"This image will not be visible because this gallery contains subgalleries.";s:80:"Cette image ne sera pas visible parce que la galerie contient des sous-galeries.";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:28:"Fichier Image à télécharger:";s:30:"Use filename of uploaded file.";s:38:"Utiliser le nom du fichier téléchargé.";s:27:"Specify different filename:";s:35:"Choisissez un autre nom de fichier:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:28:"Fichier Image à télécharger:";s:15:"Add remote file";s:15:"Fichier distant";s:13:"URL of image:";s:25:"Adresse (URL) de l'image:";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:7:"French ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.hr.pmo |
---|
0,0 → 1,5 |
a:142:{s:53:"You do not have permission to perform this operation.";s:32:"Nemate pravo pokrenuti operaciju";s:13:"Gallery added";s:15:"Galerija dodana";s:18:"An error occurred:";s:6:"Greka";s:11:"Image added";s:12:"Slika dodana";s:22:"Archive contents added";s:20:"Dodan sadraj arhive";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:17:"Ikona promjenjena";s:14:"confirm|Cancel";s:8:"Odustani";s:15:"Gallery deleted";s:17:"Galerija obrisana";s:14:"delete gallery";s:15:"obrii galeriju";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:110:"Galerija %s nije prazna. |
Da li ste sigurni da elite nepovratno obrisati cijeli sadraj - podgalerije i slike";s:13:"Image deleted";s:14:"Slika obrisana";s:12:"delete image";s:12:"obrii sliku";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:72:"Da li ste sigurni da elite nepovratno obrisati sliku %s iz galerije %s?";s:12:"User deleted";s:16:"Korisnik obrisan";s:11:"delete user";s:16:"obrii korisnika";s:52:"Are you sure you want to permanently delete user %s?";s:60:"Da li ste sigurni da elite nepovratno obrisati korisnika %s";s:27:"Welcome to singapore admin!";s:47:"Dobrodoli u administratorsko su?elje galerije!";s:22:"Thank you and goodbye!";s:22:"Hvala i lijep pozdrav!";s:22:"Thumbnail cache purged";s:19:"Obrisan cache ikona";s:23:"purge cached thumbnails";s:22:"obrii ikone u cache-u";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:55:"Da li ste sigurni da elite obrisati cache-irane ikone?";s:36:"Gallery re-indexed. %s images added.";s:43:"Galerija je reindeksirana. %s slika dodano.";s:18:"Gallery info saved";s:35:"Informacije o galeriji su snimljene";s:16:"Image info saved";s:30:"Informacije slike su snimljene";s:14:"Password saved";s:17:"Lozinka snimljena";s:17:"Permissions saved";s:17:"Dozvole snimljene";s:15:"User info saved";s:32:"Korisni?ke informacije snimljene";s:14:"admin bar|Back";s:5:"Nazad";s:15:"admin bar|Admin";s:13:"Administrator";s:19:"admin bar|Galleries";s:8:"Galerije";s:17:"admin bar|Log out";s:17:"Odjava sa sustava";s:22:"admin bar|Edit gallery";s:14:"Uredi galeriju";s:26:"admin bar|Edit permissions";s:13:"Uredi dozvole";s:24:"admin bar|Delete gallery";s:15:"Obrii galeriju";s:24:"admin bar|New subgallery";s:16:"Nova podgalerija";s:26:"admin bar|Re-index gallery";s:21:"Reindeksiraj galeriju";s:20:"admin bar|Edit image";s:11:"Uredi sliku";s:22:"admin bar|Delete image";s:12:"Obrii sliku";s:19:"admin bar|New image";s:10:"Nova slika";s:24:"Could not save user info";s:43:"Nemogu?nost pohrane korisni?kih informacija";s:54:"New password must be between 6 and 16 characters long.";s:50:"Nova lozinka mora biti duga izmeu 6 i 16 znakova.";s:43:"The new passwords you entered do not match.";s:46:"Nove lozinke koje ste upisali se ne poklapaju.";s:72:"The current password you entered does not match the one in the database.";s:50:"Upisana lozinka se ne poklapa sa lozinkom iz baze.";s:53:"The username specified was not found in the database.";s:41:"Upisano korisni?ko ime ne postoji u bazi.";s:31:"Your account has been suspended";s:45:"Va korisni?ki ra?un je privremeno onemogu?en";s:34:"Username and/or password incorrect";s:35:"Korisni?ko ime/ili lozinka pogreno";s:38:"You must enter a username and password";s:39:"Morate upisati korisni?ko ime i lozinku";s:27:"Could not save gallery info";s:42:"Nemogu?nost pohrane informacija o galeriji";s:23:"Username already exists";s:26:"Korisni?ko ime ve? postoji";s:31:"Cannot delete built in accounts";s:48:"Nemogu?nost brisanja ugra?enih korisni?kih imena";s:23:"Username not recognised";s:30:"Korisni?ko ime nije prepoznato";s:22:"Gallery already exists";s:20:"Galerija ve? postoji";s:26:"Could not create directory";s:40:"Nemogu?nost kreiranja mape (direktorija)";s:37:"Cannot delete the top level directory";s:45:"Nemogu?nost brisanja vrne mape (direktorija)";s:19:"File already exists";s:20:"Datoteka ve? postoji";s:21:"Could not upload file";s:43:"Nemogu?nost preuzimanja datoteke (upload-a)";s:30:"Could not add image to gallery";s:38:"Nemogu?nost dodavanja slike u galeriju";s:38:"Could not find temporary storage space";s:35:"Nema prostora za privremenu pohranu";s:28:"Could not decompress archive";s:31:"Nemogu?nost dekompresije arhive";s:40:"Some archive contents could not be added";s:44:"Neki od sadraja iz arhive se ne moe dodati";s:32:"Could not save image information";s:39:"Nemogu?nost pohrane informacija o slici";s:22:"Could not delete image";s:26:"Nemogu?nost brisanja slike";s:16:"choose thumbnail";s:13:"odaberi ikonu";s:64:"Choose the filename of the image used to represent this gallery.";s:59:"Odaberi ime datoteke od slike koja ?e prezentirati galeriju";s:14:"thumbnail|None";s:7:"Nijedan";s:16:"thumbnail|Random";s:8:"Slu?ajan";s:12:"edit gallery";s:14:"uredi galeriju";s:9:"Thumbnail";s:5:"Ikona";s:16:"Random |
thumbnail";s:15:"Slu?ajna |
ikona";s:19:"thumbnail|Change...";s:11:"Promjeni...";s:12:"Gallery name";s:12:"Ime galerije";s:11:"Artist name";s:13:"Ime umjetnika";s:7:"Summary";s:7:"Saetak";s:12:"Save Changes";s:14:"Snimi promjene";s:10:"edit image";s:11:"uredi sliku";s:5:"Image";s:5:"Slika";s:10:"Image name";s:9:"Ime slike";s:15:"change password";s:16:"promjeni lozinku";s:67:"Please choose a new password between 6 and 16 characters in length.";s:60:"Molimo odaberite novu lozinku duljine izme?u 6 i 16 znakova.";s:17:"Current password:";s:17:"Sadanja lozinka:";s:13:"New password:";s:13:"Nova lozinka:";s:17:"Confirm password:";s:21:"Potvrda nove lozinke:";s:16:"edit permissions";s:13:"uredi dozvole";s:5:"Owner";s:7:"Vlasnik";s:6:"Groups";s:5:"Grupe";s:17:"Group permissions";s:13:"Dozvole grupe";s:16:"permissions|Read";s:7:"?itanje";s:16:"permissions|Edit";s:10:"Ure?ivanje";s:15:"permissions|Add";s:9:"Dodavanje";s:18:"permissions|Delete";s:8:"Brisanje";s:17:"World permissions";s:13:"Javne dozvole";s:10:"my profile";s:10:"moj profil";s:8:"Username";s:14:"Korisni?ko ime";s:9:"Full name";s:13:"Ime i prezime";s:15:"user management";s:20:"ure?ivanje korisnika";s:4:"Type";s:3:"Tip";s:13:"Administrator";s:13:"Administrator";s:4:"User";s:8:"Korisnik";s:8:"Password";s:7:"Lozinka";s:22:"admin bar|View gallery";s:16:"Pregled galerije";s:26:"admin bar|Change thumbnail";s:14:"Promjeni ikonu";s:16:"hits table|Graph";s:4:"Graf";s:15:"hits table|Hits";s:8:"Zahtjevi";s:19:"hits table|Last hit";s:14:"Zadnji zahtjev";s:14:"Admin message:";s:22:"Poruka administratora:";s:6:"log in";s:16:"prijava u sustav";s:52:"Please enter your admin username and password below.";s:53:"Unesite vae administratorko korisni?ko ime i lozinku";s:9:"Username:";s:15:"Korisni?ko ime:";s:9:"Password:";s:8:"Lozinka:";s:61:"If you do not have a username then you may log in as a guest.";s:63:"Ako nemate korisni?ko ime, moete se prijaviti kao gost (guest)";s:15:"Log in as guest";s:24:"Prijava kao gost (guest)";s:49:"You must be an administrator to access this area.";s:45:"Morate biti administrator za pristup sadraju";s:6:"Email:";s:6:"Email:";s:10:"Full name:";s:14:"Ime i prezime:";s:4:"edit";s:5:"uredi";s:6:"delete";s:6:"obrii";s:7:"suspend";s:20:"privremeno onemogu?i";s:9:"unsuspend";s:7:"omogu?i";s:15:"create new user";s:25:"kreiranje novog korisnika";s:6:"Create";s:7:"Kreiraj";s:24:"Please choose an option:";s:17:"Odaberite opciju:";s:27:"Manage galleries and images";s:27:"Ure?ivanje galerija i slika";s:17:"View gallery hits";s:16:"Pregled zahtjeva";s:15:"Change password";s:16:"Promjena lozinke";s:10:"My profile";s:10:"Moj profil";s:12:"Manage users";s:20:"Ure?ivanje korisnika";s:23:"Purge cached thumbnails";s:24:"Obrii cache-irane ikone";s:16:"Log out of admin";s:21:"Odjava administratora";s:11:"new gallery";s:13:"nova galerija";s:11:"Identifier:";s:23:"Identifikacijska oznaka";s:9:"new image";s:10:"nova slika";s:97:"This image will not be visible because this gallery is not an album: it contains child galleries.";s:61:"Slika ne?e biti vidljiva jer ova galerija sadri podgalerije.";s:18:"Upload single file";s:23:"Prijenos jedne datoteke";s:21:"Image file to upload:";s:18:"Slika za transfer:";s:30:"Use filename of uploaded file.";s:35:"Koristi ime transferirane datoteke.";s:27:"Specify different filename:";s:23:"Promjena imena datoteke";s:21:"Upload multiple files";s:22:"Prijenos vie datoteka";s:19:"ZIP file to upload:";s:23:"ZIP arhiva za prijenos:";s:15:"Add remote file";s:37:"Dodaj datoteku sa drugog posluitelja";s:13:"URL of image:";s:10:"URL slike:";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:19:"Croatian (Hrvatski)";s:6:"plural";s:107:"$nplurals=3;$plural=$n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2;";}} |
/photogallery/locale/singapore.admin.hu.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:17:"Galéria hozzáadva";s:18:"An error occurred:";s:16:"Hiba lépett fel:";s:11:"Image added";s:13:"Kép hozzáadva";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:7:"Rendben";s:17:"Thumbnail changed";s:21:"Elõnézet megváltozott";s:14:"confirm|Cancel";s:6:"Mégsem";s:15:"Gallery deleted";s:15:"Galéria törölve";s:14:"delete gallery";s:15:"Galéria törlése";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:107:"A galéria nem üres. |
Biztos, hogy visszavonhatatlanul törlöd a benne levõ al-galériákkal és képekkel együtt?";s:13:"Image deleted";s:11:"Kép törölve";s:12:"delete image";s:11:"Kép törlése";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:79:"Biztos, hogy visszavonhatatlanul törlöd a %2$s galériában található %1$s képet?";s:12:"User deleted";s:15:"Galéria törölve";s:11:"delete user";s:15:"Galéria törlése";s:52:"Are you sure you want to permanently delete user %s?";s:79:"Biztos, hogy visszavonhatatlanul törlöd a %2$s galériában található %1$s képet?";s:27:"Welcome to singapore admin!";s:51:"Isten hozott a singapore adminisztrációs felületen!";s:22:"Thank you and goodbye!";s:15:"Kösz és viszlát";s:22:"Thumbnail cache purged";s:20:"Elõnézet tár törölve";s:23:"purge cached thumbnails";s:25:"Tárolt elõnézetek törlése";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:53:"Biztos, hogy törlöd az összes (%s) tárolt elõnézetet?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:28:"Galéria-információk elmentve";s:24:"Image saved successfully";s:19:"Kép sikeres mentése";s:14:"Password saved";s:13:"Jelszó mentve";s:17:"Permissions saved";s:13:"Jelszó mentve";s:15:"User info saved";s:28:"Galéria-információk elmentve";s:14:"admin bar|Back";s:6:"Vissza";s:15:"admin bar|Admin";s:14:"Adminisztráció";s:19:"admin bar|Galleries";s:8:"Galériák";s:17:"admin bar|Log out";s:13:"Kijelentkezés";s:22:"admin bar|Edit gallery";s:20:"Galéria szerkesztése";s:26:"admin bar|Edit permissions";s:20:"Galéria szerkesztése";s:24:"admin bar|Delete gallery";s:15:"Galéria törlése";s:24:"admin bar|New subgallery";s:13:"Új al-galéria";s:26:"admin bar|Re-index gallery";s:15:"Galéria törlése";s:20:"admin bar|Edit image";s:16:"Kép szerkesztése";s:22:"admin bar|Delete image";s:11:"Kép törlése";s:19:"admin bar|New image";s:6:"Új kép";s:24:"Could not save user info";s:35:"Nem menthetõk a galéria-információk";s:54:"New password must be between 6 and 16 characters long.";s:60:"Az új jelszó hosszúságának 6 és 16 karakter közé kell esnie.";s:43:"The new passwords you entered do not match.";s:34:"A megadott jelszavak nem egyeznek.";s:72:"The current password you entered does not match the one in the database.";s:54:"A megadott jelszó nem egyezik az adatbázisban levõvel.";s:53:"The username specified was not found in the database.";s:55:"A megadott felhasználónév nem szerepel az adatbázisban.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:41:"Érvénytelen felhasználónév és/vagy jelszó";s:38:"You must enter a username and password";s:46:"Meg kell adnod a felhasználónevet és a jelszót";s:27:"Could not save gallery info";s:35:"Nem menthetõk a galéria-információk";s:23:"Username already exists";s:15:"Már létezõ fájl";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:21:"A galéria már létezik";s:26:"Could not create directory";s:28:"A könyvtár nem hozható létre";s:37:"Cannot delete the top level directory";s:41:"A legelsõbb szintû könyvtár nem törölhetõ";s:19:"File already exists";s:15:"Már létezõ fájl";s:21:"Could not upload file";s:20:"Fájl-feltöltési hiba";s:30:"Could not add image to gallery";s:29:"A kép nem adható a galériához";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:19:"A kép nem törölhetõ";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:29:"A kép-információ nem menthetõ";s:22:"Could not delete image";s:19:"A kép nem törölhetõ";s:17:"Select gallery...";s:15:"Galéria törlése";s:16:"choose thumbnail";s:18:"Válassz elõnézetet";s:64:"Choose the filename of the image used to represent this gallery.";s:49:"A galéria ábrázolásához használt kép kiválasztása";s:14:"thumbnail|None";s:5:"Nincs";s:16:"thumbnail|Random";s:8:"Véletlen";s:12:"edit gallery";s:20:"Galéria szerkesztése";s:9:"Thumbnail";s:5:"Nincs";s:16:"Random |
thumbnail";s:17:"Véletlen |
elõnézet";s:19:"thumbnail|Change...";s:12:"Változtat...";s:12:"Gallery name";s:12:"Galéria neve";s:11:"Artist name";s:11:"Szerzõ neve";s:7:"Summary";s:0:"";s:10:"edit image";s:16:"Kép szerkesztése";s:5:"Image";s:3:"Kép";s:10:"Image name";s:8:"Kép neve";s:15:"change password";s:22:"Jelszó megváltoztatása";s:67:"Please choose a new password between 6 and 16 characters in length.";s:64:"Új jelszó megadása. (Hosszúsága 6 és 16 karakter között legyen.)";s:17:"Current password:";s:17:"Jelenlegi jelszó:";s:13:"New password:";s:10:"Új jelszó:";s:17:"Confirm password:";s:20:"Jelszó megerõsítése:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:15:"Felhasználónév:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:15:"Felhasználónév:";s:9:"Full name";s:12:"Galéria neve";s:8:"Password";s:15:"Felhasználónév:";s:22:"admin bar|View gallery";s:13:"Új al-galéria";s:26:"admin bar|Change thumbnail";s:13:"Új al-galéria";s:16:"hits table|Graph";s:0:"";s:15:"hits table|Hits";s:0:"";s:19:"hits table|Last hit";s:0:"";s:14:"Admin message:";s:0:"";s:6:"log in";s:14:"Adminisztráció";s:52:"Please enter your admin username and password below.";s:46:"Meg kell adnod a felhasználónevet és a jelszót";s:9:"Username:";s:15:"Felhasználónév:";s:9:"Password:";s:15:"Felhasználónév:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:12:"Galéria neve";s:4:"edit";s:0:"";s:6:"delete";s:11:"Kép törlése";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:17:"Opció választása:";s:27:"Manage galleries and images";s:30:"Galériák és képek szerkesztése";s:17:"View gallery hits";s:22:"Galéria látogatottsága";s:15:"Change password";s:22:"Jelszó megváltoztatása";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:25:"Tárolt elõnézetek törlése";s:16:"Log out of admin";s:29:"Adminisztrátori kijelentkezés";s:11:"new gallery";s:10:"Új galéria";s:11:"Identifier:";s:10:"Azonosító:";s:9:"new image";s:6:"Új kép";s:74:"This image will not be visible because this gallery contains subgalleries.";s:0:"";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:21:"Feltöltendõ állomány:";s:30:"Use filename of uploaded file.";s:37:"A feltöltött fájl nevének megtartása.";s:27:"Specify different filename:";s:26:"Eltérõ fájlnév használata:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:21:"Feltöltendõ állomány:";s:15:"Add remote file";s:11:"Távoli fájl";s:13:"URL of image:";s:11:"Kép URL-je:";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:10:"Hungarian ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.is.pmo |
---|
0,0 → 1,5 |
a:142:{s:53:"You do not have permission to perform this operation.";s:60:"Þú hefur ekki réttindi til að framkvæma þess aðgerð.";s:13:"Gallery added";s:21:"Myndasafni bætt við";s:18:"An error occurred:";s:14:"Villa kom upp:";s:11:"Image added";s:19:"Mynd var bætt við";s:22:"Archive contents added";s:45:"Innihaldi safnskráar hefur verið bætt við";s:10:"confirm|OK";s:7:"Í lagi";s:17:"Thumbnail changed";s:15:"Smámynd breytt";s:14:"confirm|Cancel";s:11:"Hætta við";s:15:"Gallery deleted";s:15:"Myndasafni eytt";s:14:"delete gallery";s:16:"eyða myndasafni";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:134:"Myndasafnið '%s' er ekki tómt. |
Ertu viss um að þú viljir eyða því og öllum undir-myndasöfnum og myndum sem það inniheldur?";s:13:"Image deleted";s:9:"Mynd eytt";s:12:"delete image";s:10:"eyða mynd";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:91:"Ertu viss um að þú viljir eyða myndinni '%s' úr myndasafninu '%s' fyrir fullt og allt?";s:12:"User deleted";s:12:"Notanda eytt";s:11:"delete user";s:13:"eyða notanda";s:52:"Are you sure you want to permanently delete user %s?";s:69:"Ertu viss um að þú viljir eyða notandanum %s fyrir fullt og allt?";s:27:"Welcome to singapore admin!";s:41:"Velkomin(n) í kerfisstjórnun Singapore!";s:22:"Thank you and goodbye!";s:21:"Takk fyrir og bleble!";s:22:"Thumbnail cache purged";s:37:"Flýtiminni fyrir smámyndir var eytt";s:23:"purge cached thumbnails";s:34:"eyða flýtiminni fyrir smámyndir";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:73:"Ertu viss um að þú viljir eyða öllum %s flýtivistuðu smámyndunum?";s:36:"Gallery re-indexed. %s images added.";s:70:"Vísar myndasafns hafa verið endurbyggðir. %s myndum var bætt við.";s:18:"Gallery info saved";s:35:"Upplýsingar um myndasafn vistaðar";s:16:"Image info saved";s:30:"Upplýsingar um mynd vistaðar";s:14:"Password saved";s:17:"Lykilorð vistað";s:17:"Permissions saved";s:19:"Heimildir vistaðar";s:15:"User info saved";s:33:"Upplýsingar um notanda vistaðar";s:14:"admin bar|Back";s:8:"Til baka";s:15:"admin bar|Admin";s:13:"Kerfisstjóri";s:19:"admin bar|Galleries";s:10:"Myndasöfn";s:17:"admin bar|Log out";s:8:"Útskrá";s:22:"admin bar|Edit gallery";s:17:"Breyta myndasafni";s:26:"admin bar|Edit permissions";s:16:"Breyta heimildum";s:24:"admin bar|Delete gallery";s:16:"Eyða myndasafni";s:24:"admin bar|New subgallery";s:21:"Nýtt undir-myndasafn";s:26:"admin bar|Re-index gallery";s:20:"Endurvísa myndasafn";s:20:"admin bar|Edit image";s:11:"Breyta mynd";s:22:"admin bar|Delete image";s:10:"Eyða mynd";s:19:"admin bar|New image";s:8:"Ný mynd";s:24:"Could not save user info";s:40:"Gat ekki vistað upplýsingar um notanda";s:54:"New password must be between 6 and 16 characters long.";s:65:"Nýja lykilorðið verður að vera á milli 6 og 16 stafa langt.";s:43:"The new passwords you entered do not match.";s:50:"Nýju lykilorðin sem þú slóst inn stemma ekki.";s:72:"The current password you entered does not match the one in the database.";s:85:"Lykilorðið sem þú slóst inn stemmir ekki við það sem geymt er í gagnagrunni.";s:53:"The username specified was not found in the database.";s:62:"Notandanafnið sem slegið var inn fannst ekki í gagnagrunni.";s:31:"Your account has been suspended";s:45:"Aðgangsreikningi þínum hefur verið lokað";s:34:"Username and/or password incorrect";s:40:"Notandanafn og/eða lykilorð ekki rétt";s:38:"You must enter a username and password";s:50:"Þú verður að slá inn notandanafn og lykilorð";s:27:"Could not save gallery info";s:42:"Gat ekki vistað upplýsingar um myndasafn";s:23:"Username already exists";s:24:"Notandanafn er til fyrir";s:31:"Cannot delete built in accounts";s:44:"Get ekki eytt innbyggðum aðgangsreikningum";s:23:"Username not recognised";s:20:"Notandanafn óþekkt";s:22:"Gallery already exists";s:23:"Myndasafn er þegar til";s:26:"Could not create directory";s:31:"Gat ekki búið til skráarsafn";s:37:"Cannot delete the top level directory";s:32:"Gat ekki eytt rótarskráarsafni";s:19:"File already exists";s:18:"Skrá er til fyrir";s:21:"Could not upload file";s:19:"Gat ekki sent skrá";s:30:"Could not add image to gallery";s:34:"Gat ekki bætt mynd við myndasafn";s:38:"Could not find temporary storage space";s:37:"Fann ekki tímabundið geymslusvæði";s:28:"Could not decompress archive";s:30:"Gat ekki afþjappað safnskrá";s:40:"Some archive contents could not be added";s:59:"Sumum hlutum safnskráarinnar var ekki hægt að bæta við";s:32:"Could not save image information";s:37:"Gat ekki vistað upplýsingar um mynd";s:22:"Could not delete image";s:18:"Gat ekki eytt mynd";s:16:"choose thumbnail";s:14:"veldu smámynd";s:64:"Choose the filename of the image used to represent this gallery.";s:71:"Veldu skráarnafn myndarinnar sem á að standa fyrir þetta myndasafn.";s:14:"thumbnail|None";s:5:"Engin";s:16:"thumbnail|Random";s:15:"Handahófskennd";s:12:"edit gallery";s:17:"breyta myndasafni";s:9:"Thumbnail";s:8:"Smámynd";s:16:"Random |
thumbnail";s:22:"Smámynd af |
handahófi";s:19:"thumbnail|Change...";s:9:"Breyta...";s:12:"Gallery name";s:15:"Nafn myndasafns";s:11:"Artist name";s:15:"Nafn listamanns";s:7:"Summary";s:9:"Samantekt";s:12:"Save Changes";s:16:"Vista breytingar";s:10:"edit image";s:11:"breyta mynd";s:5:"Image";s:4:"Mynd";s:10:"Image name";s:11:"Nafn myndar";s:15:"change password";s:17:"breyta lykilorði";s:67:"Please choose a new password between 6 and 16 characters in length.";s:69:"Vinsamlega veldu nýtt lykilorð sem er á milli 6 og 16 stafa langt.";s:17:"Current password:";s:21:"Núverandi lykilorð:";s:13:"New password:";s:16:"Nýtt lykilorð:";s:17:"Confirm password:";s:21:"Staðfestu lykilorð:";s:16:"edit permissions";s:16:"breyta heimildum";s:5:"Owner";s:7:"Eigandi";s:6:"Groups";s:6:"Hópar";s:17:"Group permissions";s:15:"Heimildir hópa";s:16:"permissions|Read";s:4:"Lesa";s:16:"permissions|Edit";s:6:"Breyta";s:15:"permissions|Add";s:10:"Bæta við";s:18:"permissions|Delete";s:5:"Eyða";s:17:"World permissions";s:15:"Heims-heimildir";s:10:"my profile";s:17:"Mínar stillingar";s:8:"Username";s:11:"Notandanafn";s:9:"Full name";s:10:"Fullt nafn";s:15:"user management";s:16:"notendastjórnun";s:4:"Type";s:6:"Tegund";s:13:"Administrator";s:15:"Umsjónarmaður";s:4:"User";s:7:"Notandi";s:8:"Password";s:9:"Lykilorð";s:22:"admin bar|View gallery";s:16:"Skoða myndasafn";s:26:"admin bar|Change thumbnail";s:15:"Breyta smámynd";s:16:"hits table|Graph";s:4:"Graf";s:15:"hits table|Hits";s:11:"Heimsóknir";s:19:"hits table|Last hit";s:19:"Síðasta heimsókn";s:14:"Admin message:";s:29:"Skilaboð frá kerfisstjóra:";s:6:"log in";s:8:"innskrá";s:52:"Please enter your admin username and password below.";s:64:"Vinsamlega sláðu inn notandanafn og lykilorð hér að neðan.";s:9:"Username:";s:12:"Notandanafn:";s:9:"Password:";s:10:"Lykilorð:";s:61:"If you do not have a username then you may log in as a guest.";s:70:"Ef þú hefur ekki notandanafn getur þú skráð þig inn sem gestur.";s:15:"Log in as guest";s:19:"Innskrá sem gestur";s:49:"You must be an administrator to access this area.";s:75:"Þú verður að vera umsjónarmaður til að komast inn á þetta svæði.";s:6:"Email:";s:16:"Tölvupóstfang:";s:10:"Full name:";s:11:"Fullt nafn:";s:4:"edit";s:6:"breyta";s:6:"delete";s:5:"eyða";s:7:"suspend";s:4:"loka";s:9:"unsuspend";s:4:"opna";s:15:"create new user";s:23:"búa til nýjan notanda";s:6:"Create";s:8:"Búa til";s:24:"Please choose an option:";s:25:"Vinsamlega veldu valkost:";s:27:"Manage galleries and images";s:27:"Umsjón mynda og myndasafna";s:17:"View gallery hits";s:32:"Skoða heimsóknir í myndasöfn";s:15:"Change password";s:17:"Breyta lykilorði";s:10:"My profile";s:17:"Mínar stillingar";s:12:"Manage users";s:20:"Sýsla með notendur";s:23:"Purge cached thumbnails";s:32:"Eyða flýtivistuðum smámyndum";s:16:"Log out of admin";s:22:"Útskrá kerfisstjóra";s:11:"new gallery";s:15:"nýtt myndasafn";s:11:"Identifier:";s:9:"Einkenni:";s:9:"new image";s:8:"ný mynd";s:97:"This image will not be visible because this gallery is not an album: it contains child galleries.";s:91:"Þessi mynd mun ekki verða sýnileg þar eð þetta myndasafn inniheldur undir-myndasöfn.";s:18:"Upload single file";s:22:"Hlaða upp einni skrá";s:21:"Image file to upload:";s:33:"Myndaskrá sem á að hlaða upp:";s:30:"Use filename of uploaded file.";s:38:"Nota skráarnafn upphlaðinnar skrár.";s:27:"Specify different filename:";s:29:"Tilgreina annað skráarnafn:";s:21:"Upload multiple files";s:25:"Hlaða upp mörgum skrám";s:19:"ZIP file to upload:";s:34:"Safnskrá (ZIP) sem hlaða á upp:";s:15:"Add remote file";s:28:"Bæta við fjarstaddri skrá";s:13:"URL of image:";s:10:"URL myndar";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:10:"Icelandic ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.it.pmo |
---|
0,0 → 1,4 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:22:"La galleria esiste già";s:18:"An error occurred:";s:0:"";s:11:"Image added";s:0:"";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:0:"";s:17:"Thumbnail changed";s:11:"Modifica...";s:14:"confirm|Cancel";s:0:"";s:15:"Gallery deleted";s:16:"Su di un livello";s:14:"delete gallery";s:20:"modifica la galleria";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:0:"";s:13:"Image deleted";s:5:"Data:";s:12:"delete image";s:19:"modifica l'immagine";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:0:"";s:12:"User deleted";s:16:"Su di un livello";s:11:"delete user";s:20:"modifica la galleria";s:52:"Are you sure you want to permanently delete user %s?";s:0:"";s:27:"Welcome to singapore admin!";s:0:"";s:22:"Thank you and goodbye!";s:0:"";s:22:"Thumbnail cache purged";s:0:"";s:23:"purge cached thumbnails";s:30:"Svuota la cache dei thumbnails";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:0:"";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:0:"";s:24:"Image saved successfully";s:0:"";s:14:"Password saved";s:9:"Password:";s:17:"Permissions saved";s:9:"Password:";s:15:"User info saved";s:0:"";s:14:"admin bar|Back";s:8:"Indietro";s:15:"admin bar|Admin";s:10:"Amministra";s:19:"admin bar|Galleries";s:8:"Gallerie";s:17:"admin bar|Log out";s:13:"Esegui Logout";s:22:"admin bar|Edit gallery";s:20:"Modifica la galleria";s:26:"admin bar|Edit permissions";s:20:"Modifica la galleria";s:24:"admin bar|Delete gallery";s:20:"Cancella la galleria";s:24:"admin bar|New subgallery";s:19:"Nuova sottogalleria";s:26:"admin bar|Re-index gallery";s:20:"Cancella la galleria";s:20:"admin bar|Edit image";s:19:"Modifica l'immagine";s:22:"admin bar|Delete image";s:18:"Elimina l'immagine";s:19:"admin bar|New image";s:14:"Nuova immagine";s:24:"Could not save user info";s:50:"Impossibile salvare le informazioni della galleria";s:54:"New password must be between 6 and 16 characters long.";s:76:"La lunghezza della nuova password deve essere compresa tra 6 e 16 caratteri.";s:43:"The new passwords you entered do not match.";s:50:"Le nuove passwords da te inserite sono differenti.";s:72:"The current password you entered does not match the one in the database.";s:83:"La password corrente da te inserita non corrisponde a quella presente nel database.";s:53:"The username specified was not found in the database.";s:66:"Il nome utente da te specificato non è stato trovato nel database.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:31:"Nome utente e/o password errati";s:38:"You must enter a username and password";s:43:"Devi inserire un nome utente e una password";s:27:"Could not save gallery info";s:50:"Impossibile salvare le informazioni della galleria";s:23:"Username already exists";s:18:"Il file esiste già";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:22:"La galleria esiste già";s:26:"Could not create directory";s:30:"Impossibile creare la cartella";s:37:"Cannot delete the top level directory";s:44:"Impossibile eliminare la cartella principale";s:19:"File already exists";s:18:"Il file esiste già";s:21:"Could not upload file";s:33:"Impossibile cancellare l'immagine";s:30:"Could not add image to gallery";s:47:"Impossibile aggiungere l'immagine alla galleria";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:33:"Impossibile cancellare l'immagine";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:49:"Impossibile salvare le informazioni dell'immagine";s:22:"Could not delete image";s:33:"Impossibile cancellare l'immagine";s:17:"Select gallery...";s:20:"modifica la galleria";s:16:"choose thumbnail";s:24:"selezionare il thumbnail";s:64:"Choose the filename of the image used to represent this gallery.";s:80:"Seleziona il nome dell'immagine da utilizzare per rappresentare questa galleria.";s:14:"thumbnail|None";s:7:"Nessuno";s:16:"thumbnail|Random";s:7:"Casuale";s:12:"edit gallery";s:20:"modifica la galleria";s:9:"Thumbnail";s:7:"Nessuno";s:16:"Random |
thumbnail";s:17:"Thumbnail |
casuale";s:19:"thumbnail|Change...";s:11:"Modifica...";s:12:"Gallery name";s:22:"La galleria esiste già";s:11:"Artist name";s:0:"";s:7:"Summary";s:0:"";s:10:"edit image";s:19:"modifica l'immagine";s:5:"Image";s:0:"";s:10:"Image name";s:5:"Data:";s:15:"change password";s:17:"modifica password";s:67:"Please choose a new password between 6 and 16 characters in length.";s:72:"Seleziona una nuova password di lunghezza compresa tra 6 e 16 caratteri.";s:17:"Current password:";s:18:"Password corrente:";s:13:"New password:";s:15:"Nuova password:";s:17:"Confirm password:";s:18:"Conferma password:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:12:"Nome utente:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:12:"Nome utente:";s:9:"Full name";s:22:"La galleria esiste già";s:8:"Password";s:9:"Password:";s:22:"admin bar|View gallery";s:19:"Nuova sottogalleria";s:26:"admin bar|Change thumbnail";s:19:"Nuova sottogalleria";s:16:"hits table|Graph";s:0:"";s:15:"hits table|Hits";s:0:"";s:19:"hits table|Last hit";s:0:"";s:14:"Admin message:";s:0:"";s:6:"log in";s:12:"esegui login";s:52:"Please enter your admin username and password below.";s:43:"Devi inserire un nome utente e una password";s:9:"Username:";s:12:"Nome utente:";s:9:"Password:";s:9:"Password:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:22:"La galleria esiste già";s:4:"edit";s:0:"";s:6:"delete";s:19:"modifica l'immagine";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:19:"Seleziona una voce:";s:27:"Manage galleries and images";s:30:"Amministra gallerie e immagini";s:17:"View gallery hits";s:24:"Visualizza hits gallerie";s:15:"Change password";s:20:"Modifica la password";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:30:"Svuota la cache dei thumbnails";s:16:"Log out of admin";s:31:"Logout amministrazione gallerie";s:11:"new gallery";s:14:"nuova galleria";s:11:"Identifier:";s:24:"Identificativo immagine:";s:9:"new image";s:14:"nuova immagine";s:74:"This image will not be visible because this gallery contains subgalleries.";s:0:"";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:24:"Immagine da trasmettere:";s:30:"Use filename of uploaded file.";s:36:"Utilizza il nome del file trasmesso.";s:27:"Specify different filename:";s:34:"Specifica un nome file differente:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:24:"Immagine da trasmettere:";s:15:"Add remote file";s:11:"File remoto";s:13:"URL of image:";s:18:"URL dell'immagine:";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:8:"Italian ";s:6:"plural";s:33:"$nplurals=2;$plural=$n>1 ? 0 : 1;";}} |
/photogallery/locale/singapore.admin.ja.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:26:"¥®¥ã¥é¥ê¡¼¤¬Äɲ䵤ì¤Þ¤·¤¿";s:18:"An error occurred:";s:21:"¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿:";s:11:"Image added";s:20:"²èÁü¤¬Äɲ䵤ì¤Þ¤·¤¿";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:26:"¥µ¥à¥Í¥¤¥ë¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿";s:14:"confirm|Cancel";s:10:"¥¥ã¥ó¥»¥ë";s:15:"Gallery deleted";s:26:"¥®¥ã¥é¥ê¡¼¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿";s:14:"delete gallery";s:16:"¥®¥ã¥é¥ê¡¼¤Îºï½ü";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:116:"¥®¥ã¥é¥ê¡¼ %s ¤Ï¶õ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ |
ËÜÅö¤Ë¥®¥ã¥é¥ê¡¼µÚ¤Ó¥µ¥Ö¥®¥ã¥é¥ê¡¼¤Ë´Þ¤Þ¤ì¤ë²èÁü¤ò´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?";s:13:"Image deleted";s:20:"²èÁü¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿";s:12:"delete image";s:10:"²èÁü¤Îºï½ü";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:65:"ËÜÅö¤Ë²èÁü %s ¤ò¥®¥ã¥é¥ê¡¼ %s ¤è¤ê´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?";s:12:"User deleted";s:26:"¥®¥ã¥é¥ê¡¼¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿";s:11:"delete user";s:16:"¥®¥ã¥é¥ê¡¼¤Îºï½ü";s:52:"Are you sure you want to permanently delete user %s?";s:65:"ËÜÅö¤Ë²èÁü %s ¤ò¥®¥ã¥é¥ê¡¼ %s ¤è¤ê´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?";s:27:"Welcome to singapore admin!";s:28:"singapore´ÉÍý²èÌ̤ؤ褦¤³¤½!";s:22:"Thank you and goodbye!";s:22:"Thank you and goodbye!";s:22:"Thumbnail cache purged";s:36:"¥µ¥à¥Í¥¤¥ë¥¥ã¥Ã¥·¥å¤¬¾Ãµî¤µ¤ì¤Þ¤·¤¿";s:23:"purge cached thumbnails";s:26:"¥µ¥à¥Í¥¤¥ë¥¥ã¥Ã¥·¥å¤Î¾Ãµî";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:59:"ËÜÅö¤Ë %s ¤Î¥µ¥à¥Í¥¤¥ë¥¥ã¥Ã¥·¥å¤òºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:30:"¥®¥ã¥é¥ê¡¼¾ðÊó¤¬Êݸ¤µ¤ì¤Þ¤·¤¿";s:24:"Image saved successfully";s:26:"²èÁü¤¬Àµ¾ï¤ËÊݸ¤µ¤ì¤Þ¤·¤¿";s:14:"Password saved";s:26:"¥Ñ¥¹¥ï¡¼¥É¤¬Êݸ¤µ¤ì¤Þ¤·¤¿";s:17:"Permissions saved";s:26:"¥Ñ¥¹¥ï¡¼¥É¤¬Êݸ¤µ¤ì¤Þ¤·¤¿";s:15:"User info saved";s:30:"¥®¥ã¥é¥ê¡¼¾ðÊó¤¬Êݸ¤µ¤ì¤Þ¤·¤¿";s:14:"admin bar|Back";s:4:"Ìá¤ë";s:15:"admin bar|Admin";s:8:"´ÉÍý²èÌÌ";s:19:"admin bar|Galleries";s:10:"¥®¥ã¥é¥ê¡¼";s:17:"admin bar|Log out";s:10:"¥í¥°¥¢¥¦¥È";s:22:"admin bar|Edit gallery";s:16:"¥®¥ã¥é¥ê¡¼¤ÎÊÔ½¸";s:26:"admin bar|Edit permissions";s:16:"¥®¥ã¥é¥ê¡¼¤ÎÊÔ½¸";s:24:"admin bar|Delete gallery";s:16:"¥®¥ã¥é¥ê¡¼¤Îºï½ü";s:24:"admin bar|New subgallery";s:20:"¥µ¥Ö¥®¥ã¥é¥ê¡¼¤ÎºîÀ®";s:26:"admin bar|Re-index gallery";s:16:"¥®¥ã¥é¥ê¡¼¤Îºï½ü";s:20:"admin bar|Edit image";s:20:"admin bar|²èÁü¤ÎÊÔ½¸";s:22:"admin bar|Delete image";s:10:"²èÁü¤Îºï½ü";s:19:"admin bar|New image";s:10:"²èÁü¤ÎÅÐÏ¿";s:24:"Could not save user info";s:36:"¥®¥ã¥é¥ê¡¼¾ðÊó¤òÊݸ½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:54:"New password must be between 6 and 16 characters long.";s:53:"¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ÏȾ³Ñ6¡Á16ʸ»ú¤ÎŤµ¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£";s:43:"The new passwords you entered do not match.";s:32:"¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤¬¹çÃפ·¤Þ¤»¤ó¡£";s:72:"The current password you entered does not match the one in the database.";s:62:"ÆþÎϤµ¤ì¤¿¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆâÍƤȰìÃפ·¤Þ¤»¤ó¡£";s:53:"The username specified was not found in the database.";s:54:"»ØÄꤵ¤ì¤¿¥æ¡¼¥¶Ì¾¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:42:"¥æ¡¼¥¶Ì¾¤Þ¤¿¤Ï¥Ñ¥¹¥ï¡¼¥É¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó";s:38:"You must enter a username and password";s:38:"¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤";s:27:"Could not save gallery info";s:36:"¥®¥ã¥é¥ê¡¼¾ðÊó¤òÊݸ½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:23:"Username already exists";s:24:"¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Þ¤¹";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:26:"¥®¥ã¥é¥ê¡¼¤¬´û¤Ë¸ºß¤·¤Þ¤¹";s:26:"Could not create directory";s:34:"¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:37:"Cannot delete the top level directory";s:42:"¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ïºï½ü½ÐÍè¤Þ¤»¤ó";s:19:"File already exists";s:24:"¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤Þ¤¹";s:21:"Could not upload file";s:38:"¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:30:"Could not add image to gallery";s:38:"¥®¥ã¥é¥ê¡¼¤Ë²èÁü¤òÄɲýÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:26:"²èÁü¤òºï½ü½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:30:"²èÁü¾ðÊó¤òÊݸ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿";s:22:"Could not delete image";s:26:"²èÁü¤òºï½ü½ÐÍè¤Þ¤»¤ó¤Ç¤·¤¿";s:17:"Select gallery...";s:16:"¥®¥ã¥é¥ê¡¼¤Îºï½ü";s:16:"choose thumbnail";s:16:"¥µ¥à¥Í¥¤¥ë¤ÎÁªÂò";s:64:"Choose the filename of the image used to represent this gallery.";s:50:"¤³¤Î¥®¥ã¥é¥ê¡¼¤òɽ¸½¤¹¤ë²èÁü̾¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£";s:14:"thumbnail|None";s:4:"̵¤·";s:16:"thumbnail|Random";s:8:"¥é¥ó¥À¥à";s:12:"edit gallery";s:16:"¥®¥ã¥é¥ê¡¼¤ÎÊÔ½¸";s:9:"Thumbnail";s:4:"̵¤·";s:16:"Random |
thumbnail";s:19:"¥é¥ó¥À¥à |
¥µ¥à¥Í¥¤¥ë";s:19:"thumbnail|Change...";s:4:"Êѹ¹";s:12:"Gallery name";s:12:"¥®¥ã¥é¥ê¡¼Ì¾";s:11:"Artist name";s:14:"¥¢¡¼¥Æ¥£¥¹¥È̾";s:7:"Summary";s:0:"";s:10:"edit image";s:10:"²èÁü¤ÎÊÔ½¸";s:5:"Image";s:4:"²èÁü";s:10:"Image name";s:6:"²èÁü̾";s:15:"change password";s:16:"¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹";s:67:"Please choose a new password between 6 and 16 characters in length.";s:51:"¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òȾ³Ñ6¡Á16ʸ»ú¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£";s:17:"Current password:";s:17:"¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É:";s:13:"New password:";s:17:"¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É:";s:17:"Confirm password:";s:21:"¥Ñ¥¹¥ï¡¼¥É¤ò¤â¤¦°ìÅÙ:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:9:"¥æ¡¼¥¶Ì¾:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:9:"¥æ¡¼¥¶Ì¾:";s:9:"Full name";s:12:"¥®¥ã¥é¥ê¡¼Ì¾";s:8:"Password";s:11:"¥Ñ¥¹¥ï¡¼¥É:";s:22:"admin bar|View gallery";s:20:"¥µ¥Ö¥®¥ã¥é¥ê¡¼¤ÎºîÀ®";s:26:"admin bar|Change thumbnail";s:20:"¥µ¥Ö¥®¥ã¥é¥ê¡¼¤ÎºîÀ®";s:16:"hits table|Graph";s:6:"¥°¥é¥Õ";s:15:"hits table|Hits";s:6:"¥Ò¥Ã¥È";s:19:"hits table|Last hit";s:10:"ºÇ¿·¥Ò¥Ã¥È";s:14:"Admin message:";s:19:"´ÉÍý²èÌÌ¥á¥Ã¥»¡¼¥¸:";s:6:"log in";s:8:"¥í¥°¥¤¥ó";s:52:"Please enter your admin username and password below.";s:38:"¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤";s:9:"Username:";s:9:"¥æ¡¼¥¶Ì¾:";s:9:"Password:";s:11:"¥Ñ¥¹¥ï¡¼¥É:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:12:"¥®¥ã¥é¥ê¡¼Ì¾";s:4:"edit";s:0:"";s:6:"delete";s:10:"²èÁü¤Îºï½ü";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:29:"¥ª¥×¥·¥ç¥ó¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤:";s:27:"Manage galleries and images";s:22:"¥®¥ã¥é¥ê¡¼¤È²èÁü¤Î´ÉÍý";s:17:"View gallery hits";s:26:"¥®¥ã¥é¥ê¡¼¤Î¥Ò¥Ã¥È¿ô¤òɽ¼¨";s:15:"Change password";s:16:"¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:26:"¥µ¥à¥Í¥¤¥ë¥¥ã¥Ã¥·¥å¤Î¾Ãµî";s:16:"Log out of admin";s:26:"´ÉÍý²èÌ̤è¤ê¥í¥°¥¢¥¦¥È¤¹¤ë";s:11:"new gallery";s:14:"¿·µ¬¥®¥ã¥é¥ê¡¼";s:11:"Identifier:";s:11:"¥Õ¥¡¥¤¥ë̾:";s:9:"new image";s:8:"¿·µ¬²èÁü";s:74:"This image will not be visible because this gallery contains subgalleries.";s:58:"¥µ¥Ö¥®¥ã¥é¥ê¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë°Ù¡¢¤³¤Î²èÁü¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:17:"¥¢¥Ã¥×¥í¡¼¥É²èÁü:";s:30:"Use filename of uploaded file.";s:49:"¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¥Õ¥¡¥¤¥ë̾¤ò»ÈÍѤ¹¤ë(Ⱦ³Ñ±Ñ¿ô»ú):";s:27:"Specify different filename:";s:37:"¾¤Î¥Õ¥¡¥¤¥ë̾¤òÀßÄꤹ¤ë(Ⱦ³Ñ±Ñ¿ô»ú):";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:17:"¥¢¥Ã¥×¥í¡¼¥É²èÁü:";s:15:"Add remote file";s:16:"¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë";s:13:"URL of image:";s:10:"²èÁü¤ÎURL:";i:0;a:3:{s:7:"charset";s:6:"EUC-JP";s:8:"language";s:9:"Japanese ";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.admin.ja_utf8.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:39:"ギャラリーが追加されました";s:18:"An error occurred:";s:31:"エラーが発生しました:";s:11:"Image added";s:30:"画像が追加されました";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:39:"サムネイルが変更されました";s:14:"confirm|Cancel";s:15:"キャンセル";s:15:"Gallery deleted";s:39:"ギャラリーが削除されました";s:14:"delete gallery";s:24:"ギャラリーの削除";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:171:"ギャラリー %s は空ではありません。 |
本当にギャラリー及びサブギャラリーに含まれる画像を完全に削除してもよろしいですか?";s:13:"Image deleted";s:30:"画像が削除されました";s:12:"delete image";s:15:"画像の削除";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:93:"本当に画像 %s をギャラリー %s より完全に削除してもよろしいですか?";s:12:"User deleted";s:39:"ギャラリーが削除されました";s:11:"delete user";s:24:"ギャラリーの削除";s:52:"Are you sure you want to permanently delete user %s?";s:93:"本当に画像 %s をギャラリー %s より完全に削除してもよろしいですか?";s:27:"Welcome to singapore admin!";s:37:"singapore管理画面へようこそ!";s:22:"Thank you and goodbye!";s:22:"Thank you and goodbye!";s:22:"Thumbnail cache purged";s:54:"サムネイルキャッシュが消去されました";s:23:"purge cached thumbnails";s:39:"サムネイルキャッシュの消去";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:86:"本当に %s のサムネイルキャッシュを削除してもよろしいですか?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:45:"ギャラリー情報が保存されました";s:24:"Image saved successfully";s:39:"画像が正常に保存されました";s:14:"Password saved";s:39:"パスワードが保存されました";s:17:"Permissions saved";s:39:"パスワードが保存されました";s:15:"User info saved";s:45:"ギャラリー情報が保存されました";s:14:"admin bar|Back";s:6:"戻る";s:15:"admin bar|Admin";s:12:"管理画面";s:19:"admin bar|Galleries";s:15:"ギャラリー";s:17:"admin bar|Log out";s:15:"ログアウト";s:22:"admin bar|Edit gallery";s:24:"ギャラリーの編集";s:26:"admin bar|Edit permissions";s:24:"ギャラリーの編集";s:24:"admin bar|Delete gallery";s:24:"ギャラリーの削除";s:24:"admin bar|New subgallery";s:30:"サブギャラリーの作成";s:26:"admin bar|Re-index gallery";s:24:"ギャラリーの削除";s:20:"admin bar|Edit image";s:25:"admin bar|画像の編集";s:22:"admin bar|Delete image";s:15:"画像の削除";s:19:"admin bar|New image";s:15:"画像の登録";s:24:"Could not save user info";s:54:"ギャラリー情報を保存出来ませんでした";s:54:"New password must be between 6 and 16 characters long.";s:78:"新しいパスワードは半角6~16文字の長さにしてください。";s:43:"The new passwords you entered do not match.";s:48:"新しいパスワードが合致しません。";s:72:"The current password you entered does not match the one in the database.";s:93:"入力された現在のパスワードがデータベースの内容と一致しません。";s:53:"The username specified was not found in the database.";s:81:"指定されたユーザ名はデータベースに登録されていません。";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:63:"ユーザ名またはパスワードが正しくありません";s:38:"You must enter a username and password";s:57:"ユーザ名とパスワードを入力してください";s:27:"Could not save gallery info";s:54:"ギャラリー情報を保存出来ませんでした";s:23:"Username already exists";s:36:"ファイルが既に存在します";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:39:"ギャラリーが既に存在します";s:26:"Could not create directory";s:51:"ディレクトリを作成出来ませんでした";s:37:"Cannot delete the top level directory";s:63:"トップレベルのディレクトリは削除出来ません";s:19:"File already exists";s:36:"ファイルが既に存在します";s:21:"Could not upload file";s:57:"ファイルをアップロード出来ませんでした";s:30:"Could not add image to gallery";s:57:"ギャラリーに画像を追加出来ませんでした";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:39:"画像を削除出来ませんでした";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:45:"画像情報を保存できませんでした";s:22:"Could not delete image";s:39:"画像を削除出来ませんでした";s:17:"Select gallery...";s:24:"ギャラリーの削除";s:16:"choose thumbnail";s:24:"サムネイルの選択";s:64:"Choose the filename of the image used to represent this gallery.";s:75:"このギャラリーを表現する画像名を選択してください。";s:14:"thumbnail|None";s:6:"無し";s:16:"thumbnail|Random";s:12:"ランダム";s:12:"edit gallery";s:24:"ギャラリーの編集";s:9:"Thumbnail";s:6:"無し";s:16:"Random |
thumbnail";s:28:"ランダム |
サムネイル";s:19:"thumbnail|Change...";s:6:"変更";s:12:"Gallery name";s:18:"ギャラリー名";s:11:"Artist name";s:21:"アーティスト名";s:7:"Summary";s:0:"";s:10:"edit image";s:15:"画像の編集";s:5:"Image";s:6:"画像";s:10:"Image name";s:9:"画像名";s:15:"change password";s:24:"パスワードの変更";s:67:"Please choose a new password between 6 and 16 characters in length.";s:75:"新しいパスワードを半角6~16文字で入力してください。";s:17:"Current password:";s:25:"現在のパスワード:";s:13:"New password:";s:25:"新しいパスワード:";s:17:"Confirm password:";s:31:"パスワードをもう一度:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:13:"ユーザ名:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:13:"ユーザ名:";s:9:"Full name";s:18:"ギャラリー名";s:8:"Password";s:16:"パスワード:";s:22:"admin bar|View gallery";s:30:"サブギャラリーの作成";s:26:"admin bar|Change thumbnail";s:30:"サブギャラリーの作成";s:16:"hits table|Graph";s:9:"グラフ";s:15:"hits table|Hits";s:9:"ヒット";s:19:"hits table|Last hit";s:15:"最新ヒット";s:14:"Admin message:";s:28:"管理画面メッセージ:";s:6:"log in";s:12:"ログイン";s:52:"Please enter your admin username and password below.";s:57:"ユーザ名とパスワードを入力してください";s:9:"Username:";s:13:"ユーザ名:";s:9:"Password:";s:16:"パスワード:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:18:"ギャラリー名";s:4:"edit";s:0:"";s:6:"delete";s:15:"画像の削除";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:43:"オプションを選択してください:";s:27:"Manage galleries and images";s:33:"ギャラリーと画像の管理";s:17:"View gallery hits";s:39:"ギャラリーのヒット数を表示";s:15:"Change password";s:24:"パスワードの変更";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:39:"サムネイルキャッシュの消去";s:16:"Log out of admin";s:39:"管理画面よりログアウトする";s:11:"new gallery";s:21:"新規ギャラリー";s:11:"Identifier:";s:16:"ファイル名:";s:9:"new image";s:12:"新規画像";s:74:"This image will not be visible because this gallery contains subgalleries.";s:87:"サブギャラリーが含まれている為、この画像は表示されません。";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:25:"アップロード画像:";s:30:"Use filename of uploaded file.";s:72:"アップロードするファイル名を使用する(半角英数字):";s:27:"Specify different filename:";s:54:"他のファイル名を設定する(半角英数字):";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:25:"アップロード画像:";s:15:"Add remote file";s:24:"リモートファイル";s:13:"URL of image:";s:13:"画像のURL:";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:9:"Japanese ";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.admin.ko.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:21:"°¶·¯¸®°¡ ´õÇØÁ³½À´Ï´Ù";s:18:"An error occurred:";s:20:"¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù:";s:11:"Image added";s:19:"±×¸²ÀÌ ´õÇØÁ³½À´Ï´Ù";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:4:"È®ÀÎ";s:17:"Thumbnail changed";s:23:"¸ñ·Ïº¸±â°¡ ¹Ù²î¾ú½À´Ï´Ù";s:14:"confirm|Cancel";s:4:"Ãë¼Ò";s:15:"Gallery deleted";s:21:"°¶·¯¸®°¡ Áö¿öÁ³½À´Ï´Ù";s:14:"delete gallery";s:13:"°¶·¯¸® Áö¿ì±â";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:95:"°¶·¯¸® %sÀº(´Â) ºñ¾îÀÖÁö ¾Ê½À´Ï´Ù |
¸ðµç ÇÏÀ§ °¶·¯¸®¿Í ±× ¾È¿¡ Æ÷ÇÔµÈ ±×¸²À» ¿ÏÀüÈ÷ Áö¿ì°Ú½À´Ï±î?";s:13:"Image deleted";s:19:"±×¸²ÀÌ Áö¿öÁ³½À´Ï´Ù";s:12:"delete image";s:11:"±×¸² Áö¿ì±â";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:50:"%2$s °¶·¯¸®ÀÇ ±×¸² %1$sÀ»(¸¦) Á¤¸»·Î Áö¿ì°Ú½À´Ï±î?";s:12:"User deleted";s:21:"°¶·¯¸®°¡ Áö¿öÁ³½À´Ï´Ù";s:11:"delete user";s:13:"°¶·¯¸® Áö¿ì±â";s:52:"Are you sure you want to permanently delete user %s?";s:50:"%2$s °¶·¯¸®ÀÇ ±×¸² %1$sÀ»(¸¦) Á¤¸»·Î Áö¿ì°Ú½À´Ï±î?";s:27:"Welcome to singapore admin!";s:44:"Singapore °ü¸®ÀÚ ¸ðµå¿¡ ¿À½Å°ÍÀ» ȯ¿µÇÕ´Ï´Ù!";s:22:"Thank you and goodbye!";s:19:"°¨»çÇÕ´Ï´Ù. ¾È³çÈ÷!";s:22:"Thumbnail cache purged";s:28:"¸ñ·Ïº¸±â ij½Ã°¡ Áö¿öÁ³½À´Ï´Ù";s:23:"purge cached thumbnails";s:22:"ij½ÃµÈ ¸ñ·Ïº¸±â Áö¿ì±â";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:50:"¸ðµÎ %s°³ÀÇ Ä³½ÃµÈ ¸ñ·Ïº¸±â¸¦ Á¤¸»·Î Áö¿ì°Ú½À´Ï±î?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:28:"°¶·¯¸® Á¤º¸°¡ ÀúÀåµÇ¾ú½À´Ï´Ù";s:24:"Image saved successfully";s:21:"±×¸²ÀÌ ÀúÀåµÇ¾ú½À´Ï´Ù";s:14:"Password saved";s:23:"¿¼è±ÛÀÌ ÀúÀåµÇ¾ú½À´Ï´Ù";s:17:"Permissions saved";s:23:"¿¼è±ÛÀÌ ÀúÀåµÇ¾ú½À´Ï´Ù";s:15:"User info saved";s:28:"°¶·¯¸® Á¤º¸°¡ ÀúÀåµÇ¾ú½À´Ï´Ù";s:14:"admin bar|Back";s:4:"µÚ·Î";s:15:"admin bar|Admin";s:6:"°ü¸®ÀÚ";s:19:"admin bar|Galleries";s:6:"°¶·¯¸®";s:17:"admin bar|Log out";s:8:"·Î±×¾Æ¿ô";s:22:"admin bar|Edit gallery";s:11:"°¶·¯¸® ÆíÁý";s:26:"admin bar|Edit permissions";s:11:"°¶·¯¸® ÆíÁý";s:24:"admin bar|Delete gallery";s:13:"°¶·¯¸® Áö¿ì±â";s:24:"admin bar|New subgallery";s:18:"ÇÏÀ§ °¶·¯¸® ¸¸µé±â";s:26:"admin bar|Re-index gallery";s:13:"°¶·¯¸® Áö¿ì±â";s:20:"admin bar|Edit image";s:9:"±×¸² ÆíÁý";s:22:"admin bar|Delete image";s:11:"±×¸² Áö¿ì±â";s:19:"admin bar|New image";s:7:"»õ ±×¸²";s:24:"Could not save user info";s:32:"°¶·¯¸® Á¤º¸¸¦ ÀúÀåÇÒ ¼ö ¾ø½À´Ï´Ù";s:54:"New password must be between 6 and 16 characters long.";s:41:"»õ ¿¼è±ÛÀº 6ÀÚ¿¡¼ 16ÀÚ ±æÀÌ¿©¾ß ÇÕ´Ï´Ù.";s:43:"The new passwords you entered do not match.";s:35:"»õ ¿¼è±ÛÀÌ ¼·Î ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.";s:72:"The current password you entered does not match the one in the database.";s:57:"ÇöÀç ¿¼è±ÛÀÌ µ¥ÀÌÅͺ£À̽º¿¡ ÀÖ´Â °Í°ú ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.";s:53:"The username specified was not found in the database.";s:45:"ÁöÁ¤ÇÑ »ç¿ëÀÚ À̸§ÀÌ µ¥ÀÌÅͺ£À̽º¿¡ ¾ø½À´Ï´Ù.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:34:"»ç¿ëÀÚ À̸§ ¶Ç´Â ¿¼è±ÛÀÌ Æ²¸³´Ï´Ù";s:38:"You must enter a username and password";s:40:"»ç¿ëÀÚ À̸§°ú ¿¼è±ÛÀ» ÀÔ·ÂÇÏ¿©¾ß ÇÕ´Ï´Ù";s:27:"Could not save gallery info";s:32:"°¶·¯¸® Á¤º¸¸¦ ÀúÀåÇÒ ¼ö ¾ø½À´Ï´Ù";s:23:"Username already exists";s:20:"ÆÄÀÏÀÌ ÀÌ¹Ì ÀÖ½À´Ï´Ù";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:29:"±×·¯ÇÑ °¶·¯¸®°¡ ÀÌ¹Ì ÀÖ½À´Ï´Ù";s:26:"Could not create directory";s:27:"µð·ºÅ丮¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù";s:37:"Cannot delete the top level directory";s:34:"ÃÖ»óÀ§ µð·ºÅ丮¸¦ Áö¿ï ¼ö ¾ø½À´Ï´Ù";s:19:"File already exists";s:20:"ÆÄÀÏÀÌ ÀÌ¹Ì ÀÖ½À´Ï´Ù";s:21:"Could not upload file";s:23:"ÆÄÀÏÀ» ¿Ã¸± ¼ö ¾ø½À´Ï´Ù";s:30:"Could not add image to gallery";s:32:"°¶·¯¸®¿¡ ±×¸²À» ´õÇÒ ¼ö ¾ø½À´Ï´Ù";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:23:"±×¸²À» Áö¿ï ¼ö ¾ø½À´Ï´Ù";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:30:"±×¸² Á¤º¸¸¦ ÀúÀåÇÒ ¼ö ¾ø½À´Ï´Ù";s:22:"Could not delete image";s:23:"±×¸²À» Áö¿ï ¼ö ¾ø½À´Ï´Ù";s:17:"Select gallery...";s:13:"°¶·¯¸® Áö¿ì±â";s:16:"choose thumbnail";s:13:"¸ñ·Ïº¸±â ¼±ÅÃ";s:64:"Choose the filename of the image used to represent this gallery.";s:50:"ÀÌ °¶·¯¸®¸¦ ³ªÅ¸³¾ ±×¸²ÀÇ ÆÄÀÏÀ̸§À» ¼±ÅÃÇϽʽÿÀ.";s:14:"thumbnail|None";s:4:"¾øÀ½";s:16:"thumbnail|Random";s:8:"¾Æ¹«°Å³ª";s:12:"edit gallery";s:11:"°¶·¯¸® ÆíÁý";s:9:"Thumbnail";s:4:"¾øÀ½";s:16:"Random |
thumbnail";s:17:"¾Æ¹«°Å³ª |
¸ñ·Ïº¸±â";s:19:"thumbnail|Change...";s:9:"¹Ù²Ù±â...";s:12:"Gallery name";s:11:"°¶·¯¸® À̸§";s:11:"Artist name";s:9:"ÀÛ°¡ À̸§";s:7:"Summary";s:0:"";s:10:"edit image";s:9:"±×¸² ÆíÁý";s:5:"Image";s:4:"±×¸²";s:10:"Image name";s:9:"±×¸² À̸§";s:15:"change password";s:13:"¿¼è±Û ¹Ù²Ù±â";s:67:"Please choose a new password between 6 and 16 characters in length.";s:45:"6ÀÚ¿¡¼ 16ÀÚ »çÀÌÀÇ »õ ¿¼è±ÛÀ» ¼±ÅÃÇϽʽÿÀ.";s:17:"Current password:";s:12:"ÇöÀç ¿¼è±Û:";s:13:"New password:";s:10:"»õ ¿¼è±Û:";s:17:"Confirm password:";s:12:"¿¼è±Û È®ÀÎ:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:12:"»ç¿ëÀÚ À̸§:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:12:"»ç¿ëÀÚ À̸§:";s:9:"Full name";s:11:"°¶·¯¸® À̸§";s:8:"Password";s:7:"¿¼è±Û:";s:22:"admin bar|View gallery";s:18:"ÇÏÀ§ °¶·¯¸® ¸¸µé±â";s:26:"admin bar|Change thumbnail";s:18:"ÇÏÀ§ °¶·¯¸® ¸¸µé±â";s:16:"hits table|Graph";s:11:"¹æ¹® ±×·¡ÇÁ";s:15:"hits table|Hits";s:9:"¹æ¹® ȸ¼ö";s:19:"hits table|Last hit";s:14:"ÃÖ±Ù ¹æ¹® ³¯Â¥";s:14:"Admin message:";s:14:"°ü¸®ÀÚ ¸Þ¼¼Áö:";s:6:"log in";s:6:"·Î±×ÀÎ";s:52:"Please enter your admin username and password below.";s:40:"»ç¿ëÀÚ À̸§°ú ¿¼è±ÛÀ» ÀÔ·ÂÇÏ¿©¾ß ÇÕ´Ï´Ù";s:9:"Username:";s:12:"»ç¿ëÀÚ À̸§:";s:9:"Password:";s:7:"¿¼è±Û:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:11:"°¶·¯¸® À̸§";s:4:"edit";s:0:"";s:6:"delete";s:11:"±×¸² Áö¿ì±â";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:20:"ÀÛ¾÷À» ¼±ÅÃÇϽʽÿÀ:";s:27:"Manage galleries and images";s:18:"°¶·¯¸®¿Í ±×¸² °ü¸®";s:17:"View gallery hits";s:21:"°¶·¯¸® ¹æ¹® Åë°è º¸±â";s:15:"Change password";s:13:"¿¼è±Û ¹Ù²Ù±â";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:22:"ij½ÃµÈ ¸ñ·Ïº¸±â ºñ¿ì±â";s:16:"Log out of admin";s:15:"°ü¸®ÀÚ ·Î±×¾Æ¿ô";s:11:"new gallery";s:9:"»õ °¶·¯¸®";s:11:"Identifier:";s:7:"ÀνÄÀÚ:";s:9:"new image";s:7:"»õ ±×¸²";s:74:"This image will not be visible because this gallery contains subgalleries.";s:71:"ÀÌ °¶·¯¸®°¡ ÇÏÀ§ °¶·¯¸®¸¦ Æ÷ÇÔÇϱ⠶§¹®¿¡ ÀÌ ±×¸²À» º¸¿©ÁÙ ¼ö ¾ø½À´Ï´Ù.";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:17:"¿Ã·ÁÁú ±×¸² ÆÄÀÏ:";s:30:"Use filename of uploaded file.";s:28:"¿Ã·ÁÁø ÆÄÀÏÀÇ À̸§À» ¾¹´Ï´Ù.";s:27:"Specify different filename:";s:27:"´Ù¸¥ ÆÄÀÏÀ̸§À» ÁöÁ¤ÇÕ´Ï´Ù:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:17:"¿Ã·ÁÁú ±×¸² ÆÄÀÏ:";s:15:"Add remote file";s:9:"¿ø°Ý ÆÄÀÏ";s:13:"URL of image:";s:11:"±×¸²ÀÇ URL:";i:0;a:3:{s:7:"charset";s:6:"euc-kr";s:8:"language";s:7:"korean ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.nl.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:60:"U heeft geen permissie voor het uitvoeren van deze operatie.";s:13:"Gallery added";s:16:"Album toegevoegd";s:18:"An error occurred:";s:26:"Er is een fout opgetreden:";s:11:"Image added";s:21:"Afbeelding toegevoegd";s:22:"Archive contents added";s:25:"Archief inhoud toegevoegd";s:10:"confirm|OK";s:2:"Ok";s:17:"Thumbnail changed";s:19:"Thumbnail veranderd";s:14:"confirm|Cancel";s:8:"Annuleer";s:15:"Gallery deleted";s:16:"Album verwijderd";s:14:"delete gallery";s:15:"verwijder album";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:104:"Album %s is niet leeg. |
Weet u zeker dat u het samen met de gehele inhoud onherstelbaar wilt verwijderen?";s:13:"Image deleted";s:21:"Afbeelding verwijderd";s:12:"delete image";s:20:"verwijder afbeelding";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:77:"Weet u zeker dat u afbeelding %s onherstelbaar wilt verwijderen uit album %s?";s:12:"User deleted";s:20:"Gebruiker verwijderd";s:11:"delete user";s:19:"verwijder gebruiker";s:52:"Are you sure you want to permanently delete user %s?";s:63:"Weet u zeker dat u gebruiker %s onherstelbaar wilt verwijderen?";s:27:"Welcome to singapore admin!";s:51:"Welkom bij het administratiegedeelte van Singapore!";s:22:"Thank you and goodbye!";s:21:"Bedankt en tot ziens!";s:22:"Thumbnail cache purged";s:25:"Thumbnail-geheugen gewist";s:23:"purge cached thumbnails";s:28:"verwijder thumbnail-geheugen";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:71:"Weet u zeker dat u alle %s thumbnails in het geheugen wilt verwijderen?";s:36:"Gallery re-indexed. %s images added.";s:54:"Album opnieuw geindexeerd. %s afbeeldingen toegevoegd.";s:18:"Gallery info saved";s:33:"Gegevens van het album opgeslagen";s:24:"Image saved successfully";s:32:"Afbeelding met succes opgeslagen";s:14:"Password saved";s:21:"Wachtwoord opgeslagen";s:17:"Permissions saved";s:21:"Permissies opgeslagen";s:15:"User info saved";s:36:"Gegevens van de gebruiker opgeslagen";s:14:"admin bar|Back";s:5:"Terug";s:15:"admin bar|Admin";s:13:"Administratie";s:19:"admin bar|Galleries";s:6:"Albums";s:17:"admin bar|Log out";s:8:"Afmelden";s:22:"admin bar|Edit gallery";s:12:"Bewerk album";s:26:"admin bar|Edit permissions";s:17:"Wijzig permissies";s:24:"admin bar|Delete gallery";s:15:"Verwijder album";s:24:"admin bar|New subgallery";s:14:"Nieuw subalbum";s:26:"admin bar|Re-index gallery";s:17:"Herindexeer album";s:20:"admin bar|Edit image";s:17:"Bewerk afbeelding";s:22:"admin bar|Delete image";s:20:"Verwijder afbeelding";s:19:"admin bar|New image";s:17:"Nieuwe afbeelding";s:24:"Could not save user info";s:58:"De gegevens van de gebruiker konden niet opgeslagen worden";s:54:"New password must be between 6 and 16 characters long.";s:64:"Het nieuwe wachtwoord moet moet tussen 6 en 16 tekens lang zijn.";s:43:"The new passwords you entered do not match.";s:50:"De nieuw ingevoerde wachtwoorden zijn niet gelijk.";s:72:"The current password you entered does not match the one in the database.";s:73:"Het huidig ingevoerd wachtwoord komt niet overeen met dat in de database.";s:53:"The username specified was not found in the database.";s:59:"De ingevoerde gebruikersnaam komt niet voor in de database.";s:31:"Your account has been suspended";s:28:"Uw account is gedeactiveerd.";s:34:"Username and/or password incorrect";s:40:"Gebruikersnaam en/of wachtwoord onjuist.";s:38:"You must enter a username and password";s:48:"U moet een gebruikersnaam en wachtwoord opgeven.";s:27:"Could not save gallery info";s:46:"De albumgegevens konden niet opgeslagen worden";s:23:"Username already exists";s:28:"De gebruikersnaam bestaat al";s:31:"Cannot delete built in accounts";s:40:"Kan ingebouwde accounts niet verwijderen";s:23:"Username not recognised";s:27:"Gebruikersnaam niet herkend";s:22:"Gallery already exists";s:16:"Album bestaat al";s:26:"Could not create directory";s:33:"De map kon niet aangemaakt worden";s:37:"Cannot delete the top level directory";s:38:"De hoofdmap kon niet verwijderd worden";s:19:"File already exists";s:22:"Dit bestand bestaat al";s:21:"Could not upload file";s:37:"Het bestand kon niet ge-upload worden";s:30:"Could not add image to gallery";s:46:"Kon de afbeelding niet aan het album toevoegen";s:38:"Could not find temporary storage space";s:40:"Geen tijdelijke opslagruimte beschikbaar";s:28:"Could not decompress archive";s:34:"Kon het archief niet decomprimeren";s:40:"Some archive contents could not be added";s:63:"Enkele onderdelen van het archief konden niet toegevoegd worden";s:32:"Could not save image information";s:38:"Kon de afbeeldinggegevens niet opslaan";s:22:"Could not delete image";s:34:"Kon de afbeelding niet verwijderen";s:17:"Select gallery...";s:15:"Selecteer album";s:16:"choose thumbnail";s:14:"kies thumbnail";s:64:"Choose the filename of the image used to represent this gallery.";s:74:"Kies de bestandsnaam van de afbeelding welke dit album moet representeren.";s:14:"thumbnail|None";s:4:"Geen";s:16:"thumbnail|Random";s:11:"Willekeurig";s:12:"edit gallery";s:12:"bewerk album";s:9:"Thumbnail";s:9:"Thumbnail";s:16:"Random |
thumbnail";s:22:"Willekeurige |
thumbnail";s:19:"thumbnail|Change...";s:9:"Wijzig...";s:12:"Gallery name";s:9:"Albumnaam";s:11:"Artist name";s:19:"Gefotografeerd door";s:7:"Summary";s:12:"Samenvatting";s:10:"edit image";s:17:"bewerk afbeelding";s:5:"Image";s:10:"Afbeelding";s:10:"Image name";s:15:"Afbeeldingsnaam";s:15:"change password";s:19:"verander wachtwoord";s:67:"Please choose a new password between 6 and 16 characters in length.";s:60:"Kies a.u.b. een nieuw wachtwoord tussen 6 en 16 tekens lang.";s:17:"Current password:";s:18:"Huidig wachtwoord:";s:13:"New password:";s:17:"Nieuw wachtwoord:";s:17:"Confirm password:";s:20:"Bevestig wachtwoord:";s:16:"edit permissions";s:17:"Wijzig permissies";s:5:"Owner";s:8:"Eigenaar";s:6:"Groups";s:7:"Groepen";s:17:"Group permissions";s:15:"Groeppermissies";s:16:"permissions|Read";s:5:"Lezen";s:16:"permissions|Edit";s:8:"Wijzigen";s:15:"permissions|Add";s:9:"Toevoegen";s:18:"permissions|Delete";s:11:"Verwijderen";s:17:"World permissions";s:19:"'Wereld' permissies";s:15:"user management";s:17:"Gebruikers-beheer";s:8:"Username";s:14:"Gebruikersnaam";s:4:"Type";s:4:"Type";s:13:"Administrator";s:9:"Beheerder";s:4:"User";s:9:"Gebruiker";s:9:"Full name";s:14:"Volledige naam";s:8:"Password";s:10:"Wachtwoord";s:22:"admin bar|View gallery";s:12:"Bekijk album";s:26:"admin bar|Change thumbnail";s:16:"Wijzig thumbnail";s:16:"hits table|Graph";s:7:"Grafiek";s:15:"hits table|Hits";s:4:"Hits";s:19:"hits table|Last hit";s:11:"Laatste hit";s:14:"Admin message:";s:18:"Beheerder bericht:";s:6:"log in";s:9:"aanmelden";s:52:"Please enter your admin username and password below.";s:47:"Geef uw beheerder gebruikersnaam en wachtwoord.";s:9:"Username:";s:15:"Gebruikersnaam:";s:9:"Password:";s:11:"Wachtwoord:";s:61:"If you do not have a username then you may log in as a guest.";s:66:"Indien u geen gebruikersnaam heeft kunt u zich als gast aanmelden.";s:49:"You must be an administrator to access this area.";s:59:"U dient beheerder te zijn om dit gebied te kunnen betreden.";s:6:"Email:";s:7:"E-mail:";s:10:"Full name:";s:15:"Volledige naam:";s:4:"edit";s:6:"wijzig";s:6:"delete";s:9:"verwijder";s:7:"suspend";s:10:"deactiveer";s:9:"unsuspend";s:8:"activeer";s:15:"create new user";s:25:"Maak nieuwe gebruiker aan";s:24:"Please choose an option:";s:15:"Maak een keuze:";s:27:"Manage galleries and images";s:28:"Album- en afbeeldingenbeheer";s:17:"View gallery hits";s:16:"Bekijk albumhits";s:15:"Change password";s:17:"Wijzig wachtwoord";s:10:"My profile";s:12:"Mijn profiel";s:12:"Manage users";s:17:"Beheer gebruikers";s:23:"Purge cached thumbnails";s:33:"Verwijder thumbnails uit geheugen";s:16:"Log out of admin";s:34:"Afmelden uit administratiegedeelte";s:11:"new gallery";s:11:"nieuw album";s:11:"Identifier:";s:10:"Albumnaam:";s:9:"new image";s:17:"nieuwe afbeelding";s:74:"This image will not be visible because this gallery contains subgalleries.";s:69:"Deze afbeelding wordt niet zichtbaar omdat dit album subalbums bevat.";s:18:"Upload single file";s:20:"Voeg een bestand toe";s:21:"Image file to upload:";s:25:"Toe te voegen afbeelding:";s:30:"Use filename of uploaded file.";s:54:"Gebruik de bestandsnaam van de toegevoegde afbeelding.";s:27:"Specify different filename:";s:31:"Vul een andere bestandsnaam in:";s:21:"Upload multiple files";s:27:"Voeg meerdere bestanden toe";s:19:"ZIP file to upload:";s:34:"Toe te voegen ZIP-bestandsarchief:";s:15:"Add remote file";s:19:"Niet-lokaal bestand";s:13:"URL of image:";s:22:"URL van de afbeelding:";i:0;a:3:{s:7:"charset";s:11:"iso-8859-15";s:8:"language";s:18:"Dutch (Nederlands)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.no_nb.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:55:"Du har ikke rettigheter til å utføre denne operasjonen.";s:13:"Gallery added";s:16:"Galleri lagt til";s:18:"An error occurred:";s:5:"Feil:";s:11:"Image added";s:14:"Bilde lagt til";s:22:"Archive contents added";s:30:"Inneholdet av arkivet lagt til";s:10:"confirm|OK";s:5:"Godta";s:17:"Thumbnail changed";s:20:"Miniatyrbilde byttet";s:14:"confirm|Cancel";s:6:"Avbryt";s:15:"Gallery deleted";s:15:"Galleri slettet";s:14:"delete gallery";s:13:"slett galleri";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:116:"Galleriet %s er ikke tomt. |
Er du sikker på at du vil slette det og alle undergallerier med bildene disse inneholder?";s:13:"Image deleted";s:13:"Bilde slettet";s:12:"delete image";s:11:"slett bilde";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:75:"Er du sikker pÃ¥ at du vil slette bilde '%s' fra galleriet '%s' for alltid?";s:12:"User deleted";s:14:"Bruker slettet";s:11:"delete user";s:12:"slett bruker";s:52:"Are you sure you want to permanently delete user %s?";s:46:"Er du sikker pÃ¥ at du vil fjerne brukeren %s?";s:27:"Welcome to singapore admin!";s:45:"Velkommen til Singapore administrasjonsmodus!";s:22:"Thank you and goodbye!";s:12:"Takk og adjø";s:22:"Thumbnail cache purged";s:41:"Mellomlager for miniatyrbilder er slettet";s:23:"purge cached thumbnails";s:36:"Slett mellomlager for miniatyrbilder";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:70:"Er du sikker pÃ¥ at du vil slette alle %s mellomlagrede minityrbilder?";s:36:"Gallery re-indexed. %s images added.";s:47:"Galleriet er re-registrert. Bilder %s lagt til.";s:18:"Gallery info saved";s:19:"Galleri-info lagret";s:24:"Image saved successfully";s:12:"Bilde lagret";s:14:"Password saved";s:14:"Passord lagret";s:17:"Permissions saved";s:18:"Rettigheter lagret";s:15:"User info saved";s:17:"Brukerinfo lagret";s:14:"admin bar|Back";s:7:"Tilbake";s:15:"admin bar|Admin";s:13:"Administrator";s:19:"admin bar|Galleries";s:9:"Gallerier";s:17:"admin bar|Log out";s:7:"Logg ut";s:22:"admin bar|Edit gallery";s:15:"Rediger galleri";s:26:"admin bar|Edit permissions";s:19:"Rediger rettigheter";s:24:"admin bar|Delete gallery";s:13:"Slett galleri";s:24:"admin bar|New subgallery";s:17:"Nytt undergalleri";s:26:"admin bar|Re-index gallery";s:20:"Re-registrer galleri";s:20:"admin bar|Edit image";s:13:"Rediger bilde";s:22:"admin bar|Delete image";s:11:"Slett bilde";s:19:"admin bar|New image";s:10:"Nytt bilde";s:24:"Could not save user info";s:35:"Kunne ikke lagre bruker informasjon";s:54:"New password must be between 6 and 16 characters long.";s:43:"Nytt passord mÃ¥ være mellom 6 og 16 tegn.";s:43:"The new passwords you entered do not match.";s:38:"De nye passordene dine samsvarer ikke.";s:72:"The current password you entered does not match the one in the database.";s:61:"Passordet du skrev inn er ikke i samsvar med det i databasen.";s:53:"The username specified was not found in the database.";s:53:"Brukernavnet du skrev inn ble ikke funnet i databasen";s:31:"Your account has been suspended";s:24:"Din bruker er suspendert";s:34:"Username and/or password incorrect";s:35:"Brukernavn og/eller passord er feil";s:38:"You must enter a username and password";s:41:"Du må skrive inn et brukernavn og passord";s:27:"Could not save gallery info";s:36:"Kunne ikke lagre galleri-informasjon";s:23:"Username already exists";s:23:"Brukernavnet eksisterer";s:31:"Cannot delete built in accounts";s:41:"Kan ikke slette forhåndsdefinerte brukere";s:23:"Username not recognised";s:31:"Brukernavnet ble ikke gjenkjent";s:22:"Gallery already exists";s:29:"Galleriet eksisterer allerede";s:26:"Could not create directory";s:25:"Kunne ikke opprette mappe";s:37:"Cannot delete the top level directory";s:29:"Kan ikke slette toppnivåmappe";s:19:"File already exists";s:25:"Filen eksisterer allerede";s:21:"Could not upload file";s:23:"Kunne ikke overføre fil";s:30:"Could not add image to gallery";s:40:"Kunne ikke legge til bilde til galleriet";s:38:"Could not find temporary storage space";s:42:"Kunne ikke finne midlertidig lagringsplass";s:28:"Could not decompress archive";s:28:"Kunne ikke pakke opp arkivet";s:40:"Some archive contents could not be added";s:36:"Noe av arkivet kunne ikke legges til";s:32:"Could not save image information";s:33:"Kunne ikke lagre bildeinformasjon";s:22:"Could not delete image";s:23:"Kunne ikke slette bilde";s:17:"Select gallery...";s:15:"Velg galleri...";s:16:"choose thumbnail";s:18:"velg miniatyrbilde";s:64:"Choose the filename of the image used to represent this gallery.";s:71:"Velg bildefilnavnet som skal brukes for å representere dette galleriet.";s:14:"thumbnail|None";s:5:"Ingen";s:16:"thumbnail|Random";s:9:"Tilfeldig";s:12:"edit gallery";s:15:"Rediger galleri";s:9:"Thumbnail";s:12:"Minityrbilde";s:16:"Random |
thumbnail";s:23:"Tilfeldig |
miniatyrbilde";s:19:"thumbnail|Change...";s:7:"Bytt...";s:12:"Gallery name";s:12:"Galleri navn";s:11:"Artist name";s:11:"Artist navn";s:7:"Summary";s:10:"Sammendrag";s:10:"edit image";s:13:"rediger bilde";s:5:"Image";s:5:"Bilde";s:10:"Image name";s:10:"Bilde navn";s:15:"change password";s:12:"bytt passord";s:67:"Please choose a new password between 6 and 16 characters in length.";s:56:"Velg et nytt passord som inneholder mellom 6 og 16 tegn.";s:17:"Current password:";s:18:"Nåværende passord:";s:13:"New password:";s:13:"Nytt passord:";s:17:"Confirm password:";s:16:"Bekreft passord:";s:16:"edit permissions";s:19:"rediger rettigheter";s:5:"Owner";s:4:"Eier";s:6:"Groups";s:7:"Grupper";s:17:"Group permissions";s:17:"Grupperettigheter";s:16:"permissions|Read";s:4:"Lese";s:16:"permissions|Edit";s:7:"Rediger";s:15:"permissions|Add";s:8:"Legg til";s:18:"permissions|Delete";s:5:"Slett";s:17:"World permissions";s:16:"Alle rettigheter";s:15:"user management";s:20:"brukeradministrasjon";s:8:"Username";s:10:"Brukernavn";s:4:"Type";s:4:"Type";s:13:"Administrator";s:13:"Administrator";s:4:"User";s:6:"Bruker";s:9:"Full name";s:10:"Fullt navn";s:8:"Password";s:7:"Passord";s:22:"admin bar|View gallery";s:10:"Se galleri";s:26:"admin bar|Change thumbnail";s:18:"Bytt miniatyrbilde";s:16:"hits table|Graph";s:4:"Graf";s:15:"hits table|Hits";s:5:"Treff";s:19:"hits table|Last hit";s:11:"Siste treff";s:14:"Admin message:";s:26:"Melding fra administrator:";s:6:"log in";s:8:"Logg inn";s:52:"Please enter your admin username and password below.";s:46:"Skriv inn ditt brukernavn og passord nedenfor:";s:9:"Username:";s:11:"Brukernavn:";s:9:"Password:";s:8:"Passord:";s:61:"If you do not have a username then you may log in as a guest.";s:58:"Hvis du ikke har et brukernavn kan du logge inn som gjest.";s:49:"You must be an administrator to access this area.";s:53:"Du mÃ¥ være administrator for Ã¥ nÃ¥ dette omrÃ¥det.";s:6:"Email:";s:7:"E-post:";s:10:"Full name:";s:11:"Fullt navn:";s:4:"edit";s:7:"rediger";s:6:"delete";s:5:"slett";s:7:"suspend";s:9:"suspender";s:9:"unsuspend";s:4:"åpne";s:15:"create new user";s:13:"lag ny bruker";s:24:"Please choose an option:";s:11:"Ta et valg:";s:27:"Manage galleries and images";s:27:"Rediger gallerier og bilder";s:17:"View gallery hits";s:16:"Se galleri treff";s:15:"Change password";s:12:"Bytt passord";s:10:"My profile";s:18:"Mine innstillinger";s:12:"Manage users";s:19:"Administrer brukere";s:23:"Purge cached thumbnails";s:36:"Slett mellomlager for miniatyrbilder";s:16:"Log out of admin";s:30:"Logg ut fra administratormodus";s:11:"new gallery";s:12:"Nytt galleri";s:11:"Identifier:";s:5:"Navn:";s:9:"new image";s:10:"Nytt bilde";s:97:"This image will not be visible because this gallery is not an album: it contains child galleries.";s:81:"Dette bilde vil ikke være synlig fordi dette galleriet inneholder undergallerier.";s:18:"Upload single file";s:15:"Last opp en fil";s:21:"Image file to upload:";s:26:"Bildefil du vil laste opp:";s:30:"Use filename of uploaded file.";s:33:"Bruk filnavnet til opplastet fil.";s:27:"Specify different filename:";s:22:"Bruk et annet filnavn:";s:21:"Upload multiple files";s:20:"Last opp flere filer";s:19:"ZIP file to upload:";s:25:"Zip-fil du vil laste opp:";s:15:"Add remote file";s:20:"Legg til ekstern fil";s:13:"URL of image:";s:14:"URL til bilde:";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:10:"Icelandic ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.pl.pmo |
---|
0,0 → 1,5 |
a:175:{s:10:"confirm|OK";s:2:"OK";s:14:"confirm|Cancel";s:6:"Anuluj";s:53:"You do not have permission to perform this operation.";s:42:"Nie masz uprawnieñ aby wykonaæ t± operacje";s:13:"Gallery added";s:22:"Galeria zosta³a dodana";s:18:"An error occurred:";s:14:"Wyst±pi³ b³±d:";s:11:"Image added";s:19:"Obraz zosta³ dodany";s:22:"Archive contents added";s:16:"Zawarto¶æ dodano";s:17:"Thumbnail changed";s:27:"Miniatura zosta³a zmieniona";s:15:"Gallery deleted";s:24:"Galeria zosta³a usuniêta";s:14:"delete gallery";s:12:"Usuñ galeriê";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:126:"Galeria %s nie jest pusta. |
Czy jeste¶ pewien, ¿e chcesz bezpowrotnie usun±æ j± oraz wszystkie galerie i obrazy w niej zawarte?";s:13:"Image deleted";s:21:"Obraz zosta³ usuniêty";s:12:"delete image";s:10:"Usuñ obraz";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:71:"Czy jeste¶ pewien, ¿e chcesz bezpowrotnie usun±æ obraz %s z galerii %s?";s:12:"User deleted";s:26:"U¿ytkownik zosta³ usuniêty";s:11:"delete user";s:16:"Usuñ u¿ytkownika";s:52:"Are you sure you want to permanently delete user %s?";s:51:"Czy jeste¶ pewien, ¿e chcesz usun±æ u¿ytkownika %s?";s:27:"Welcome to singapore admin!";s:43:"Witamy w panelu administracyjnym Singapore!";s:22:"Thank you and goodbye!";s:23:"Dziêkujê i do widzenia!";s:32:"Please select one or more items.";s:31:"Proszê wybraæ jeden lub wiêcej.";s:12:"Copy or move";s:19:"Kopiuj lub przenie¶";s:6:"Delete";s:4:"Usuñ";s:18:"%s images deleted.";s:20:"%s obrazów usuniêto.";s:21:"%s galleries deleted.";s:20:"%s galerii usuniêto.";s:13:"Delete Images";s:11:"Usuñ obrazy";s:54:"Are you sure you want to permanently delete %s images?";s:60:"Czy jeste¶ pewien, ¿e chcesz bezpowrotnie usun±æ %s obrazów?";s:16:"Delete Galleries";s:12:"Usuñ galerie";s:57:"Are you sure you want to permanently delete %s galleries?";s:60:"Czy jeste¶ pewien, ¿e chcesz bezpowrotnie usun±æ %s galerii?";s:8:"Re-index";s:8:"Indeksuj";s:44:"Galleries re-indexed. %s total images added.";s:38:"Galeria zindeksowana. %s zdjêæ dodano.";s:19:"%s galleries moved.";s:24:"%s galerii przeniesiono.";s:22:"Thumbnail cache purged";s:32:"Bufor miniatur zosta³ opró¿niony";s:23:"purge cached thumbnails";s:23:"Opró¿nij bufor miniatur";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:81:"Czy jeste¶ pewien, ¿e chcesz usun±æ wszystkie buforowane miniatury? (jest ich %s)";s:36:"Gallery re-indexed. %s images added.";s:38:"Galeria zindeksowana. %s zdjêæ dodano.";s:18:"Gallery info saved";s:38:"Informacja o galerii zosta³a zachowana";s:16:"Image info saved";s:38:"Informacja o galerii zosta³a zachowana";s:14:"Password saved";s:22:"Has³o zosta³o zapisane";s:17:"Permissions saved";s:20:"Uprawnienia zapisane";s:15:"User info saved";s:41:"Informacja o u¿ytkowniku zosta³y zapisane";s:27:"admin bar|Back to galleries";s:17:"Powrót do galerii";s:15:"admin bar|Admin";s:5:"Admin";s:19:"admin bar|Galleries";s:7:"Galerie";s:17:"admin bar|Log out";s:11:"Wyloguj siê";s:22:"admin bar|Edit gallery";s:14:"Edytuj galeriê";s:24:"admin bar|Access control";s:16:"Kontrola dostêpu";s:24:"admin bar|Delete gallery";s:12:"Usuñ galeriê";s:24:"admin bar|New subgallery";s:15:"Nowa podgaleria";s:26:"admin bar|Re-index gallery";s:16:"Indeksuj galeriê";s:20:"admin bar|Edit image";s:12:"Edytuj obraz";s:22:"admin bar|Delete image";s:10:"Usuñ obraz";s:19:"admin bar|New image";s:10:"Nowy obraz";s:24:"Could not save user info";s:46:"Nie uda³o siê zapisaæ informacji o u¿ytkowniku";s:54:"New password must be between 6 and 16 characters long.";s:66:"Haslo musi sk³adaæ siê z co najmniej 6 i nie wiêcej ni¿ 16 znaków.";s:43:"The new passwords you entered do not match.";s:44:"Podane przez Ciebie nowe has³a s± niezgodne.";s:72:"The current password you entered does not match the one in the database.";s:73:"Podane przez Ciebie bie¿±ce has³o nie zgadza siê z has³em w bazie danych.";s:53:"The username specified was not found in the database.";s:56:"Nazwa u¿ytkownika nie zosta³a znaleziona w bazie danych.";s:31:"Your account has been suspended";s:30:"Twoje konto zosta³o zawieszone";s:34:"Username and/or password incorrect";s:41:"Nieprawid³owe has³o lub nazwa u¿ytkownika";s:38:"You must enter a username and password";s:38:"Musisz podaæ nazwê u¿ytkownika i has³o";s:27:"Could not save gallery info";s:42:"Nie uda³o siê zapisaæ informacji o galerii";s:23:"Username already exists";s:23:"U¿ytkownik ju¿ istnieje";s:84:"Username must be at least 3 characters long and contain only alphanumeric characters";s:86:"Nazwa u¿ytkownika musi mieæ conajmniej 3 znaki i zawieraæ musi conajmniej jedn± cyfre.";s:31:"Cannot delete built in accounts";s:36:"Nie mo¿na wykonaæ operacji kasowania";s:23:"Username not recognised";s:31:"Nazwa u¿ytkownika nierozpoznana";s:44:"One or more galleries could not be reindexed";s:43:"Niektóre sk³adniki nie zosta³y zindeksowane";s:40:"One or more galleries could not be moved";s:41:"Niektóre galerie nie zosta³y przeniesione";s:22:"Gallery already exists";s:20:"Galeria ju¿ istnieje";s:26:"Could not create directory";s:31:"Nie uda³o siê utworzyæ katalogu";s:16:"Object not found";s:20:"Obiekt nieznaleziony";s:37:"Cannot delete the top level directory";s:34:"Nie mo¿na usun±æ katalogu g³ównego";s:42:"One or more galleries could not be deleted";s:38:"Niektóre galerie nie zosta³y skasowane";s:19:"File already exists";s:17:"Plik ju¿ istnieje";s:21:"Could not upload file";s:25:"Nie uda³o siê wgraæ pliku";s:30:"Could not add image to gallery";s:37:"Nie uda³o siê dodaæ obrazu do galerii";s:38:"Could not find temporary storage space";s:24:"Za ma³o miejsca na dysku";s:28:"Could not decompress archive";s:33:"Nie uda³o siê rozpakowaæ archiwum";s:40:"Some archive contents could not be added";s:37:"Niektóre sk³adniki nie zosta³y dodane";s:32:"Could not save image information";s:42:"Nie uda³o siê zapisaæ informacji o obrazie";s:22:"Could not delete image";s:27:"Nie uda³o siê usun±æ obrazu";s:39:"One or more images could not be deleted";s:40:"Niektóre sk³adniki nie zosta³y skasowane";s:16:"Choose Thumbnail";s:17:"Wybierz miniaturê";s:64:"Choose the filename of the image used to represent this gallery.";s:66:"Wybierz nazwê pliku obrazu, który bêdzie reprezentowa³ tê galeriê.";s:14:"thumbnail|None";s:4:"Brak";s:16:"thumbnail|Random";s:6:"Losowo";s:12:"Edit Gallery";s:14:"Edytuj galeriê";s:9:"Thumbnail";s:10:"Miniaturka";s:16:"Random |
thumbnail";s:18:"Miniatura |
losowana";s:19:"thumbnail|Change...";s:8:"Zmieñ...";s:12:"Gallery name";s:13:"Nazwa galerii";s:11:"Artist name";s:5:"Autor";s:5:"Email";s:6:"e-mail";s:4:"Date";s:4:"Data";s:9:"Copyright";s:17:"Prawa zastrze¿one";s:7:"Summary";s:12:"Podsumowanie";s:11:"Description";s:4:"Opis";s:12:"Save Changes";s:13:"Zapisz zmiany";s:10:"Edit Image";s:12:"Edytuj obraz";s:5:"Image";s:5:"Obraz";s:10:"Image name";s:12:"Nazwa obrazu";s:8:"Location";s:11:"Lokalizacja";s:6:"Camera";s:6:"Aparat";s:4:"Lens";s:8:"Soczewki";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:16:"Obróbka w ciemni";s:20:"Digital manipulation";s:15:"Obróbka cyfrowa";s:15:"Change Password";s:17:"Zmieñ swoje has³o";s:67:"Please choose a new password between 6 and 16 characters in length.";s:75:"Wybierz proszê nowe has³o, maj±ce co najmniej 6 i nie wiêcej ni¿ 16 znaków.";s:17:"Current password:";s:13:"Obecne has³o:";s:13:"New password:";s:11:"Nowe has³o:";s:17:"Confirm password:";s:16:"Potwierd¼ has³o:";s:14:"Access Control";s:16:"Kontrola dostêpu";s:5:"Owner";s:10:"W³a¶ciciel";s:6:"Groups";s:5:"Grupa";s:19:"access control|Read";s:6:"Czytaj";s:17:"permissions|Owner";s:10:"W³a¶ciciel";s:17:"permissions|Group";s:5:"Grupa";s:17:"permissions|World";s:7:"Wszyscy";s:19:"permissions|Inherit";s:6:"Edytuj";s:19:"access control|Edit";s:6:"Edytuj";s:18:"access control|Add";s:5:"Dodaj";s:21:"access control|Delete";s:5:"Kasuj";s:12:"Edit Profile";s:10:"Mój profil";s:8:"Username";s:17:"Nazwa u¿ytkownika";s:9:"Full name";s:13:"Nazwa galerii";s:15:"User Management";s:23:"ustawienia u¿ytkowników";s:4:"Type";s:3:"Typ";s:13:"Administrator";s:13:"Administrator";s:4:"User";s:10:"U¿ytkownik";s:8:"Password";s:6:"Has³o:";s:16:"hits table|Graph";s:6:"Wykres";s:15:"hits table|Hits";s:12:"Ilo¶æ ods³on";s:19:"hits table|Last hit";s:15:"Ostatnia wizyta";s:14:"Admin message:";s:17:"Komunikat admina:";s:6:"Log In";s:11:"Zaloguj siê";s:52:"Please enter your admin username and password below.";s:38:"Musisz podaæ nazwê u¿ytkownika i has³o";s:9:"Username:";s:18:"Nazwa u¿ytkownika:";s:9:"Password:";s:6:"Has³o:";s:61:"If you do not have a username then you may log in as a guest.";s:66:"Je¿eli nie masz za³o¿onego konta, mo¿esz zalogowaæ siê jako guest.";s:15:"Log in as guest";s:19:"Loguj siê jako go¶æ";s:49:"You must be an administrator to access this area.";s:39:"Musisz mieæ uprawnienia administratora.";s:4:"edit";s:6:"Edytuj";s:6:"delete";s:4:"Usuñ";s:7:"suspend";s:6:"Wy³±cz";s:9:"unsuspend";s:5:"W³±cz";s:15:"Create New User";s:15:"nowy u¿ytkownik";s:6:"Create";s:6:"Stwórz";s:24:"Please choose an option:";s:33:"Wybierz proszê, co chcesz zrobiæ:";s:27:"Manage galleries and images";s:30:"Zarz±dzaæ galeriami i obrazami";s:17:"View gallery hits";s:31:"Wy¶wietliæ statystykê odwiedzin";s:15:"Change password";s:19:"Zmieniæ swoje has³o";s:10:"My profile";s:10:"Mój profil";s:12:"Manage users";s:23:"Zarz±dzaj u¿ytkownikami";s:23:"Purge cached thumbnails";s:23:"Opró¿niæ bufor miniatur";s:16:"Log out of admin";s:13:"Wylogowaæ siê";s:18:"Move or Copy Items";s:18:"Przesuñ lub kopiuj";s:4:"Copy";s:6:"Kopiuj";s:4:"Move";s:7:"Przesuñ";s:11:"New Gallery";s:12:"Nowa galeria";s:10:"Identifier";s:14:"Identyfikator:";s:9:"New Image";s:10:"Nowy obraz";s:97:"This image will not be visible because this gallery is not an album: it contains child galleries.";s:70:"Ten obrazej nie bedzie widoczny, poniewa¿ galeria zawiera pod-galerie.";s:18:"Upload single file";s:16:"Wgraj jeden plik";s:21:"Image file to upload:";s:29:"Wybierz plik do umieszczenia:";s:11:"Identifier:";s:14:"Identyfikator:";s:30:"Use filename of uploaded file.";s:28:"U¿yj oryginalnej nazwy pliku";s:27:"Specify different filename:";s:23:"Podaj inn± nazwê pliku:";s:21:"Upload multiple files";s:18:"Wgraj kikla plików";s:19:"ZIP file to upload:";s:33:"Wybierz plik ZIP do umieszczenia:";s:15:"Add remote file";s:11:"Plik zdalny";s:13:"URL of image:";s:17:"Adres URL obrazu:";s:14:"With selected:";s:11:"Zaznaczone:";s:22:"admin bar|View gallery";s:18:"Ogl±daj podgalerie";s:26:"admin bar|Change thumbnail";s:16:"Zmieñ podgalerie";i:0;a:3:{s:7:"charset";s:10:"iso-8859-2";s:8:"language";s:15:"Polish (Polski)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.pot |
---|
0,0 → 1,776 |
# SOME DESCRIPTIVE TITLE. |
# Copyright (C) YEAR Free Software Foundation, Inc. |
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
# |
#, fuzzy |
msgid "" |
msgstr "" |
"Project-Id-Version: PACKAGE VERSION\n" |
"POT-Creation-Date: 2006-05-20 20:17+0100\n" |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
"Language-Team: LANGUAGE <LL@li.org>\n" |
"MIME-Version: 1.0\n" |
"Content-Type: text/plain; charset=CHARSET\n" |
"Content-Transfer-Encoding: 8bit\n" |
#: ../includes/admin.class.php:153 |
msgid "ERROR" |
msgstr "" |
#: ../includes/admin.class.php:211 |
#: ../templates/admin_default/changethumbnail.tpl.php:30 |
#: ../templates/admin_default/confirm.tpl.php:13 |
#: ../templates/admin_default/multimove.tpl.php:27 |
msgid "confirm|OK" |
msgstr "" |
#: ../includes/admin.class.php:219 |
#: ../templates/admin_default/changethumbnail.tpl.php:31 |
#: ../templates/admin_default/confirm.tpl.php:14 |
#: ../templates/admin_default/multimove.tpl.php:28 |
msgid "confirm|Cancel" |
msgstr "" |
#: ../includes/admin.class.php:237 ../includes/admin.class.php:250 |
#: ../includes/admin.class.php:276 ../includes/admin.class.php:290 |
#: ../includes/admin.class.php:307 ../includes/admin.class.php:322 |
#: ../includes/admin.class.php:339 ../includes/admin.class.php:347 |
#: ../includes/admin.class.php:354 ../includes/admin.class.php:362 |
#: ../includes/admin.class.php:369 ../includes/admin.class.php:376 |
#: ../includes/admin.class.php:393 ../includes/admin.class.php:407 |
#: ../includes/admin.class.php:454 ../includes/admin.class.php:462 |
#: ../includes/admin.class.php:469 ../includes/admin.class.php:478 |
#: ../includes/admin.class.php:496 ../includes/admin.class.php:507 |
#: ../includes/admin.class.php:518 ../includes/admin.class.php:529 |
#: ../includes/admin.class.php:541 ../includes/admin.class.php:552 |
#: ../includes/admin.class.php:563 ../includes/admin.class.php:593 |
msgid "You do not have permission to perform this operation." |
msgstr "" |
#: ../includes/admin.class.php:241 |
msgid "Gallery added" |
msgstr "" |
#: ../includes/admin.class.php:299 |
msgid "Delete Gallery" |
msgstr "" |
#: ../includes/admin.class.php:300 |
#, possible-c-format |
msgid "" |
"Gallery %s is not empty.\n" |
"Are you sure you want to irretrievably delete it and all subgalleries and " |
"images it contains?" |
msgstr "" |
#: ../includes/admin.class.php:315 |
msgid "delete image" |
msgstr "" |
#: ../includes/admin.class.php:316 |
#, possible-c-format |
msgid "Are you sure you want to irretrievably delete image %s from gallery %s?" |
msgstr "" |
#: ../includes/admin.class.php:326 |
msgid "User deleted" |
msgstr "" |
#: ../includes/admin.class.php:331 |
msgid "delete user" |
msgstr "" |
#: ../includes/admin.class.php:332 |
#, possible-c-format |
msgid "Are you sure you want to permanently delete user %s?" |
msgstr "" |
#: ../includes/admin.class.php:401 |
msgid "Please select one or more items." |
msgstr "" |
#: ../includes/admin.class.php:403 |
msgid "Copy or move" |
msgstr "" |
#: ../includes/admin.class.php:405 |
msgid "Delete" |
msgstr "" |
#: ../includes/admin.class.php:412 |
#, possible-c-format |
msgid "%s images deleted." |
msgstr "" |
#: ../includes/admin.class.php:415 |
#, possible-c-format |
msgid "%s galleries deleted." |
msgstr "" |
#: ../includes/admin.class.php:422 |
msgid "Delete Images" |
msgstr "" |
#: ../includes/admin.class.php:423 |
#, possible-c-format |
msgid "Are you sure you want to permanently delete %s images?" |
msgstr "" |
#: ../includes/admin.class.php:425 |
msgid "Delete Galleries" |
msgstr "" |
#: ../includes/admin.class.php:426 |
#, possible-c-format |
msgid "Are you sure you want to permanently delete %s galleries?" |
msgstr "" |
#: ../includes/admin.class.php:430 |
msgid "Re-index" |
msgstr "" |
#: ../includes/admin.class.php:432 |
#, possible-c-format |
msgid "Galleries re-indexed. %s total images added." |
msgstr "" |
#: ../includes/admin.class.php:446 |
#, possible-c-format |
msgid "%s galleries moved." |
msgstr "" |
#: ../includes/admin.class.php:482 |
msgid "Thumbnail cache purged" |
msgstr "" |
#: ../includes/admin.class.php:488 |
msgid "purge cached thumbnails" |
msgstr "" |
#: ../includes/admin.class.php:489 |
#, possible-c-format |
msgid "Are you sure you want to delete all %s cached thumbnails?" |
msgstr "" |
#: ../includes/admin.class.php:500 |
#, possible-c-format |
msgid "Gallery re-indexed. %s images added." |
msgstr "" |
#: ../includes/admin.class.php:521 |
msgid "Image info saved" |
msgstr "" |
#: ../includes/admin.class.php:532 |
msgid "Password saved" |
msgstr "" |
#: ../includes/admin.class.php:544 |
msgid "Permissions saved" |
msgstr "" |
#: ../includes/admin.class.php:555 ../includes/admin.class.php:596 |
#: ../includes/admin.class.php:841 |
msgid "User info saved" |
msgstr "" |
#: ../includes/admin.class.php:641 |
msgid "admin bar|Back to galleries" |
msgstr "" |
#: ../includes/admin.class.php:643 |
msgid "admin bar|Admin" |
msgstr "" |
#: ../includes/admin.class.php:644 |
msgid "admin bar|Galleries" |
msgstr "" |
#: ../includes/admin.class.php:645 |
msgid "admin bar|Log out" |
msgstr "" |
#: ../includes/admin.class.php:647 |
#: ../templates/admin_default/viewgallery.tpl.php:30 |
msgid "admin bar|Edit gallery" |
msgstr "" |
#: ../includes/admin.class.php:648 |
#: ../templates/admin_default/viewgallery.tpl.php:31 |
msgid "admin bar|Access control" |
msgstr "" |
#: ../includes/admin.class.php:649 |
#: ../templates/admin_default/viewgallery.tpl.php:32 |
msgid "admin bar|Delete gallery" |
msgstr "" |
#: ../includes/admin.class.php:650 |
#: ../templates/admin_default/viewgallery.tpl.php:33 |
msgid "admin bar|New subgallery" |
msgstr "" |
#: ../includes/admin.class.php:651 |
#: ../templates/admin_default/viewgallery.tpl.php:34 |
msgid "admin bar|Re-index gallery" |
msgstr "" |
#: ../includes/admin.class.php:653 |
msgid "admin bar|Edit image" |
msgstr "" |
#: ../includes/admin.class.php:654 |
msgid "admin bar|Delete image" |
msgstr "" |
#: ../includes/admin.class.php:656 |
msgid "admin bar|New image" |
msgstr "" |
#: ../includes/admin.class.php:680 ../includes/admin.class.php:843 |
#: ../includes/admin.class.php:869 ../includes/admin.class.php:895 |
#: ../includes/admin.class.php:913 |
msgid "Could not save user info" |
msgstr "" |
#: ../includes/admin.class.php:683 |
msgid "New password must be between 6 and 16 characters long." |
msgstr "" |
#: ../includes/admin.class.php:685 |
msgid "The new passwords you entered do not match." |
msgstr "" |
#: ../includes/admin.class.php:687 |
msgid "" |
"The current password you entered does not match the one in the database." |
msgstr "" |
#: ../includes/admin.class.php:690 |
msgid "The username specified was not found in the database." |
msgstr "" |
#: ../includes/admin.class.php:708 |
msgid "Your account has been suspended" |
msgstr "" |
#: ../includes/admin.class.php:713 |
msgid "Welcome to singapore admin!" |
msgstr "" |
#: ../includes/admin.class.php:717 |
msgid "Username and/or password incorrect" |
msgstr "" |
#: ../includes/admin.class.php:719 |
msgid "You must enter a username and password" |
msgstr "" |
#: ../includes/admin.class.php:730 |
msgid "Thank you and goodbye!" |
msgstr "" |
#: ../includes/admin.class.php:818 |
msgid "Gallery info saved" |
msgstr "" |
#: ../includes/admin.class.php:820 ../includes/admin.class.php:956 |
#: ../includes/admin.class.php:1130 |
msgid "Could not save gallery info" |
msgstr "" |
#: ../includes/admin.class.php:833 |
msgid "Username already exists" |
msgstr "" |
#: ../includes/admin.class.php:836 |
msgid "" |
"Username must be at least 3 characters long and contain only alphanumeric " |
"characters" |
msgstr "" |
#: ../includes/admin.class.php:857 |
msgid "Cannot delete built in accounts" |
msgstr "" |
#: ../includes/admin.class.php:872 ../includes/admin.class.php:897 |
#: ../includes/admin.class.php:915 |
msgid "Username not recognised" |
msgstr "" |
#: ../includes/admin.class.php:969 |
#, possible-c-format |
msgid "Gallery '%s' could not be reindexed" |
msgstr "" |
#: ../includes/admin.class.php:970 |
#, possible-c-format |
msgid "Gallery '%s' reindexed: %s images added" |
msgstr "" |
#: ../includes/admin.class.php:994 |
#, possible-c-format |
msgid "" |
"Unable to copy/move gallery '%s' because the target gallery already exists." |
msgstr "" |
#: ../includes/admin.class.php:996 |
#, possible-c-format |
msgid "" |
"Unable to copy/move gallery '%s' because the target is a child of the source." |
msgstr "" |
#: ../includes/admin.class.php:1005 |
#, possible-c-format |
msgid "Unable to copy/move gallery '%s' because the operation failed." |
msgstr "" |
#: ../includes/admin.class.php:1066 |
msgid "Gallery already exists." |
msgstr "" |
#: ../includes/admin.class.php:1070 |
#, possible-c-format |
msgid "Unable to create directory '%s'" |
msgstr "" |
#: ../includes/admin.class.php:1089 ../includes/admin.class.php:1188 |
#: ../includes/admin.class.php:1266 ../includes/admin.class.php:1397 |
#: ../includes/admin.class.php:1438 ../includes/admin.class.php:1467 |
msgid "Unable to save metadata." |
msgstr "" |
#: ../includes/admin.class.php:1145 |
#, possible-c-format |
msgid "Requested item '%s' appears to be outside the galleries directory" |
msgstr "" |
#: ../includes/admin.class.php:1149 |
msgid "Cannot delete the root gallery." |
msgstr "" |
#: ../includes/admin.class.php:1153 |
#, possible-c-format |
msgid "Gallery '%s' deleted." |
msgstr "" |
#: ../includes/admin.class.php:1155 |
#, possible-c-format |
msgid "Unable to delete gallery '%s'." |
msgstr "" |
#: ../includes/admin.class.php:1186 |
msgid "Thumbnail changed." |
msgstr "" |
#: ../includes/admin.class.php:1218 ../includes/admin.class.php:1321 |
#, possible-c-format |
msgid "" |
"Uploaded image '%s' has unrecognised extension and image type could not be " |
"determined from file contents." |
msgstr "" |
#: ../includes/admin.class.php:1239 |
msgid "File already exists." |
msgstr "" |
#: ../includes/admin.class.php:1243 ../includes/admin.class.php:1287 |
msgid "Could not upload file." |
msgstr "" |
#: ../includes/admin.class.php:1263 |
msgid "Image added" |
msgstr "" |
#: ../includes/admin.class.php:1279 |
msgid "Unable to find temporary storage space." |
msgstr "" |
#: ../includes/admin.class.php:1295 |
msgid "Could not decompress archive." |
msgstr "" |
#: ../includes/admin.class.php:1343 ../includes/admin.class.php:1382 |
#, possible-c-format |
msgid "File '%s' already exists." |
msgstr "" |
#: ../includes/admin.class.php:1407 |
msgid "Archive contents added." |
msgstr "" |
#: ../includes/admin.class.php:1409 |
msgid "Some archive contents could not be added." |
msgstr "" |
#: ../includes/admin.class.php:1454 |
#, possible-c-format |
msgid "Requested item '%s' appears to be outside the galleries directory." |
msgstr "" |
#: ../includes/admin.class.php:1465 |
#, possible-c-format |
msgid "Image '%s' deleted" |
msgstr "" |
#: ../templates/admin_default/changethumbnail.tpl.php:1 |
msgid "Choose Thumbnail" |
msgstr "" |
#: ../templates/admin_default/changethumbnail.tpl.php:6 |
msgid "Choose the filename of the image used to represent this gallery." |
msgstr "" |
#: ../templates/admin_default/changethumbnail.tpl.php:20 |
msgid "thumbnail|None" |
msgstr "" |
#: ../templates/admin_default/changethumbnail.tpl.php:21 |
msgid "thumbnail|Random" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:1 |
msgid "Edit Gallery" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:11 |
msgid "Thumbnail" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:15 |
msgid "" |
"Random\n" |
"thumbnail" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:20 |
msgid "thumbnail|Change..." |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:24 |
#: ../templates/admin_default/galleryhits.tpl.php:12 |
msgid "Gallery name" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:28 |
#: ../templates/admin_default/editimage.tpl.php:19 |
msgid "Artist name" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:44 |
msgid "Summary" |
msgstr "" |
#: ../templates/admin_default/editgallery.tpl.php:53 |
#: ../templates/admin_default/editimage.tpl.php:64 |
#: ../templates/admin_default/editpass.tpl.php:22 |
#: ../templates/admin_default/editpermissions.tpl.php:91 |
#: ../templates/admin_default/editprofile.tpl.php:24 |
#: ../templates/admin_default/edituser.tpl.php:31 |
msgid "Save Changes" |
msgstr "" |
#: ../templates/admin_default/editimage.tpl.php:1 |
msgid "Edit Image" |
msgstr "" |
#: ../templates/admin_default/editimage.tpl.php:11 |
msgid "Image" |
msgstr "" |
#: ../templates/admin_default/editimage.tpl.php:15 |
#: ../templates/admin_default/imagehits.tpl.php:12 |
msgid "Image name" |
msgstr "" |
#: ../templates/admin_default/editpass.tpl.php:1 |
msgid "Change Password" |
msgstr "" |
#: ../templates/admin_default/editpass.tpl.php:2 |
msgid "Please choose a new password between 6 and 16 characters in length." |
msgstr "" |
#: ../templates/admin_default/editpass.tpl.php:9 |
msgid "Current password:" |
msgstr "" |
#: ../templates/admin_default/editpass.tpl.php:13 |
msgid "New password:" |
msgstr "" |
#: ../templates/admin_default/editpass.tpl.php:17 |
msgid "Confirm password:" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:1 |
msgid "Access Control" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:9 |
msgid "Owner" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:18 |
#: ../templates/admin_default/edituser.tpl.php:21 |
msgid "Groups" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:22 |
msgid "access control|Read" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:30 |
#: ../templates/admin_default/editpermissions.tpl.php:47 |
#: ../templates/admin_default/editpermissions.tpl.php:64 |
#: ../templates/admin_default/editpermissions.tpl.php:81 |
msgid "permissions|Owner" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:31 |
#: ../templates/admin_default/editpermissions.tpl.php:48 |
#: ../templates/admin_default/editpermissions.tpl.php:65 |
#: ../templates/admin_default/editpermissions.tpl.php:82 |
msgid "permissions|Group" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:32 |
#: ../templates/admin_default/editpermissions.tpl.php:49 |
#: ../templates/admin_default/editpermissions.tpl.php:66 |
#: ../templates/admin_default/editpermissions.tpl.php:83 |
msgid "permissions|World" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:34 |
#: ../templates/admin_default/editpermissions.tpl.php:51 |
#: ../templates/admin_default/editpermissions.tpl.php:68 |
#: ../templates/admin_default/editpermissions.tpl.php:85 |
msgid "permissions|Inherit" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:39 |
msgid "access control|Edit" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:56 |
msgid "access control|Add" |
msgstr "" |
#: ../templates/admin_default/editpermissions.tpl.php:73 |
msgid "access control|Delete" |
msgstr "" |
#: ../templates/admin_default/editprofile.tpl.php:1 |
msgid "Edit Profile" |
msgstr "" |
#: ../templates/admin_default/editprofile.tpl.php:8 |
#: ../templates/admin_default/edituser.tpl.php:15 |
#: ../templates/admin_default/manageusers.tpl.php:10 |
#: ../templates/admin_default/manageusers.tpl.php:30 |
msgid "Username" |
msgstr "" |
#: ../templates/admin_default/editprofile.tpl.php:16 |
#: ../templates/admin_default/edituser.tpl.php:23 |
#: ../templates/admin_default/manageusers.tpl.php:18 |
msgid "Full name" |
msgstr "" |
#: ../templates/admin_default/edituser.tpl.php:1 |
#: ../templates/admin_default/manageusers.tpl.php:1 |
msgid "User Management" |
msgstr "" |
#: ../templates/admin_default/edituser.tpl.php:17 |
msgid "Type" |
msgstr "" |
#: ../templates/admin_default/edituser.tpl.php:18 |
msgid "Administrator" |
msgstr "" |
#: ../templates/admin_default/edituser.tpl.php:19 |
msgid "User" |
msgstr "" |
#: ../templates/admin_default/edituser.tpl.php:26 |
msgid "Password" |
msgstr "" |
#: ../templates/admin_default/galleryhits.tpl.php:12 |
#: ../templates/admin_default/imagehits.tpl.php:12 |
msgid "hits table|Graph" |
msgstr "" |
#: ../templates/admin_default/galleryhits.tpl.php:12 |
#: ../templates/admin_default/imagehits.tpl.php:12 |
msgid "hits table|Hits" |
msgstr "" |
#: ../templates/admin_default/galleryhits.tpl.php:12 |
#: ../templates/admin_default/imagehits.tpl.php:12 |
msgid "hits table|Last hit" |
msgstr "" |
#: ../templates/admin_default/login.tpl.php:1 |
msgid "Log In" |
msgstr "" |
#: ../templates/admin_default/login.tpl.php:3 |
msgid "Please enter your admin username and password below." |
msgstr "" |
#: ../templates/admin_default/login.tpl.php:8 |
msgid "Username:" |
msgstr "" |
#: ../templates/admin_default/login.tpl.php:9 |
msgid "Password:" |
msgstr "" |
#: ../templates/admin_default/login.tpl.php:19 |
msgid "If you do not have a username then you may log in as a guest." |
msgstr "" |
#: ../templates/admin_default/login.tpl.php:20 |
msgid "Log in as guest" |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:3 |
msgid "You must be an administrator to access this area." |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:19 |
msgid "edit" |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:20 |
msgid "delete" |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:21 |
msgid "suspend" |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:21 |
msgid "unsuspend" |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:28 |
msgid "Create New User" |
msgstr "" |
#: ../templates/admin_default/manageusers.tpl.php:33 |
#: ../templates/admin_default/newgallery.tpl.php:14 |
#: ../templates/admin_default/newimage.tpl.php:48 |
msgid "Create" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:1 |
msgid "Please choose an option:" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:4 |
msgid "Manage galleries and images" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:5 |
msgid "View gallery hits" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:7 |
msgid "Change password" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:8 |
msgid "My profile" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:11 |
msgid "Manage users" |
msgstr "" |
#: ../templates/admin_default/menu.tpl.php:14 |
msgid "Log out of admin" |
msgstr "" |
#: ../templates/admin_default/multimove.tpl.php:1 |
msgid "Move or Copy Items" |
msgstr "" |
#: ../templates/admin_default/multimove.tpl.php:24 |
msgid "Copy" |
msgstr "" |
#: ../templates/admin_default/multimove.tpl.php:25 |
msgid "Move" |
msgstr "" |
#: ../templates/admin_default/newgallery.tpl.php:1 |
msgid "New Gallery" |
msgstr "" |
#: ../templates/admin_default/newgallery.tpl.php:9 |
msgid "Identifier" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:1 |
msgid "New Image" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:3 |
msgid "" |
"This image will not be visible because this gallery is not an album: it " |
"contains child galleries." |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:13 |
msgid "Upload single file" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:17 |
msgid "Image file to upload:" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:22 |
msgid "Identifier:" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:24 |
msgid "Use filename of uploaded file." |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:25 |
msgid "Specify different filename:" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:30 |
msgid "Upload multiple files" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:34 |
msgid "ZIP file to upload:" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:39 |
msgid "Add remote file" |
msgstr "" |
#: ../templates/admin_default/newimage.tpl.php:43 |
msgid "URL of image:" |
msgstr "" |
#: ../templates/admin_default/viewalbum.tpl.php:16 |
#: ../templates/admin_default/viewgallery.tpl.php:16 |
msgid "With selected:" |
msgstr "" |
#: ../templates/admin_default/viewgallery.tpl.php:29 |
msgid "admin bar|View gallery" |
msgstr "" |
#: ../templates/admin_default/viewgallery.tpl.php:36 |
msgid "admin bar|Change thumbnail" |
msgstr "" |
/photogallery/locale/singapore.admin.pt_br.pmo |
---|
0,0 → 1,5 |
a:138:{s:53:"You do not have permission to perform this operation.";s:85:"Você não tem permissão para executar essa operação.";s:13:"Gallery added";s:18:"Galeria adicionada";s:18:"An error occurred:";s:14:"Erro ocorrido:";s:11:"Image added";s:17:"Imagem adicionada";s:22:"Archive contents added";s:48:"Informações do arquivo adicionadas";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:18:"Miniatura alterada";s:14:"confirm|Cancel";s:8:"Cancelar";s:15:"Gallery deleted";s:16:"Galeria removida";s:14:"delete gallery";s:15:"remover galeria";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:128:"Galeria %s não está vazia. |
Você realmente deseja removê-la junto com todas suas subgalerias e imagens?";s:13:"Image deleted";s:15:"Imagem removida";s:12:"delete image";s:14:"remover imagem";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:62:"Você realmente deseja remover a imagem %s da galeria %s?";s:12:"User deleted";s:23:"Usuário removido";s:11:"delete user";s:22:"remover usuário";s:52:"Are you sure you want to permanently delete user %s?";s:72:"Você realmente deseja remover permanentemente o usuário %s?";s:27:"Welcome to singapore admin!";s:60:"Bem vindo à administração do singapore!";s:22:"Thank you and goodbye!";s:20:"Obrigado e até logo!";s:22:"Thumbnail cache purged";s:25:"Cache de miniaturas limpo";s:23:"purge cached thumbnails";s:26:"limpar cache de miniaturas";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:67:"Você realmente deseja limpar todas as %s miniaturas em cache?";s:36:"Gallery re-indexed. %s images added.";s:43:"Galeria reindexada. %s imagens adicionadas.";s:18:"Gallery info saved";s:53:"Informações da galeria salvas com exito";s:24:"Image saved successfully";s:24:"Imagem salva com sucesso";s:14:"Password saved";s:11:"Senha salva";s:17:"Permissions saved";s:34:"Permissões salvas com exito";s:15:"User info saved";s:60:"Informações do usuário salvas com exito";s:14:"admin bar|Back";s:6:"Voltar";s:15:"admin bar|Admin";s:5:"Admin";s:19:"admin bar|Galleries";s:8:"Galerias";s:17:"admin bar|Log out";s:7:"Log out";s:22:"admin bar|Edit gallery";s:14:"Editar galeria";s:26:"admin bar|Edit permissions";s:24:"Editar permissões";s:24:"admin bar|Delete gallery";s:15:"Remover galeria";s:24:"admin bar|New subgallery";s:15:"Nova subgaleria";s:26:"admin bar|Re-index gallery";s:17:"Reindexar galeria";s:20:"admin bar|Edit image";s:13:"Editar imagem";s:22:"admin bar|Delete image";s:14:"Remover imagem";s:19:"admin bar|New image";s:11:"Nova imagem";s:24:"Could not save user info";s:84:"Não foi possível salvar as informações do usuário";s:54:"New password must be between 6 and 16 characters long.";s:46:"A nova senha deve ter entre 6 e 16 caracteres.";s:43:"The new passwords you entered do not match.";s:55:"As novas senhas digitadas não são iguais.";s:72:"The current password you entered does not match the one in the database.";s:86:"A senha atual digitada não correspodente à encontrada no banco de dados.";s:53:"The username specified was not found in the database.";s:71:"O usuário informado não foi encontrado no banco de dados.";s:31:"Your account has been suspended";s:30:"Sua conta está suspensa";s:34:"Username and/or password incorrect";s:35:"Usuário e/ou senha incorreta";s:38:"You must enter a username and password";s:49:"Você deve entrar com usuário e senha";s:27:"Could not save gallery info";s:77:"Não foi possível salvar as informações da galeria";s:23:"Username already exists";s:34:"Usuário já existente";s:31:"Cannot delete built in accounts";s:53:"Nã é possivel remover contas do sistema";s:23:"Username not recognised";s:37:"Usuário não reconhecido";s:22:"Gallery already exists";s:27:"Galeria já existente";s:26:"Could not create directory";s:55:"Não foi possível criar o diretório";s:37:"Cannot delete the top level directory";s:67:"Não é possível deletar o diretório raiz";s:19:"File already exists";s:27:"Arquivo já existente";s:21:"Could not upload file";s:54:"Não foi possível fazer upload do arquivo";s:30:"Could not add image to gallery";s:66:"Não foi possível adicionar a imagem à galeria";s:38:"Could not find temporary storage space";s:84:"Não foi possivel encontrar o espaço temporário de amarzenamento";s:28:"Could not decompress archive";s:46:"Não foi possivel descompactar o arquivo";s:40:"Some archive contents could not be added";s:73:"Algumas informações do arquivo não foram adicionadas";s:32:"Could not save image information";s:79:"Não foi possível salvar as informações desta imagem";s:22:"Could not delete image";s:50:"Não foi possível remover esta imagem";s:16:"choose thumbnail";s:21:"escolha uma miniatura";s:64:"Choose the filename of the image used to represent this gallery.";s:57:"Informe a imagem utilizada para representar esta galeria.";s:14:"thumbnail|None";s:7:"Nenhuma";s:16:"thumbnail|Random";s:16:"Aleatória";s:12:"edit gallery";s:14:"editar galeria";s:9:"Thumbnail";s:9:"Miniatura";s:16:"Random |
thumbnail";s:28:"Miniaturas |
aleatórias";s:19:"thumbnail|Change...";s:10:"Alterar...";s:12:"Gallery name";s:15:"Nome da galeria";s:11:"Artist name";s:15:"Nome do artista";s:7:"Summary";s:14:"Sumário";s:10:"edit image";s:13:"editar imagem";s:5:"Image";s:6:"Imagem";s:10:"Image name";s:14:"Nome da imagem";s:15:"change password";s:13:"alterar senha";s:67:"Please choose a new password between 6 and 16 characters in length.";s:58:"Por favor, informe uma nova senha entre 6 e 16 caracteres.";s:17:"Current password:";s:12:"Senha atual:";s:13:"New password:";s:11:"Nova senha:";s:17:"Confirm password:";s:16:"Confirmar senha:";s:16:"edit permissions";s:24:"editar permissões";s:5:"Owner";s:4:"Dono";s:6:"Groups";s:6:"Grupos";s:17:"Group permissions";s:26:"Permissões do grupo";s:16:"permissions|Read";s:3:"Ler";s:16:"permissions|Edit";s:6:"Editar";s:15:"permissions|Add";s:9:"Adicionar";s:18:"permissions|Delete";s:7:"Remover";s:17:"World permissions";s:26:"Permissões de todos";s:15:"user management";s:27:"controle de usuários";s:8:"Username";s:14:"Usuário";s:4:"Type";s:4:"Tipo";s:13:"Administrator";s:13:"Administrador";s:4:"User";s:14:"Usuário";s:9:"Full name";s:13:"Nome completo";s:8:"Password";s:5:"Senha";s:22:"admin bar|View gallery";s:11:"Ver galeria";s:26:"admin bar|Change thumbnail";s:17:"Alterar miniatura";s:16:"hits table|Graph";s:14:"Gráfico";s:15:"hits table|Hits";s:4:"Hits";s:19:"hits table|Last hit";s:17:"Último hit";s:14:"Admin message:";s:15:"Admin mensagem:";s:6:"log in";s:6:"log In";s:52:"Please enter your admin username and password below.";s:72:"Por favor, entre abaixo com o seu usuário e senha administrativa.";s:9:"Username:";s:15:"Usuário:";s:9:"Password:";s:6:"Senha:";s:61:"If you do not have a username then you may log in as a guest.";s:76:"Se você não tem um usuário deve-se logar como convidado.";s:49:"You must be an administrator to access this area.";s:64:"Você deve ser administrador para acessar essa área.";s:6:"Email:";s:6:"Email:";s:10:"Full name:";s:14:"Nome completo:";s:4:"edit";s:6:"editar";s:6:"delete";s:7:"remover";s:7:"suspend";s:9:"desativar";s:9:"unsuspend";s:6:"ativar";s:15:"create new user";s:25:"criar novo usuário";s:24:"Please choose an option:";s:43:"Por favor, escolha uma opção:";s:27:"Manage galleries and images";s:30:"Controle de galerias e imagens";s:17:"View gallery hits";s:40:"Veja as estatísticas das galerias";s:15:"Change password";s:13:"Alterar senha";s:10:"My profile";s:10:"Meu perfil";s:12:"Manage users";s:27:"Controle de usuários";s:23:"Purge cached thumbnails";s:26:"Limpar cache de miniaturas";s:16:"Log out of admin";s:16:"Log out do admin";s:11:"new gallery";s:12:"nova galeria";s:11:"Identifier:";s:14:"Identificador:";s:9:"new image";s:11:"nova imagem";s:74:"This image will not be visible because this gallery contains subgalleries.";s:86:"Essa imagem não pode ser exibida porque essa galeria contém subgalerias.";s:18:"Upload single file";s:27:"Enviar arquivo único";s:21:"Image file to upload:";s:21:"Imagem a ser enviada:";s:30:"Use filename of uploaded fil.";s:34:"Utilizar o nome da imagem enviada.";s:27:"Specify different filename:";s:27:"Informar um nome diferente:";s:21:"Upload multiple files";s:29:"Enviar vários arquivos";s:19:"ZIP file to upload:";s:19:"Enviar arquivo ZIP:";s:15:"Add remote file";s:24:"Adicionar arquivo remoto";s:13:"URL of image:";s:14:"URL da imagem:";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:19:"Portuguese (Brazil)";s:6:"plural";s:25:"$nplurals=2;$plural=$n>1;";}} |
/photogallery/locale/singapore.admin.ro.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:16:"Galerie adaugata";s:18:"An error occurred:";s:7:"Eroare:";s:11:"Image added";s:16:"Imagina adaugata";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:19:"Miniaturi schimbate";s:14:"confirm|Cancel";s:7:"Renunta";s:15:"Gallery deleted";s:15:"Galerie stearsa";s:14:"delete gallery";s:14:"sterge galerie";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:78:"Galeria %s nu e goala. |
Vrei sa stergi si imaginile si subgaleriile continute?";s:13:"Image deleted";s:15:"Imagine stearsa";s:12:"delete image";s:14:"sterge imagine";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:67:"Esti sigur ca vrei sa stergi irevocabil imaginea %s din galeria %s?";s:12:"User deleted";s:15:"Galerie stearsa";s:11:"delete user";s:14:"sterge galerie";s:52:"Are you sure you want to permanently delete user %s?";s:67:"Esti sigur ca vrei sa stergi irevocabil imaginea %s din galeria %s?";s:27:"Welcome to singapore admin!";s:40:"Bine ai venit in panoul de administrare!";s:22:"Thank you and goodbye!";s:12:"La revedere!";s:22:"Thumbnail cache purged";s:28:"Miniaturile din cache sterse";s:23:"purge cached thumbnails";s:28:"sterge miniaturile din cache";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:52:"Sigur vrei sa stergi toate %s miniaturile din cache?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:18:"Informatie salvata";s:24:"Image saved successfully";s:25:"Imagine salvata cu succes";s:14:"Password saved";s:14:"Parola salvata";s:17:"Permissions saved";s:14:"Parola salvata";s:15:"User info saved";s:18:"Informatie salvata";s:14:"admin bar|Back";s:6:"Inapoi";s:15:"admin bar|Admin";s:5:"Admin";s:19:"admin bar|Galleries";s:7:"Galerii";s:17:"admin bar|Log out";s:6:"Iesire";s:22:"admin bar|Edit gallery";s:16:"Editeaza galerie";s:26:"admin bar|Edit permissions";s:16:"Editeaza galerie";s:24:"admin bar|Delete gallery";s:14:"Sterge galerie";s:24:"admin bar|New subgallery";s:15:"subgalerie noua";s:26:"admin bar|Re-index gallery";s:14:"Sterge galerie";s:20:"admin bar|Edit image";s:16:"Editeaza imagine";s:22:"admin bar|Delete image";s:14:"Sterge imagine";s:19:"admin bar|New image";s:12:"Imagine noua";s:24:"Could not save user info";s:38:"Nu pot salva informatia despre galerie";s:54:"New password must be between 6 and 16 characters long.";s:47:"Parola trebuie sa aiba intre 6 si 16 caractere.";s:43:"The new passwords you entered do not match.";s:35:"Parolele introduse nu se potrivesc.";s:72:"The current password you entered does not match the one in the database.";s:58:"Parola introdusa nu se potriveste cu cea din baza de date.";s:53:"The username specified was not found in the database.";s:44:"Utilizatorul nu a fost gasit in baza de date";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:34:"Utilizator si/sau parola incorecta";s:38:"You must enter a username and password";s:54:"Trebuie sa introduci un nume de utilizator si o parola";s:27:"Could not save gallery info";s:38:"Nu pot salva informatia despre galerie";s:23:"Username already exists";s:20:"Fisierul exista deja";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:19:"Galeria deja exista";s:26:"Could not create directory";s:19:"Nu pot crea galeria";s:37:"Cannot delete the top level directory";s:24:"Nu pot sterge directorul";s:19:"File already exists";s:20:"Fisierul exista deja";s:21:"Could not upload file";s:0:"";s:30:"Could not add image to gallery";s:33:"Nu pot adauga imaginea la galerie";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:22:"Nu pot sterge imaginea";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:38:"Nu pot salva informatia despre imagine";s:22:"Could not delete image";s:22:"Nu pot sterge imaginea";s:17:"Select gallery...";s:14:"sterge galerie";s:16:"choose thumbnail";s:15:"alege miniatura";s:64:"Choose the filename of the image used to represent this gallery.";s:66:"Alege numele de fisier al imaginii care vrei sa reprezinte galeria";s:14:"thumbnail|None";s:8:"Niciunul";s:16:"thumbnail|Random";s:7:"Aleator";s:12:"edit gallery";s:15:"diteaza galeria";s:9:"Thumbnail";s:8:"Niciunul";s:16:"Random |
thumbnail";s:20:"Miniatura |
aleatoare";s:19:"thumbnail|Change...";s:10:"Schimba...";s:12:"Gallery name";s:15:"Numele galeriei";s:11:"Artist name";s:17:"Numele artistului";s:7:"Summary";s:0:"";s:10:"edit image";s:16:"editeaza imagine";s:5:"Image";s:7:"Imagine";s:10:"Image name";s:15:"Numele imaginii";s:15:"change password";s:14:"schimba parola";s:67:"Please choose a new password between 6 and 16 characters in length.";s:63:"Te rog alege o parola noua cu o lungime intre 6 si 16 caractere";s:17:"Current password:";s:15:"Parola curenta:";s:13:"New password:";s:12:"Parola noua:";s:17:"Confirm password:";s:16:"Confirma parola:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:5:"User:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:5:"User:";s:9:"Full name";s:15:"Numele galeriei";s:8:"Password";s:7:"Parola:";s:22:"admin bar|View gallery";s:15:"subgalerie noua";s:26:"admin bar|Change thumbnail";s:15:"subgalerie noua";s:16:"hits table|Graph";s:6:"Grafic";s:15:"hits table|Hits";s:7:"Hit-uri";s:19:"hits table|Last hit";s:11:"Ultimul hit";s:14:"Admin message:";s:26:"Mesajul administratorului:";s:6:"log in";s:12:"Administrare";s:52:"Please enter your admin username and password below.";s:54:"Trebuie sa introduci un nume de utilizator si o parola";s:9:"Username:";s:5:"User:";s:9:"Password:";s:7:"Parola:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:15:"Numele galeriei";s:4:"edit";s:0:"";s:6:"delete";s:14:"sterge imagine";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:16:"Alege o optiune:";s:27:"Manage galleries and images";s:36:"Administreaza galeriile si imaginile";s:17:"View gallery hits";s:25:"Vezi hit-urile galeriilor";s:15:"Change password";s:14:"Schimba parola";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:28:"Sterge miniaturile din cache";s:16:"Log out of admin";s:6:"Iesire";s:11:"new gallery";s:12:"galerie noua";s:11:"Identifier:";s:14:"Identificator:";s:9:"new image";s:12:"imagine noua";s:74:"This image will not be visible because this gallery contains subgalleries.";s:57:"Imaginea nu e vizibila, pentru ca galeria are subgalerii.";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:18:"Fisier de uploadat";s:30:"Use filename of uploaded file.";s:36:"Foloseste numele fisierlui uploadat.";s:27:"Specify different filename:";s:29:"Specifica alt nume de fisier:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:18:"Fisier de uploadat";s:15:"Add remote file";s:13:"Fisier remote";s:13:"URL of image:";s:15:"Link la imagine";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:9:"Romanian ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.sk.pmo |
---|
0,0 → 1,5 |
a:166:{s:5:"ERROR";s:5:"CHYBA";s:10:"confirm|OK";s:2:"OK";s:14:"confirm|Cancel";s:8:"Zrušiť";s:53:"You do not have permission to perform this operation.";s:49:"Na vykonanie tejto operácie nemáte oprávnenie.";s:13:"Gallery added";s:17:"Galéria pridaná";s:14:"Delete Gallery";s:16:"Zmazať galériu";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:136:"Galéria %s nie je prázdna. |
Naozaj ju chcete nenávratne vymazať vrátane všetkých vnorených galérií a obrázkov ktoré obsahuje?";s:12:"delete image";s:16:"zmazať obrázok";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:61:"Naozaj chcete nenávratne vymazať obrázok %s z galérie %s?";s:12:"User deleted";s:21:"Užívateľ vymazaný";s:11:"delete user";s:20:"zmazať užívateľa";s:52:"Are you sure you want to permanently delete user %s?";s:48:"Naozaj chcete natrvalo vymazať užívateľa %s?";s:32:"Please select one or more items.";s:46:"Zvoľte prosím jednu alebo viacero položiek.";s:12:"Copy or move";s:26:"Kopírovať alebo vymazať";s:6:"Delete";s:8:"Vymazať";s:18:"%s images deleted.";s:25:"%s obrázkov vymazaných.";s:21:"%s galleries deleted.";s:25:"%s galérií vymazaných.";s:13:"Delete Images";s:16:"Zmazať obrázky";s:54:"Are you sure you want to permanently delete %s images?";s:45:"Naozaj chcete natrvalo vymazať %s obrázkov?";s:16:"Delete Galleries";s:16:"Zmazať galérie";s:57:"Are you sure you want to permanently delete %s galleries?";s:45:"Naozaj chcete natrvalo vymazať %s galérií?";s:8:"Re-index";s:13:"Re-indexovať";s:44:"Galleries re-indexed. %s total images added.";s:54:"Galérie reindexované. Spolu pridaných %s obrázkov.";s:19:"%s galleries moved.";s:26:"%s galérií presunutých.";s:22:"Thumbnail cache purged";s:27:"Cache náhľadov vymazaná.";s:23:"purge cached thumbnails";s:25:"vymazať cache náhľadov";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:56:"Naozaj chcete z cache vymazať všetkých %s náhľadov?";s:36:"Gallery re-indexed. %s images added.";s:48:"Galéria reindexovaná. Pridaných %s obrázkov.";s:16:"Image info saved";s:32:"Informácie o obrázku uložené";s:14:"Password saved";s:15:"Heslo uložené";s:17:"Permissions saved";s:21:"Oprávnenia uložené";s:15:"User info saved";s:38:"Informácie o užívateľovi uložené";s:27:"admin bar|Back to galleries";s:18:"Späť na galérie";s:15:"admin bar|Admin";s:5:"Admin";s:19:"admin bar|Galleries";s:8:"Galérie";s:17:"admin bar|Log out";s:13:"Odhlásiť sa";s:22:"admin bar|Edit gallery";s:17:"Upraviť galériu";s:24:"admin bar|Access control";s:18:"Správa prístupov";s:24:"admin bar|Delete gallery";s:17:"Vymazať galériu";s:24:"admin bar|New subgallery";s:23:"Nová vnorená galéria";s:26:"admin bar|Re-index gallery";s:22:"Re-indexovať galériu";s:20:"admin bar|Edit image";s:17:"Upraviť obrázok";s:22:"admin bar|Delete image";s:17:"Vymazať obrázok";s:19:"admin bar|New image";s:14:"Nový obrázok";s:24:"Could not save user info";s:51:"Nepodarilo sa uložiť informácie o užívateľovi";s:54:"New password must be between 6 and 16 characters long.";s:47:"Nové heslo musí byť dlhé od 6 do 16 znakov.";s:43:"The new passwords you entered do not match.";s:45:"Nové heslá ktoré ste zadali sa nezhodujú.";s:72:"The current password you entered does not match the one in the database.";s:68:"Aktuálne heslo ktoré ste zadali sa nezhoduje s heslom v databáze.";s:53:"The username specified was not found in the database.";s:61:"Dané užívateľské meno sa v databáze nepodarilo nájsť.";s:31:"Your account has been suspended";s:30:"Váš účet bol pozastavený.";s:27:"Welcome to singapore admin!";s:37:"Vitajte v správe systému singapore!";s:34:"Username and/or password incorrect";s:49:"Užívateľské meno a/alebo heslo sú nesprávne";s:38:"You must enter a username and password";s:43:"Musíte zadať užívateľské meno a heslo";s:22:"Thank you and goodbye!";s:22:"Ďakujeme a dovidenia!";s:18:"Gallery info saved";s:32:"Informácie o galérii uložené";s:27:"Could not save gallery info";s:45:"Nepodarilo sa uložiť informácie o galérii";s:23:"Username already exists";s:33:"Užívateľské meno už existuje";s:84:"Username must be at least 3 characters long and contain only alphanumeric characters";s:21:"Užívateľské meno ";s:31:"Cannot delete built in accounts";s:36:"Zabudované účty nemožno vymazať";s:23:"Username not recognised";s:45:"Nepodarilo sa rozpoznať užívateľské meno";s:35:"Gallery '%s' could not be reindexed";s:41:"Galériu '%s' sa nepodarilo re-indexovať";s:39:"Gallery '%s' reindexed: %s images added";s:53:"Galéria '%s' re-indexovaná: pridaných %s obrázkov";s:75:"Unable to copy/move gallery '%s' because the target gallery already exists.";s:93:"Galériu '%s' sa nepodarilo skopírovať/presunúť pretože cieľová galéria už existuje.";s:77:"Unable to copy/move gallery '%s' because the target is a child of the source.";s:94:"Galériu '%s' sa nepodarilo skopírovať/presunúť pretože cieľom je jej vnorená galéria.";s:62:"Unable to copy/move gallery '%s' because the operation failed.";s:79:"Galériu '%s' sa nepodarilo skopírovať/presunúť pretože operácia zlihala.";s:23:"Gallery already exists.";s:22:"Galéria už existuje.";s:31:"Unable to create directory '%s'";s:37:"Nepodarilo sa vytvoriť adresár '%s'";s:24:"Unable to save metadata.";s:32:"Nepodarilo sa uložiť metadata.";s:65:"Requested item '%s' appears to be outside the galleries directory";s:68:"Požadovaná položka '%s' je pravdepodobne mimo adresára galérií";s:31:"Cannot delete the root gallery.";s:37:"Kmeňovú galériu nemožno vymazať.";s:21:"Gallery '%s' deleted.";s:24:"Galéria '%s' vymazaná.";s:30:"Unable to delete gallery '%s'.";s:37:"Galériu '%s' sa nepodarilo vymazať.";s:18:"Thumbnail changed.";s:18:"Náhľad zmenený.";s:105:"Uploaded image '%s' has unrecognised extension and image type could not be determined from file contents.";s:104:"Nahratý obrázok '%s' má nerozpoznanú príponu a typ obrázku sa nepodarilo určiť z obsahu súboru.";s:20:"File already exists.";s:20:"Súbor už existuje.";s:22:"Could not upload file.";s:29:"Súbor sa nepodarilo nahrať.";s:11:"Image added";s:17:"Obrázok pridaný";s:39:"Unable to find temporary storage space.";s:59:"Nepodarilo sa nájsť prístor na dočasné uloženie dát.";s:29:"Could not decompress archive.";s:37:"Archív sa nepodarilo dekomprimovať.";s:25:"File '%s' already exists.";s:25:"Súbor '%s' už existuje.";s:23:"Archive contents added.";s:24:"Obsah archívu pridaný.";s:41:"Some archive contents could not be added.";s:45:"Časť obsahu archívu sa nepodarilo pridať.";s:66:"Requested item '%s' appears to be outside the galleries directory.";s:69:"Požadovaná položka '%s' je pravdepodobne mimo adresára galérií.";s:18:"Image '%s' deleted";s:23:"Obrázok '%s' vymazaný";s:16:"Choose Thumbnail";s:16:"Zvoľte náhľad";s:64:"Choose the filename of the image used to represent this gallery.";s:74:"Zvoľte názov súboru obrázku, ktorý má reprezentovať túto galériu.";s:14:"thumbnail|None";s:7:"Žiaden";s:16:"thumbnail|Random";s:9:"Náhodný";s:12:"Edit Gallery";s:17:"Upraviť galériu";s:9:"Thumbnail";s:8:"Náhľad";s:16:"Random |
thumbnail";s:18:"Náhodný |
náhľad";s:19:"thumbnail|Change...";s:10:"Zmeniť...";s:12:"Gallery name";s:15:"Názov galérie";s:11:"Artist name";s:11:"Meno autora";s:7:"Summary";s:6:"Súhrn";s:12:"Save Changes";s:14:"Uložiť zmeny";s:10:"Edit Image";s:17:"Upraviť obrázok";s:5:"Image";s:8:"Obrázok";s:10:"Image name";s:15:"Názov obrázku";s:15:"Change Password";s:13:"Zmeniť heslo";s:67:"Please choose a new password between 6 and 16 characters in length.";s:52:"Zvoľte prosím nové heslo dlhé od 6 do 16 znakov.";s:17:"Current password:";s:17:"Súčasné heslo:";s:13:"New password:";s:12:"Nové heslo:";s:17:"Confirm password:";s:16:"Potvrdiť heslo:";s:14:"Access Control";s:18:"Správa prístupov";s:5:"Owner";s:8:"Majiteľ";s:6:"Groups";s:7:"Skupiny";s:19:"access control|Read";s:8:"Čítať";s:17:"permissions|Owner";s:8:"Majiteľ";s:17:"permissions|Group";s:7:"Skupina";s:17:"permissions|World";s:4:"Svet";s:19:"permissions|Inherit";s:8:"Zdedené";s:19:"access control|Edit";s:8:"Upraviť";s:18:"access control|Add";s:7:"Pridať";s:21:"access control|Delete";s:8:"Vymazať";s:12:"Edit Profile";s:15:"Upraviť profil";s:8:"Username";s:20:"Užívateľské meno";s:9:"Full name";s:10:"Celé meno";s:15:"User Management";s:21:"Správa užívateľov";s:4:"Type";s:3:"Typ";s:13:"Administrator";s:14:"Administrátor";s:4:"User";s:11:"Užívateľ";s:8:"Password";s:5:"Heslo";s:16:"hits table|Graph";s:4:"Graf";s:15:"hits table|Hits";s:10:"Návštevy";s:19:"hits table|Last hit";s:20:"Posledná návšteva";s:6:"Log In";s:11:"Prihlásiť";s:52:"Please enter your admin username and password below.";s:98:"Zadajte prosím svoje užívateľské meno a heslo pre prihlásenie do správy systému singapore.";s:9:"Username:";s:21:"Užívateľské meno:";s:9:"Password:";s:6:"Heslo:";s:61:"If you do not have a username then you may log in as a guest.";s:67:"Ak nemáte užívateľské meno, môžete sa prihlásiť ako hosť.";s:15:"Log in as guest";s:21:"Prihlásiť ako hosť";s:49:"You must be an administrator to access this area.";s:56:"Na prístup do tejto časti musíte byť administrátor.";s:4:"edit";s:8:"upraviť";s:6:"delete";s:8:"vymazať";s:7:"suspend";s:11:"pozastaviť";s:9:"unsuspend";s:21:"zrušiť pozastavenie";s:15:"Create New User";s:30:"Vytvoriť nového užívateľa";s:6:"Create";s:9:"Vytvoriť";s:24:"Please choose an option:";s:26:"Zvoľte prosím možnosť:";s:27:"Manage galleries and images";s:30:"Spravovať galérie a obrázky";s:17:"View gallery hits";s:29:"Zobraziť návštevy galérie";s:15:"Change password";s:13:"Zmeniť heslo";s:10:"My profile";s:11:"Môj profil";s:12:"Manage users";s:24:"Spravovať užívateľov";s:16:"Log out of admin";s:30:"Odhlásiť zo správy systému";s:18:"Move or Copy Items";s:37:"Presunúť alebo kopírovať položky";s:4:"Copy";s:11:"Kopírovať";s:4:"Move";s:10:"Presunúť";s:11:"New Gallery";s:14:"Nová galéria";s:10:"Identifier";s:14:"Identifikátor";s:9:"New Image";s:14:"Nový obrázok";s:97:"This image will not be visible because this gallery is not an album: it contains child galleries.";s:102:"Tento obrázok nebude viditeľný, pretože táto galéria nie je albumom: obsahuje vnorené galérie.";s:18:"Upload single file";s:20:"Nahrať jeden súbor";s:21:"Image file to upload:";s:28:"Súbor ubrázku na nahratie:";s:11:"Identifier:";s:15:"Identifikátor:";s:30:"Use filename of uploaded file.";s:35:"Použiť názov nahratého súboru.";s:27:"Specify different filename:";s:27:"Zadať iný názov súboru:";s:21:"Upload multiple files";s:24:"Nahrať viacero súborov";s:19:"ZIP file to upload:";s:23:"Súbor ZIP na nahratie:";s:15:"Add remote file";s:25:"Pridať vzdialený súbor";s:13:"URL of image:";s:13:"URL obrázku:";s:14:"With selected:";s:14:"S označeným:";s:22:"admin bar|View gallery";s:18:"Zobraziť galériu";s:26:"admin bar|Change thumbnail";s:16:"Zmeniť náhľad";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:20:"Slovak (Slovenský) ";s:6:"plural";s:107:"$nplurals=3;$plural=$n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2;";}} |
/photogallery/locale/singapore.admin.sv.pmo |
---|
0,0 → 1,4 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:21:"Bildarkiv finns redan";s:18:"An error occurred:";s:0:"";s:11:"Image added";s:0:"";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:0:"";s:17:"Thumbnail changed";s:8:"Ändra...";s:14:"confirm|Cancel";s:0:"";s:15:"Gallery deleted";s:11:"Upp en nivå";s:14:"delete gallery";s:15:"ändra bildarkiv";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:0:"";s:13:"Image deleted";s:6:"Datum:";s:12:"delete image";s:10:"ändra bild";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:0:"";s:12:"User deleted";s:11:"Upp en nivå";s:11:"delete user";s:15:"ändra bildarkiv";s:52:"Are you sure you want to permanently delete user %s?";s:0:"";s:27:"Welcome to singapore admin!";s:0:"";s:22:"Thank you and goodbye!";s:0:"";s:22:"Thumbnail cache purged";s:0:"";s:23:"purge cached thumbnails";s:24:"Släng sparade minibilder";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:0:"";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:0:"";s:24:"Image saved successfully";s:0:"";s:14:"Password saved";s:9:"Lösenord:";s:17:"Permissions saved";s:9:"Lösenord:";s:15:"User info saved";s:0:"";s:14:"admin bar|Back";s:8:"Tillbaka";s:15:"admin bar|Admin";s:13:"Administratör";s:19:"admin bar|Galleries";s:9:"Bildarkiv";s:17:"admin bar|Log out";s:8:"Logga ut";s:22:"admin bar|Edit gallery";s:15:"Ändra bildarkiv";s:26:"admin bar|Edit permissions";s:15:"Ändra bildarkiv";s:24:"admin bar|Delete gallery";s:16:"Radera bildarkiv";s:24:"admin bar|New subgallery";s:15:"Nytt underarkiv";s:26:"admin bar|Re-index gallery";s:16:"Radera bildarkiv";s:20:"admin bar|Edit image";s:10:"Ändra bild";s:22:"admin bar|Delete image";s:11:"Radera bild";s:19:"admin bar|New image";s:7:"Ny bild";s:24:"Could not save user info";s:30:"Kunde inte spara informationen";s:54:"New password must be between 6 and 16 characters long.";s:44:"Nytt lösenord måste innehålla 6 - 16 tecken.";s:43:"The new passwords you entered do not match.";s:32:"Det nya lösenordet matcher inte.";s:72:"The current password you entered does not match the one in the database.";s:40:"Lösenordet matchar inte det i databasen.";s:53:"The username specified was not found in the database.";s:41:"Ditt användarnamn finns inte i databasen.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:35:"Fel användarnamn och/eller lösenord";s:38:"You must enter a username and password";s:30:"Ange användarnamn och lösenord";s:27:"Could not save gallery info";s:30:"Kunde inte spara informationen";s:23:"Username already exists";s:18:"Bilden finns redan";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:21:"Bildarkiv finns redan";s:26:"Could not create directory";s:34:"Det gick inte att skapa en katalog";s:37:"Cannot delete the top level directory";s:37:"Kunde inte att radera översta arkivet";s:19:"File already exists";s:18:"Bilden finns redan";s:21:"Could not upload file";s:24:"Kunde inte radera bilden";s:30:"Could not add image to gallery";s:33:"Kunde inte spara bilden i arkivet";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:24:"Kunde inte radera bilden";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:33:"Kunde inte spara bild information";s:22:"Could not delete image";s:24:"Kunde inte radera bilden";s:17:"Select gallery...";s:15:"ändra bildarkiv";s:16:"choose thumbnail";s:13:"Välj minibild";s:64:"Choose the filename of the image used to represent this gallery.";s:52:"Välj en bild som skall representera detta bildarkiv.";s:14:"thumbnail|None";s:5:"Ingen";s:16:"thumbnail|Random";s:16:"Slumpmässigt val";s:12:"edit gallery";s:15:"ändra bildarkiv";s:9:"Thumbnail";s:5:"Ingen";s:16:"Random |
thumbnail";s:34:"Slumpmässigt val |
av minibild gjord";s:19:"thumbnail|Change...";s:8:"Ändra...";s:12:"Gallery name";s:21:"Bildarkiv finns redan";s:11:"Artist name";s:0:"";s:7:"Summary";s:0:"";s:10:"edit image";s:10:"ändra bild";s:5:"Image";s:0:"";s:10:"Image name";s:6:"Datum:";s:15:"change password";s:14:"ändra lösenord";s:67:"Please choose a new password between 6 and 16 characters in length.";s:55:"Vänligen välj nytt lösenord innehållande 6 - 16 tecken.";s:17:"Current password:";s:19:"Nuvarande lösenord:";s:13:"New password:";s:14:"Nytt lösenord:";s:17:"Confirm password:";s:18:"Bekräfta lösenord:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:13:"Användarnamn:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:13:"Användarnamn:";s:9:"Full name";s:21:"Bildarkiv finns redan";s:8:"Password";s:9:"Lösenord:";s:22:"admin bar|View gallery";s:15:"Nytt underarkiv";s:26:"admin bar|Change thumbnail";s:15:"Nytt underarkiv";s:16:"hits table|Graph";s:0:"";s:15:"hits table|Hits";s:0:"";s:19:"hits table|Last hit";s:0:"";s:14:"Admin message:";s:0:"";s:6:"log in";s:8:"Logga in";s:52:"Please enter your admin username and password below.";s:30:"Ange användarnamn och lösenord";s:9:"Username:";s:13:"Användarnamn:";s:9:"Password:";s:9:"Lösenord:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:21:"Bildarkiv finns redan";s:4:"edit";s:0:"";s:6:"delete";s:10:"ändra bild";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:5:"Välj:";s:27:"Manage galleries and images";s:28:"Hantera bildarkiv och bilder";s:17:"View gallery hits";s:15:"Besöksstatistik";s:15:"Change password";s:14:"Ändra lösenord";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:24:"Släng sparade minibilder";s:16:"Log out of admin";s:36:"Logga ut från administratorsektionen";s:11:"new gallery";s:14:"nytt bildarkiv";s:11:"Identifier:";s:14:"Identifiering:";s:9:"new image";s:7:"Ny bild";s:74:"This image will not be visible because this gallery contains subgalleries.";s:0:"";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:24:"Bild som ska laddas upp:";s:30:"Use filename of uploaded file.";s:27:"Använd filnamnet på bilden.";s:27:"Specify different filename:";s:19:"Skriv nytt filnamn:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:24:"Bild som ska laddas upp:";s:15:"Add remote file";s:9:"Fjärrbild";s:13:"URL of image:";s:12:"Bildens URL:";i:0;a:3:{s:7:"charset";s:7:"CHARSET";s:8:"language";s:8:"SWEDISH ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.tr.pmo |
---|
0,0 → 1,7 |
a:92:{s:27:"Welcome to singapore admin!";s:37:"Singapore admin menüsüne hoþgeldiniz!";s:18:"An error occurred:";s:23:"Bir hata meydana geldi.";s:22:"Thank you and goodbye!";s:30:"Teþekkürler ve görüþmek üzere!";s:14:"Password saved";s:21:"Þifreniz kayýt edildi";s:13:"Gallery added";s:14:"Galeri eklendi";s:18:"Gallery info saved";s:34:"Galeri açýklamasý kayýt edilmiþtir";s:10:"confirm|OK";s:5:"Tamam";s:15:"Gallery deleted";s:14:"Galeri silindi";s:14:"confirm|Cancel";s:5:"Ýptal";s:14:"delete gallery";s:12:"Galeriyi sil";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:77:"Galeri %s halen resim içermekte |
Galerinin tamamen silinmesini istiyormusunuz?";s:17:"Thumbnail changed";s:26:"Öngörüntü deðiþtirilmiþtir";s:11:"Image added";s:13:"Resim eklendi";s:24:"Image saved successfully";s:29:"Resim baþarýyla kayýt edildi.";s:13:"Image deleted";s:12:"Resim silidi";s:12:"delete image";s:9:"Resim sil";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:55:"Resim (%s) tamamen galeri %s'den silmek istiyormusunuz?";s:22:"Thumbnail cache purged";s:34:"Resim öngörüntü Cache'i boþaltýldý";s:23:"purge cached thumbnails";s:33:"Resim öngörüntü Cache'ini boþalt.";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:63:"Bütün %s resim öngörüntülerini Cache'den silmek istiyormusunuz?";s:14:"admin bar|Back";s:6:"Geriye";s:15:"admin bar|Admin";s:7:"Ayarlar";s:19:"admin bar|Galleries";s:9:"Galeriler";s:17:"admin bar|Log out";s:3:"Çýk";s:22:"admin bar|Edit gallery";s:16:"Galeriyi düzenle";s:24:"admin bar|Delete gallery";s:12:"Galeriyi sil";s:24:"admin bar|New subgallery";s:15:"Yeni alt-galeri";s:20:"admin bar|Edit image";s:14:"Resimi düzenle";s:22:"admin bar|Delete image";s:10:"Resimi sil";s:19:"admin bar|New image";s:10:"Yeni resim";s:43:"There was an error saving the new password.";s:40:"Yeni þifre kayýtýnda hata meydana geldi.";s:54:"New password must be between 6 and 16 characters long.";s:36:"Þifre 6 - 16 karater içermesi lazým.";s:43:"The new passwords you entered do not match.";s:37:"Verdýðýnz þifreler býrbýrýne uymuyor.";s:72:"The current password you entered does not match the one in the database.";s:23:"Verdýðýnz þifre yanlýþ.";s:53:"The username specified was not found in the database.";s:33:"Verdiðiniz kullanýcý ismi yoktur.";s:34:"Username and/or password incorrect";s:32:"Ýsminiz ve/veya þifreniz yanlýþ.";s:38:"You must enter a username and password";s:30:"Ýsminizi ve þifrenizý veriniz.";s:22:"Gallery already exists";s:16:"Galeri mevcuttur";s:26:"Could not create directory";s:22:"Dizin oluþturalanamadý";s:27:"Could not save gallery info";s:36:"Galeri açýklamasý kayýt edilenemedi.";s:37:"Cannot delete the top level directory";s:20:"Anadizin silinemedi.";s:19:"File already exists";s:15:"Kütük mevcuttur";s:21:"Could not upload file";s:21:"Resim gönderilenemedi";s:23:"Invalid location choice";s:21:"Yanlýþ hedef seçeneði";s:30:"Could not add image to gallery";s:25:"Resim galeriye eklenemedi";s:32:"Could not save image information";s:32:"Resim açýklamasý kayýt edilemedi";s:22:"Could not delete image";s:16:"Resim silinemedi";s:16:"choose thumbnail";s:20:"Lütfen resim seçiniz";s:64:"Choose the filename of the image used to represent this gallery.";s:47:"Galeriyi sembole edecek resimin ismini seçiniz.";s:14:"thumbnail|None";s:3:"Hiç";s:16:"thumbnail|Random";s:7:"Rasgele";s:12:"edit gallery";s:16:"Galeriyi düzenle";s:18:"Gallery thumbnail:";s:16:"Galeri öngörüntü";s:16:"Random |
thumbnail";s:19:"Rasgele |
Öngörünütü";s:19:"thumbnail|Change...";s:21:"Baþka öngörünütü seç.";s:12:"Gallery name";s:11:"Galeri ismi";s:11:"Artist name";s:18:"Resim çekenýn ismi";s:10:"edit image";s:14:"Resimi düzenle";s:5:"Image";s:5:"Resim";s:10:"Image name";s:10:"Resim ismi";s:15:"change password";s:17:"Þifreyi deðiiþtir";s:67:"Please choose a new password between 6 and 16 characters in length.";s:45:"Lütfen 6-16 karakter uzunlukta þifre seçiniz.";s:17:"Current password:";s:17:"Þu anký þifreniz:";s:13:"New password:";s:14:"Yeni þifreniz:";s:17:"Confirm password:";s:17:"Þifreyi tekrarla:";s:20:"singapore|Powered by";s:0:"";s:16:"hits table|Graph";s:6:"Grafik";s:15:"hits table|Hits";s:7:"Hitsler";s:19:"hits table|Last hit";s:7:"Son hit";s:14:"Admin message:";s:13:"Admin mesajý:";s:20:"Return to galleries.";s:20:"Galerilere geri dön.";s:6:"log in";s:3:"Gir";s:110:"Only authorised users are allowed into the admin section. |
Please enter your admin username and password below.";s:98:"Sadece ototesi olan kullanýcýlar ayarlarý deðiþtirebilir. |
Lütfen admin ismini ve þifresini veriniz";s:9:"Username:";s:15:"Kullanýcý ismi:";s:9:"Password:";s:6:"Þifre:";s:24:"Please choose an option:";s:15:"Lütfen seçiniz:";s:27:"Manage galleries and images";s:27:"Galeri ve resimleri düzenle";s:17:"View gallery hits";s:32:"Galeri ziyaretçi sayýsýný göster";s:23:"Purge cached thumbnails";s:33:"Resim öngörüntüsünü cacheden sil.";s:15:"Change password";s:14:"Þifre deðiþtir";s:16:"Log out of admin";s:14:"Ayarlardan çýk";s:11:"new gallery";s:11:"yeni galeri";s:11:"Identifier:";s:12:"Belirteyici:";s:9:"new image";s:10:"yeni resim";s:74:"This image will not be visible because this gallery contains subgalleries.";s:68:"Bu resim gösterilebilenemez çünkü bu galeri alt-galerilere sahiptir.";s:11:"Remote file";s:20:"Resim baþka serverde";s:13:"URL of image:";s:13:"Resimin URLu:";s:10:"Local file";s:11:"Lokal resim";s:21:"Image file to upload:";s:17:"Yüklenecek resim:";s:30:"Use filename of uploaded file.";s:31:"Yüklenmiþ resimin ismini kullan";s:27:"Specify different filename:";s:18:"Baþka isim kullan:";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-9";s:8:"language";s:16:"Turkish (Türkçe)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.vi.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:27:"Gallery đã được thêm";s:18:"An error occurred:";s:10:"Có lỗi:";s:11:"Image added";s:31:"Hình ảnh đã được thêm";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:2:"OK";s:17:"Thumbnail changed";s:36:"Thumbnail đã được thay đổi";s:14:"confirm|Cancel";s:5:"Hủy";s:15:"Gallery deleted";s:26:"Gallery đã được xóa";s:14:"delete gallery";s:12:"xóa gallery";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:158:"Gallery %s không phải là rỗng. |
Bạn có chắc chắn muốn xóa gallery đó cùng với tất cả các gallery con và các hình ảnh trong đó?";s:13:"Image deleted";s:30:"Hình ảnh đã được xóa";s:12:"delete image";s:16:"xóa hình ảnh";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:68:"Bạn có chắc chắn muốn xóa hình ảnh %s của gallery %s?";s:12:"User deleted";s:26:"Gallery đã được xóa";s:11:"delete user";s:12:"xóa gallery";s:52:"Are you sure you want to permanently delete user %s?";s:68:"Bạn có chắc chắn muốn xóa hình ảnh %s của gallery %s?";s:27:"Welcome to singapore admin!";s:57:"Xin chào đến với trình quản lý của singapore!";s:22:"Thank you and goodbye!";s:33:"Cảm ơn và chào tạm biệt!";s:22:"Thumbnail cache purged";s:39:"Các thumbnail cache đã được xóa";s:23:"purge cached thumbnails";s:22:"Xóa cached thumbnails";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:68:"Bạn có chắc chắn muốn xóa tất cả %s cached thumbnails?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:43:"Thông tin của gallery đã được mưu";s:24:"Image saved successfully";s:43:"Hình ảnh đã được lưu thành công";s:14:"Password saved";s:28:"Mật mã đã được lưu";s:17:"Permissions saved";s:28:"Mật mã đã được lưu";s:15:"User info saved";s:43:"Thông tin của gallery đã được mưu";s:14:"admin bar|Back";s:11:"Trở lại";s:15:"admin bar|Admin";s:12:"Quản trị";s:19:"admin bar|Galleries";s:7:"Gallery";s:17:"admin bar|Log out";s:6:"Thoát";s:22:"admin bar|Edit gallery";s:19:"Thay đổi gallery";s:26:"admin bar|Edit permissions";s:19:"Thay đổi gallery";s:24:"admin bar|Delete gallery";s:12:"Xóa gallery";s:24:"admin bar|New subgallery";s:16:"Thêm subgallery";s:26:"admin bar|Re-index gallery";s:12:"Xóa gallery";s:20:"admin bar|Edit image";s:23:"Thay đổi hình ảnh";s:22:"admin bar|Delete image";s:16:"Xóa hình ảnh";s:19:"admin bar|New image";s:23:"Thêm hình ảnh mới";s:24:"Could not save user info";s:47:"Không thể lưu các thông tin của gallery";s:54:"New password must be between 6 and 16 characters long.";s:47:"Mật mã phải có từ 6 đến 16 kí tự.";s:43:"The new passwords you entered do not match.";s:30:"Mật mã không trùng khớp";s:72:"The current password you entered does not match the one in the database.";s:83:"Mật mã vào không trùng khớp với mật mã có trong cơ sở dữ liệu.";s:53:"The username specified was not found in the database.";s:66:"Tên đăng nhập không tìm thấy trong cơ sở dữ liệu.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:58:"Tên đăng nhập và/hoặc mật mã không hợp lệ";s:38:"You must enter a username and password";s:57:"Bạn phải nhập vào tên đăng nhập và mật mã";s:27:"Could not save gallery info";s:47:"Không thể lưu các thông tin của gallery";s:23:"Username already exists";s:13:"File đã có";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:16:"Gallery đã có";s:26:"Could not create directory";s:29:"Không thể tạo thư mục";s:37:"Cannot delete the top level directory";s:34:"Không thể xóa thư mục gốc";s:19:"File already exists";s:13:"File đã có";s:21:"Could not upload file";s:24:"Không thể upload file";s:30:"Could not add image to gallery";s:43:"Không thể thêm hình ảnh vào gallery";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:29:"Không thể xóa hình ảnh";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:51:"Không thể lưu các thông tin của hình ảnh";s:22:"Could not delete image";s:29:"Không thể xóa hình ảnh";s:17:"Select gallery...";s:12:"xóa gallery";s:16:"choose thumbnail";s:16:"chọn thumbnail";s:64:"Choose the filename of the image used to represent this gallery.";s:64:"Chọn tên file cho hành ảnh dùng để trình bày gallery";s:14:"thumbnail|None";s:22:"Không dùng thumbnail";s:16:"thumbnail|Random";s:35:"thumbnail thay đổi ngẫu nhiên";s:12:"edit gallery";s:19:"Thay đổi gallery";s:9:"Thumbnail";s:22:"Không dùng thumbnail";s:16:"Random |
thumbnail";s:23:"thumbnail |
Ngẫu nhiên";s:19:"thumbnail|Change...";s:14:"Thay đổi...";s:12:"Gallery name";s:12:"Tên gallery";s:11:"Artist name";s:15:"Tên tác giả";s:7:"Summary";s:0:"";s:10:"edit image";s:23:"thay đổi hình ảnh";s:5:"Image";s:11:"Hình ảnh";s:10:"Image name";s:16:"Tên hình ảnh";s:15:"change password";s:21:"thay đổi mật mã";s:67:"Please choose a new password between 6 and 16 characters in length.";s:51:"Xin chọn mật mã có từ 6 đến 16 kí tự.";s:17:"Current password:";s:23:"Mật mã hiện tại:";s:13:"New password:";s:16:"Mật mã mới:";s:17:"Confirm password:";s:22:"Xác nhận mật mã:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:19:"Tên đăng nhập:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:19:"Tên đăng nhập:";s:9:"Full name";s:12:"Tên gallery";s:8:"Password";s:10:"Mật mã:";s:22:"admin bar|View gallery";s:16:"Thêm subgallery";s:26:"admin bar|Change thumbnail";s:16:"Thêm subgallery";s:16:"hits table|Graph";s:12:"Biểu đồ";s:15:"hits table|Hits";s:21:"Số lần truy cập";s:19:"hits table|Last hit";s:25:"Các truy cập sau cùng";s:14:"Admin message:";s:25:"Thông điệp cho Admin:";s:6:"log in";s:13:"đăng nhập";s:52:"Please enter your admin username and password below.";s:57:"Bạn phải nhập vào tên đăng nhập và mật mã";s:9:"Username:";s:19:"Tên đăng nhập:";s:9:"Password:";s:10:"Mật mã:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:12:"Tên gallery";s:4:"edit";s:0:"";s:6:"delete";s:16:"xóa hình ảnh";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:26:"Xin chọn một menu sau:";s:27:"Manage galleries and images";s:34:"Quản lý gallery và hình ảnh";s:17:"View gallery hits";s:37:"Xem các truy cập của hình ảnh";s:15:"Change password";s:21:"Thay đổi mật mã";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:26:"Xóa cache của thumbnail";s:16:"Log out of admin";s:22:"Thoát ra khỏi admin";s:11:"new gallery";s:13:"gallery mới";s:11:"Identifier:";s:14:"Nhận dạng:";s:9:"new image";s:23:"Thêm hình ảnh mới";s:74:"This image will not be visible because this gallery contains subgalleries.";s:69:"Hình ảnh này sẽ không xem được vì gallery có subgallery.";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:29:"Hình ảnh để tải lên:";s:30:"Use filename of uploaded file.";s:53:"Dùng tên file của hình ảnh sau khi tải lên.";s:27:"Specify different filename:";s:30:"Chỉ định tên file khác:";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:29:"Hình ảnh để tải lên:";s:15:"Add remote file";s:33:"File hình ảnh trên máy khác";s:13:"URL of image:";s:22:"URL của hình ảnh:";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:9:"LANGUAGE ";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.zh_cn.pmo |
---|
0,0 → 1,7 |
a:92:{s:27:"Welcome to singapore admin!";s:27:"»¶Ó½øÈësingapore¹ÜÀí½çÃ棡";s:18:"An error occurred:";s:14:"·¢ÉúÒ»´¦´íÎó£º";s:22:"Thank you and goodbye!";s:18:"¶àлʹÓÃÏ´ÎÔÙ¼û£¡";s:14:"Password saved";s:12:"¿ÚÁî±£´æ³É¹¦";s:13:"Gallery added";s:12:"Ìí¼ÓÏà²á³É¹¦";s:18:"Gallery info saved";s:16:"Ïà²áÐÅÏ¢±£´æ³É¹¦";s:10:"confirm|OK";s:4:"È·ÈÏ";s:15:"Gallery deleted";s:12:"Ïà²áɾ³ý³É¹¦";s:14:"confirm|Cancel";s:4:"È¡Ïû";s:14:"delete gallery";s:8:"ɾ³ýÏàÔ";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:85:"%sÕâ¸öÏà²áÀïÃæÉÐÓÐÄÚÈÝ¡£ |
ÄãȷʵÏëÓÀ¾ÃÐÔɾ³ýÕâ¸öÏà²á¼°ÀïÃæ°üº¬µÄËùÓÐ×ÓÏà²á»òÕßͼƬÂð£¿";s:17:"Thumbnail changed";s:14:"ËõÂÔͼ±ä¸üÍê³É";s:11:"Image added";s:12:"ͼƬÌí¼Ó³É¹¦";s:24:"Image saved successfully";s:12:"ͼƬ±£´æ³É¹¦";s:13:"Image deleted";s:12:"ͼƬɾ³ýÍê³É";s:12:"delete image";s:8:"ɾ³ýͼƬ";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:40:"ÄãȷʵÏëÓÀ¾ÃÐÔɾ³ýͼƬ %s ´ÓÏàÔ %S Âð£¿";s:22:"Thumbnail cache purged";s:18:"ËõÂÔͼԤ´æɾ³ý³É¹¦";s:23:"purge cached thumbnails";s:16:"ɾ³ýÔ¤´æµÄËõÂÔͼ";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:34:"ÄãȷʵÏëɾ³ýÕâ%sÕÅÔ¤´æµÄËõÂÔͼÂð£¿";s:14:"admin bar|Back";s:4:"·µ»Ø";s:15:"admin bar|Admin";s:8:"¹ÜÀí²Ëµ¥";s:19:"admin bar|Galleries";s:8:"Ïà²áÁбí";s:17:"admin bar|Log out";s:4:"Í˳ö";s:22:"admin bar|Edit gallery";s:12:"±à¼Ïà²áÐÅÏ¢";s:24:"admin bar|Delete gallery";s:8:"ɾ³ýÏà²á";s:24:"admin bar|New subgallery";s:10:"н¨×ÓÏà²á";s:20:"admin bar|Edit image";s:12:"±à¼Í¼Æ¬ÐÅÏ¢";s:22:"admin bar|Delete image";s:8:"ɾ³ýͼƬ";s:19:"admin bar|New image";s:8:"н¨Í¼Æ¬";s:43:"There was an error saving the new password.";s:20:"±£´æ¿ÚÁîʱ²úÉú´íÎó¡£";s:54:"New password must be between 6 and 16 characters long.";s:33:"пÚÁ¶È±ØÐèÔÚ6µ½16¸ö×Ö·ûÖ®¼ä¡£";s:43:"The new passwords you entered do not match.";s:24:"Á½´ÎÊäÈëµÄпÚÁƥÅä¡£";s:72:"The current password you entered does not match the one in the database.";s:36:"ÄãÊäÈëµÄ¿ÚÁîºÍÊý¾Ý¿âÖеĿÚÁƥÅä¡£";s:53:"The username specified was not found in the database.";s:32:"ûÓÐÔÚÊý¾Ý¿âÖÐÕÒµ½Ö¸¶¨µÄÓû§Ãû¡£";s:34:"Username and/or password incorrect";s:16:"Óû§Ãû»ò¿ÚÁî´íÎó";s:38:"You must enter a username and password";s:22:"ÄãÐèÒªÊäÈëÓû§ÃûºÍ¿ÚÁî";s:22:"Gallery already exists";s:12:"Ïà²áÒѾ´æÔÚ";s:26:"Could not create directory";s:12:"ÎÞ·¨½¨Á¢Ä¿Â¼";s:27:"Could not save gallery info";s:16:"ÎÞ·¨±£´æÏà²áÐÅÏ¢";s:37:"Cannot delete the top level directory";s:16:"ÎÞ·¨É¾³ý¶¥¼¶Ä¿Â¼";s:19:"File already exists";s:12:"ÎļþÒѾ´æÔÚ";s:21:"Could not upload file";s:12:"ÎÞ·¨ÉÏ´«Îļþ";s:23:"Invalid location choice";s:16:"ÄãÑ¡ÔñµÄλÖÃÎÞЧ";s:30:"Could not add image to gallery";s:22:"ÎÞ·¨½«Í¼Æ¬¼ÓÈëµ½Ïà²áÖÐ";s:32:"Could not save image information";s:16:"ÎÞ·¨±£´æͼƬÐÅÏ¢";s:22:"Could not delete image";s:12:"ÎÞ·¨É¾³ýͼƬ";s:16:"choose thumbnail";s:12:"ÇëÑ¡ÔñËõÂÔͼ";s:64:"Choose the filename of the image used to represent this gallery.";s:30:"ÇëÑ¡Ôñ´ú±í±¾Ïà²áµÄͼƬÎļþÃû¡£";s:14:"thumbnail|None";s:12:"²»Ê¹ÓÃËõÂÔͼ";s:16:"thumbnail|Random";s:8:"Ëæ»úÑ¡Ôñ";s:12:"edit gallery";s:12:"±à¼Ïà²áÊôÐÔ";s:18:"Gallery thumbnail:";s:12:"Ïà²áËõÂÔͼ£º";s:16:"Random |
thumbnail";s:15:"Ëæ»úÑ¡Ôñ |
ËõÂÔͼ";s:19:"thumbnail|Change...";s:4:"ÐÞ¸Ä";s:12:"Gallery name";s:8:"Ïà²áÃû³Æ";s:11:"Artist name";s:8:"×÷ÕßÐÕÃû";s:10:"edit image";s:12:"±à¼Í¼Æ¬ÐÅÏ¢";s:5:"Image";s:4:"ͼƬ";s:10:"Image name";s:8:"ͼƬÃû³Æ";s:15:"change password";s:8:"Ð޸ĿÚÁî";s:67:"Please choose a new password between 6 and 16 characters in length.";s:41:"ÐÂÑ¡ÔñÒ»¸ö³¤¶ÈÔÚ6µ½16¸ö×Ö·ûÖ®¼äµÄпÚÁî¡£";s:17:"Current password:";s:10:"µ±Ç°¿ÚÁ";s:13:"New password:";s:8:"пÚÁ";s:17:"Confirm password:";s:18:"ÇëÔÙÊäÈëÒ»´Î¿ÚÁ";s:20:"singapore|Powered by";s:16:"±¾ÍøÕ¾²ÉÓü¼Êõ£º";s:16:"hits table|Graph";s:4:"ͼʾ";s:15:"hits table|Hits";s:6:"µã»÷Êý";s:19:"hits table|Last hit";s:12:"×îºóÒ»´Îµã»÷";s:14:"Admin message:";s:12:"¹ÜÀíÔ±ÐÅÏ¢£º";s:20:"Return to galleries.";s:12:"·µ»ØÏà²áÁбí";s:6:"log in";s:4:"µÇ¼";s:110:"Only authorised users are allowed into the admin section. |
Please enter your admin username and password below.";s:59:"Ö»ÔÊÐíÊÚȨÓû§Ê¹ÓùÜÀí½çÃ沿·Ö¡£ |
ÇëÔÚÏ·½ÊäÈëÓû§ÃûºÍ¿ÚÁî¡£";s:9:"Username:";s:8:"Óû§Ãû£º";s:9:"Password:";s:6:"¿ÚÁ";s:24:"Please choose an option:";s:8:"ÇëÑ¡Ôñ£º";s:27:"Manage galleries and images";s:14:"¹ÜÀíÏà²áºÍͼƬ";s:17:"View gallery hits";s:16:"²é¿´Ïà²áµã»÷Çé¿ö";s:23:"Purge cached thumbnails";s:16:"ɾ³ýÔ¤´æµÄËõÂÔͼ";s:15:"Change password";s:8:"¸ü¸Ä¿ÚÁî";s:16:"Log out of admin";s:14:"´Ó¹ÜÀí½çÃæÍ˳ö";s:11:"new gallery";s:14:"´´½¨Ò»¸öÐÂÏà²á";s:11:"Identifier:";s:16:"ÐÂÏà²áĿ¼Ãû³Æ£º";s:9:"new image";s:10:"Ìí¼ÓÐÂͼƬ";s:74:"This image will not be visible because this gallery contains subgalleries.";s:48:"ÓÉÓÚ±¾Ïà²á°üº¬×ÓÏà²á£¬ËùÒÔÕâÕÅͼƬ½«ÊDz»¿É¼ûµÄ¡£";s:11:"Remote file";s:8:"Ô¶³ÌÎļþ";s:13:"URL of image:";s:15:"ͼƬµÄURLµØÖ·£º";s:10:"Local file";s:8:"±¾µØÎļþ";s:21:"Image file to upload:";s:18:"ÇëÑ¡Ôñ´ýÉÏ´«Îļþ£º";s:30:"Use filename of uploaded file.";s:22:"ʹÓÃÉÏ´«ÎļþµÄÎļþÃû¡£";s:27:"Specify different filename:";s:16:"×ÔÐÐÖ¸¶¨ÎļþÃû£º";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:7:"Chinese";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.zh_cn_utf8.pmo |
---|
0,0 → 1,7 |
a:92:{s:27:"Welcome to singapore admin!";s:18:"????singapore?????";s:18:"An error occurred:";s:7:"???????";s:22:"Thank you and goodbye!";s:9:"?????????";s:14:"Password saved";s:6:"??????";s:13:"Gallery added";s:6:"??????";s:18:"Gallery info saved";s:8:"????????";s:10:"confirm|OK";s:2:"??";s:15:"Gallery deleted";s:6:"??????";s:14:"confirm|Cancel";s:2:"??";s:14:"delete gallery";s:4:"????";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:44:"%s??????????? |
??????????????????????????????";s:17:"Thumbnail changed";s:7:"???????";s:11:"Image added";s:6:"??????";s:24:"Image saved successfully";s:6:"??????";s:13:"Image deleted";s:6:"??????";s:12:"delete image";s:4:"????";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:24:"??????????? %s ??? %S ??";s:22:"Thumbnail cache purged";s:9:"?????????";s:23:"purge cached thumbnails";s:8:"????????";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:18:"???????%s?????????";s:14:"admin bar|Back";s:2:"??";s:15:"admin bar|Admin";s:4:"????";s:19:"admin bar|Galleries";s:4:"????";s:17:"admin bar|Log out";s:2:"??";s:22:"admin bar|Edit gallery";s:6:"??????";s:24:"admin bar|Delete gallery";s:4:"????";s:24:"admin bar|New subgallery";s:5:"?????";s:20:"admin bar|Edit image";s:6:"??????";s:22:"admin bar|Delete image";s:4:"????";s:19:"admin bar|New image";s:4:"????";s:43:"There was an error saving the new password.";s:10:"??????????";s:54:"New password must be between 6 and 16 characters long.";s:18:"????????6?16??????";s:43:"The new passwords you entered do not match.";s:12:"????????????";s:72:"The current password you entered does not match the one in the database.";s:18:"??????????????????";s:53:"The username specified was not found in the database.";s:16:"????????????????";s:34:"Username and/or password incorrect";s:8:"????????";s:38:"You must enter a username and password";s:11:"???????????";s:22:"Gallery already exists";s:6:"??????";s:26:"Could not create directory";s:6:"??????";s:27:"Could not save gallery info";s:8:"????????";s:37:"Cannot delete the top level directory";s:8:"????????";s:19:"File already exists";s:6:"??????";s:21:"Could not upload file";s:6:"??????";s:23:"Invalid location choice";s:8:"????????";s:30:"Could not add image to gallery";s:11:"???????????";s:32:"Could not save image information";s:8:"????????";s:22:"Could not delete image";s:6:"??????";s:16:"choose thumbnail";s:6:"??????";s:64:"Choose the filename of the image used to represent this gallery.";s:15:"???????????????";s:14:"thumbnail|None";s:6:"??????";s:16:"thumbnail|Random";s:4:"????";s:12:"edit gallery";s:6:"??????";s:18:"Gallery thumbnail:";s:6:"??????";s:16:"Random |
thumbnail";s:8:"???? |
???";s:19:"thumbnail|Change...";s:2:"??";s:12:"Gallery name";s:4:"????";s:11:"Artist name";s:4:"????";s:10:"edit image";s:6:"??????";s:5:"Image";s:2:"??";s:10:"Image name";s:4:"????";s:15:"change password";s:4:"????";s:67:"Please choose a new password between 6 and 16 characters in length.";s:22:"????????6?16??????????";s:17:"Current password:";s:5:"?????";s:13:"New password:";s:4:"????";s:17:"Confirm password:";s:9:"?????????";s:20:"singapore|Powered by";s:8:"????????";s:16:"hits table|Graph";s:2:"??";s:15:"hits table|Hits";s:3:"???";s:19:"hits table|Last hit";s:6:"??????";s:14:"Admin message:";s:6:"??????";s:20:"Return to galleries.";s:6:"??????";s:6:"log in";s:2:"??";s:110:"Only authorised users are allowed into the admin section. |
Please enter your admin username and password below.";s:30:"???????????????? |
?????????????";s:9:"Username:";s:4:"????";s:9:"Password:";s:3:"???";s:24:"Please choose an option:";s:4:"????";s:27:"Manage galleries and images";s:7:"???????";s:17:"View gallery hits";s:8:"????????";s:23:"Purge cached thumbnails";s:8:"????????";s:15:"Change password";s:4:"????";s:16:"Log out of admin";s:7:"???????";s:11:"new gallery";s:7:"???????";s:11:"Identifier:";s:8:"????????";s:9:"new image";s:5:"?????";s:74:"This image will not be visible because this gallery contains subgalleries.";s:24:"????????????????????????";s:11:"Remote file";s:4:"????";s:13:"URL of image:";s:9:"???URL???";s:10:"Local file";s:4:"????";s:21:"Image file to upload:";s:9:"?????????";s:30:"Use filename of uploaded file.";s:11:"???????????";s:27:"Specify different filename:";s:8:"????????";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:7:"Chinese";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.zh_tw.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:25:"±z¥Ø«e¨S¦³Åv°õ¦æ¦¹°Ê§@.";s:13:"Gallery added";s:12:"§¹¦¨·s¼W¬Ûï";s:18:"An error occurred:";s:9:"¥X²{¿ù»~:";s:11:"Image added";s:10:"·Ó¤ù¤w¥[¤J";s:22:"Archive contents added";s:14:"¤w§ó·sÀɮפº®e";s:10:"confirm|OK";s:4:"½T©w";s:17:"Thumbnail changed";s:12:"¹wÄý¹Ï¤wÅܧó";s:14:"confirm|Cancel";s:4:"¨ú®ø";s:15:"Gallery deleted";s:10:"¬Ûï¤w§R°£";s:14:"delete gallery";s:8:"§R°£¬Ûï";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:54:"¬Ûï %s ¤º¤´¦³·Ó¤ù¦s¦b. |
½T©w§R°£¦¹¬Ûï¤Î©Ò¦³¤º§t·Ó¤ù?";s:13:"Image deleted";s:10:"·Ó¤ù¤w§R°£";s:12:"delete image";s:8:"§R°£·Ó¤ù";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:31:"½T©w§R°£·Ó¤ù %s (¦ì©ó¬Ûï %s )?";s:12:"User deleted";s:10:"¥Î¤á¤w§R°£";s:11:"delete user";s:8:"§R°£¥Î¤á";s:52:"Are you sure you want to permanently delete user %s?";s:17:"½T©w§R°£¥Î¤á %s ?";s:27:"Welcome to singapore admin!";s:26:"Åwªï¶i¤JsingaporeºÞ²z¶±!";s:22:"Thank you and goodbye!";s:5:"¯¬¦n!";s:22:"Thumbnail cache purged";s:18:"²M°£¹wÄý¹Ï§Ö¨ú§¹¦¨";s:23:"purge cached thumbnails";s:14:"²M°£¹wÄý¹Ï§Ö¨ú";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:31:"½T©w²M°£©Ò¦³ %s ±iªº¹wÄý¹Ï§Ö¨ú?";s:36:"Gallery re-indexed. %s images added.";s:31:"¬Ûï¤w«·s¾ã²z. ·s¼W %s ±i·Ó¤ù.";s:18:"Gallery info saved";s:10:"°T®§¤wÀx¦s";s:24:"Image saved successfully";s:10:"·Ó¤ù¤wÀx¦s";s:14:"Password saved";s:10:"±K½X¤wÀx¦s";s:17:"Permissions saved";s:14:"Åv³]©w¤wÀx¦s";s:15:"User info saved";s:14:"¥Î¤á°T®§¤wÀx¦s";s:14:"admin bar|Back";s:8:"ªð¦^¬Ûï";s:15:"admin bar|Admin";s:8:"ºÞ²z¤¤¤ß";s:19:"admin bar|Galleries";s:4:"¬Ûï";s:17:"admin bar|Log out";s:4:"µn¥X";s:22:"admin bar|Edit gallery";s:8:"½s¿è¬Ûï";s:26:"admin bar|Edit permissions";s:8:"½s¿èÅv";s:24:"admin bar|Delete gallery";s:8:"§R°£¬Ûï";s:24:"admin bar|New subgallery";s:10:"·s¼W¤l¬Ûï";s:26:"admin bar|Re-index gallery";s:12:"«·s¾ã²z¬Ûï";s:20:"admin bar|Edit image";s:8:"½s¿è·Ó¤ù";s:22:"admin bar|Delete image";s:8:"§R°£·Ó¤ù";s:19:"admin bar|New image";s:8:"·s¼W·Ó¤ù";s:24:"Could not save user info";s:16:"µLªkÀx¦s¥Î¤á°T®§";s:54:"New password must be between 6 and 16 characters long.";s:30:"±K½Xªø«×¥²¶·¦b6¦Ü16Ó¦r¤¸¤§¶¡.";s:43:"The new passwords you entered do not match.";s:21:"¨â¦¸¿é¤Jªº±K½X¤£¬Û²Å.";s:72:"The current password you entered does not match the one in the database.";s:27:"¿é¤J±K½X»P²{¦³ªº¸ê®Æ®w¤£²Å.";s:53:"The username specified was not found in the database.";s:11:"µL¦¹¨Ï¥ÎªÌ.";s:31:"Your account has been suspended";s:18:"±zªº±b¸¹¤w¼È°±¨Ï¥Î";s:34:"Username and/or password incorrect";s:20:"¨Ï¥ÎªÌ¦WºÙ©Î±K½X¿ù»~";s:38:"You must enter a username and password";s:22:"½Ð¿é¤J¨Ï¥ÎªÌ¦WºÙ»P±K½X";s:27:"Could not save gallery info";s:16:"µLªkÀx¦s¬Ûï°T®§";s:23:"Username already exists";s:12:"¥Î¤á¦W¤w¦s¦b";s:31:"Cannot delete built in accounts";s:16:"µLªk§R°£¤º´O±b¸¹";s:23:"Username not recognised";s:14:"¥¼ÃѧOªº¨Ï¥ÎªÌ";s:22:"Gallery already exists";s:10:"¬Ûï¤w¦s¦b";s:26:"Could not create directory";s:12:"µLªk«Ø¥ß¥Ø¿ý";s:37:"Cannot delete the top level directory";s:14:"µLªk§R°£®a¥Ø¿ý";s:19:"File already exists";s:10:"Àɮפw¦s¦b";s:21:"Could not upload file";s:12:"µLªk¤W¶ÇÀÉ®×";s:30:"Could not add image to gallery";s:20:"µLªk±N·Ó¤ù¥[¤J¬Û襤";s:38:"Could not find temporary storage space";s:16:"µLªk¨ú±o¼È¦sªÅ¶¡";s:28:"Could not decompress archive";s:14:"µLªk¸ÑÀ£ÁYÀÉ®×";s:40:"Some archive contents could not be added";s:20:"µLªk§ó·s¬Y¨ÇÀɮפº®e";s:32:"Could not save image information";s:16:"µLªkÀx¦s·Ó¤ù°T®§";s:22:"Could not delete image";s:12:"µLªk§R°£·Ó¤ù";s:17:"Select gallery...";s:11:"¿ï¾Ü¬Ûï...";s:16:"choose thumbnail";s:12:"½Ð¿ï¾Ü¹wÄý¹Ï";s:64:"Choose the filename of the image used to represent this gallery.";s:23:"½Ð¿ï¾Ü¥Nªí¦¹¬Û蠟·Ó¤ù.";s:14:"thumbnail|None";s:6:"¤£¨Ï¥Î";s:16:"thumbnail|Random";s:8:"ÀH¾÷¥X²{";s:12:"edit gallery";s:8:"½s¿è¬Ûï";s:9:"Thumbnail";s:6:"¹wÄý¹Ï";s:16:"Random |
thumbnail";s:15:"ÀH¾÷¥X²{ |
¹wÄý¹Ï";s:19:"thumbnail|Change...";s:4:"קï";s:12:"Gallery name";s:8:"¬Ûï¦WºÙ";s:11:"Artist name";s:6:"Äá¼vªÌ";s:7:"Summary";s:4:"ºKn";s:10:"edit image";s:8:"½s¿è·Ó¤ù";s:5:"Image";s:4:"·Ó¤ù";s:10:"Image name";s:8:"·Ó¤ù¦WºÙ";s:15:"change password";s:8:"קï±K½X";s:67:"Please choose a new password between 6 and 16 characters in length.";s:28:"½Ð¿é¤Jªø«×6¦Ü16¦r¤¸ªº·s±K½X.";s:17:"Current password:";s:9:"¥Ø«e±K½X:";s:13:"New password:";s:7:"·s±K½X:";s:17:"Confirm password:";s:9:"½T»{±K½X:";s:16:"edit permissions";s:12:"³]¸m¨Ï¥ÎÅv";s:5:"Owner";s:6:"©Ò¦³¤H";s:6:"Groups";s:4:"¸s²Õ";s:17:"Group permissions";s:8:"¸s²ÕÅv";s:16:"permissions|Read";s:4:"Ū¨ú";s:16:"permissions|Edit";s:4:"½s¿è";s:15:"permissions|Add";s:4:"·s¼W";s:18:"permissions|Delete";s:4:"§R°£";s:17:"World permissions";s:8:"¥þ§½Åv";s:15:"user management";s:8:"ºÞ²z¥Î¤á";s:8:"Username";s:8:"¥Î¤á¦WºÙ";s:4:"Type";s:4:"Ãþ«¬";s:13:"Administrator";s:6:"ºÞ²zû";s:4:"User";s:4:"¥Î¤á";s:9:"Full name";s:4:"¥þ¦W";s:8:"Password";s:4:"±K½X";s:22:"admin bar|View gallery";s:8:"Æ[¬Ý¬Ûï";s:26:"admin bar|Change thumbnail";s:10:"§ó§ï¹wÄý¹Ï";s:16:"hits table|Graph";s:4:"¹Ïªí";s:15:"hits table|Hits";s:6:"ÂsÄý¼Æ";s:19:"hits table|Last hit";s:12:"³Ì«á¤@¦¸ÂsÄý";s:14:"Admin message:";s:11:"ºÞ²zû°T®§:";s:6:"log in";s:4:"µn¤J";s:52:"Please enter your admin username and password below.";s:22:"½Ð¿é¤JºÞ²zû¦WºÙ»P±K½X";s:9:"Username:";s:9:"¥Î¤á¦WºÙ:";s:9:"Password:";s:5:"±K½X:";s:61:"If you do not have a username then you may log in as a guest.";s:41:"¦pªG±z¨S¦³¨Ï¥ÎªÌ±b¸¹, ¥i¥ý¥H¨Ó»«¨¥÷µn¤J.";s:49:"You must be an administrator to access this area.";s:30:"ºÞ²z¤¤¤ß. «DºÞ²zû¤£¯à¶i¨Ó³á^^";s:6:"Email:";s:5:"«H½c:";s:10:"Full name:";s:5:"¥þ¦W:";s:4:"edit";s:4:"½s¿è";s:6:"delete";s:4:"§R°£";s:7:"suspend";s:8:"ÀÁ¸m¥Î¤á";s:9:"unsuspend";s:8:"¨ú®øÀÁ¸m";s:15:"create new user";s:10:"·s¼W¨Ï¥ÎªÌ";s:24:"Please choose an option:";s:15:"½Ð¿ï¾Ü¤@ӿﶵ:";s:27:"Manage galleries and images";s:14:"ºÞ²z¬Ûï©M·Ó¤ù";s:17:"View gallery hits";s:10:"¬d¬ÝÂsÄý¼Æ";s:15:"Change password";s:8:"קï±K½X";s:10:"My profile";s:6:"Ãö©ó§Ú";s:12:"Manage users";s:10:"ºÞ²z¨Ï¥ÎªÌ";s:23:"Purge cached thumbnails";s:14:"²M°£¹wÄý¹Ï§Ö¨ú";s:16:"Log out of admin";s:12:"µn¥XºÞ²z¶±";s:11:"new gallery";s:10:"«Ø¥ß·s¬Ûï";s:11:"Identifier:";s:9:"ÃѧO¦WºÙ:";s:9:"new image";s:8:"·s¼W·Ó¤ù";s:74:"This image will not be visible because this gallery contains subgalleries.";s:45:"¥Ñ©ó¬Û襤¥]§t¦³¤l¬Û¥», ©Ò¥H¦¹·Ó¤ù±N¤£³QÅã¥Ü.";s:18:"Upload single file";s:12:"¤W¶Ç³æ¤@ÀÉ®×";s:21:"Image file to upload:";s:19:"½Ð¿ï¾Ü±ý¤W¶Çªº·Ó¤ù:";s:30:"Use filename of uploaded file.";s:13:"¨Ï¥Î즳ÀɦW.";s:27:"Specify different filename:";s:13:"«ü©w¨ä¥LÀɦW:";s:21:"Upload multiple files";s:12:"¤W¶Ç¦hÓÀÉ®×";s:19:"ZIP file to upload:";s:21:"½Ð¿ï¾Ü±ý¤W¶ÇªºÀ£ÁYÀÉ:";s:15:"Add remote file";s:12:"·s¼W»·ºÝÀÉ®×";s:13:"URL of image:";s:9:"·Ó¤ù³sµ²:";i:0;a:3:{s:7:"charset";s:4:"big5";s:8:"language";s:26:"Traditional Chinese (Big5)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.admin.zh_tw_utf8.pmo |
---|
0,0 → 1,5 |
a:139:{s:53:"You do not have permission to perform this operation.";s:0:"";s:13:"Gallery added";s:15:"相本已加入";s:18:"An error occurred:";s:13:"錯誤發生:";s:11:"Image added";s:15:"照片已加入";s:22:"Archive contents added";s:0:"";s:10:"confirm|OK";s:6:"確定";s:17:"Thumbnail changed";s:18:"預覽圖已變更";s:14:"confirm|Cancel";s:6:"取消";s:15:"Gallery deleted";s:15:"相本已刪除";s:14:"delete gallery";s:12:"刪除相本";s:118:"Gallery %s is not empty. |
Are you sure you want to irretrievably delete it and all subgalleries and images it contains?";s:77:"相本 %s 內仍有照片存在. |
確定刪除此相本及所有內含照片?";s:13:"Image deleted";s:15:"照片已刪除";s:12:"delete image";s:12:"刪除照片";s:71:"Are you sure you want to irretrievably delete image %s from gallery %s?";s:41:"確定刪除照片 %s (位於相本 %s )?";s:12:"User deleted";s:15:"相本已刪除";s:11:"delete user";s:12:"刪除相本";s:52:"Are you sure you want to permanently delete user %s?";s:41:"確定刪除照片 %s (位於相本 %s )?";s:27:"Welcome to singapore admin!";s:34:"歡迎進入singapore管理頁面!";s:22:"Thank you and goodbye!";s:13:"歡迎使用!";s:22:"Thumbnail cache purged";s:27:"預覽圖快取刪除完成";s:23:"purge cached thumbnails";s:21:"刪除預覽圖快取";s:57:"Are you sure you want to delete all %s cached thumbnails?";s:41:"確定刪除所有 %s 的預覽圖快取?";s:36:"Gallery re-indexed. %s images added.";s:0:"";s:18:"Gallery info saved";s:15:"訊息已儲存";s:24:"Image saved successfully";s:15:"照片已儲存";s:14:"Password saved";s:15:"密碼已儲存";s:17:"Permissions saved";s:15:"密碼已儲存";s:15:"User info saved";s:15:"訊息已儲存";s:14:"admin bar|Back";s:6:"返回";s:15:"admin bar|Admin";s:12:"管理頁面";s:19:"admin bar|Galleries";s:12:"相本列表";s:17:"admin bar|Log out";s:6:"登出";s:22:"admin bar|Edit gallery";s:12:"編輯相本";s:26:"admin bar|Edit permissions";s:12:"編輯相本";s:24:"admin bar|Delete gallery";s:12:"刪除相本";s:24:"admin bar|New subgallery";s:15:"新增子相本";s:26:"admin bar|Re-index gallery";s:12:"刪除相本";s:20:"admin bar|Edit image";s:12:"編輯照片";s:22:"admin bar|Delete image";s:12:"刪除照片";s:19:"admin bar|New image";s:12:"新增照片";s:24:"Could not save user info";s:24:"無法儲存相本訊息";s:54:"New password must be between 6 and 16 characters long.";s:43:"密碼長度必須在6至16個字元之間.";s:43:"The new passwords you entered do not match.";s:31:"兩次輸入的密碼不相符.";s:72:"The current password you entered does not match the one in the database.";s:31:"輸入密碼與資料庫不符.";s:53:"The username specified was not found in the database.";s:19:"使用者不存在.";s:31:"Your account has been suspended";s:0:"";s:34:"Username and/or password incorrect";s:30:"使用者名稱或密碼錯誤";s:38:"You must enter a username and password";s:33:"請輸入使用者名稱與密碼";s:27:"Could not save gallery info";s:24:"無法儲存相本訊息";s:23:"Username already exists";s:15:"檔案已存在";s:31:"Cannot delete built in accounts";s:0:"";s:23:"Username not recognised";s:0:"";s:22:"Gallery already exists";s:15:"相本已存在";s:26:"Could not create directory";s:18:"無法建立目錄";s:37:"Cannot delete the top level directory";s:21:"無法刪除家目錄";s:19:"File already exists";s:15:"檔案已存在";s:21:"Could not upload file";s:18:"無法上傳檔案";s:30:"Could not add image to gallery";s:30:"無法將照片加入相本中";s:38:"Could not find temporary storage space";s:0:"";s:28:"Could not decompress archive";s:18:"無法刪除照片";s:40:"Some archive contents could not be added";s:0:"";s:32:"Could not save image information";s:24:"無法儲存照片訊息";s:22:"Could not delete image";s:18:"無法刪除照片";s:17:"Select gallery...";s:12:"刪除相本";s:16:"choose thumbnail";s:18:"請選擇預覽圖";s:64:"Choose the filename of the image used to represent this gallery.";s:34:"請選擇代表此相本之照片.";s:14:"thumbnail|None";s:18:"不使用預覽圖";s:16:"thumbnail|Random";s:12:"隨機出現";s:12:"edit gallery";s:12:"編輯相本";s:9:"Thumbnail";s:18:"不使用預覽圖";s:16:"Random |
thumbnail";s:22:"隨機出現 |
預覽圖";s:19:"thumbnail|Change...";s:6:"修改";s:12:"Gallery name";s:12:"相本名稱";s:11:"Artist name";s:6:"作者";s:7:"Summary";s:0:"";s:10:"edit image";s:12:"編輯照片";s:5:"Image";s:6:"照片";s:10:"Image name";s:12:"照片名稱";s:15:"change password";s:12:"修改密碼";s:67:"Please choose a new password between 6 and 16 characters in length.";s:40:"請輸入長度6至16字元的新密碼.";s:17:"Current password:";s:13:"目前密碼:";s:13:"New password:";s:10:"新密碼:";s:17:"Confirm password:";s:13:"確認密碼:";s:16:"edit permissions";s:0:"";s:5:"Owner";s:0:"";s:6:"Groups";s:0:"";s:17:"Group permissions";s:0:"";s:16:"permissions|Read";s:0:"";s:16:"permissions|Edit";s:0:"";s:15:"permissions|Add";s:0:"";s:18:"permissions|Delete";s:0:"";s:17:"World permissions";s:0:"";s:15:"user management";s:0:"";s:8:"Username";s:16:"使用者名稱:";s:4:"Type";s:0:"";s:13:"Administrator";s:0:"";s:4:"User";s:16:"使用者名稱:";s:9:"Full name";s:12:"相本名稱";s:8:"Password";s:7:"密碼:";s:22:"admin bar|View gallery";s:15:"新增子相本";s:26:"admin bar|Change thumbnail";s:15:"新增子相本";s:16:"hits table|Graph";s:6:"圖片";s:15:"hits table|Hits";s:9:"瀏覽數";s:19:"hits table|Last hit";s:18:"最後一次瀏覽";s:14:"Admin message:";s:16:"管理員訊息:";s:6:"log in";s:6:"登入";s:52:"Please enter your admin username and password below.";s:33:"請輸入使用者名稱與密碼";s:9:"Username:";s:16:"使用者名稱:";s:9:"Password:";s:7:"密碼:";s:61:"If you do not have a username then you may log in as a guest.";s:0:"";s:49:"You must be an administrator to access this area.";s:0:"";s:6:"Email:";s:0:"";s:10:"Full name:";s:12:"相本名稱";s:4:"edit";s:0:"";s:6:"delete";s:12:"刪除照片";s:7:"suspend";s:0:"";s:9:"unsuspend";s:0:"";s:15:"create new user";s:0:"";s:24:"Please choose an option:";s:22:"請選擇一個選項:";s:27:"Manage galleries and images";s:21:"管理相本和照片";s:17:"View gallery hits";s:15:"查看瀏覽數";s:15:"Change password";s:12:"修改密碼";s:10:"My profile";s:0:"";s:12:"Manage users";s:0:"";s:23:"Purge cached thumbnails";s:21:"刪除預覽圖快取";s:16:"Log out of admin";s:18:"登出管理頁面";s:11:"new gallery";s:15:"建立新相本";s:11:"Identifier:";s:13:"檔案名稱:";s:9:"new image";s:12:"新增照片";s:74:"This image will not be visible because this gallery contains subgalleries.";s:63:"由於此相本包含有子相本, 所以此照片無法瀏覽.";s:18:"Upload single file";s:0:"";s:21:"Image file to upload:";s:28:"請選擇欲上傳的照片:";s:30:"Use filename of uploaded file.";s:19:"使用原有檔名.";s:27:"Specify different filename:";s:19:"自行指定檔名.";s:21:"Upload multiple files";s:0:"";s:19:"ZIP file to upload:";s:28:"請選擇欲上傳的照片:";s:15:"Add remote file";s:12:"遠端檔案";s:13:"URL of image:";s:10:"照片URL:";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:7:"Chinese";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.bg.pmo |
---|
0,0 → 1,0 |
a:2:{s:20:"Digital manipulation";s:37:"Софтуерна обработка";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:9:"Bulgarian";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.ca.pmo |
---|
0,0 → 1,3 |
a:37:{s:26:"Page created in %s seconds";s:26:"Pàgina creada en %s segons";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:25:"Tots els drets reservats.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:119:"Les imatges no poden ser reproduïdes de cap manera sense el consentiment exprés i per escrit del propietari dels drets.";s:6:"Log in";s:11:"Administrar";s:24:"crumb line|You are here:";s:11:"Estàs aquí:";s:10:"%s gallery";a:2:{i:0;s:10:"%s galería";i:1;s:11:"%s galeríes";}s:8:"%s image";a:2:{i:0;s:9:"%s imatge";i:1;s:10:"%s imatges";}s:25:"Sample image from gallery";s:30:"Imatge de mostra de la galería";s:12:"No |
thumbnail";s:18:"Sense |
vista previa";s:19:"Showing %s-%s of %s";s:20:"Mostrant %s-%s de %s";s:10:"gallery|Up";s:5:"Pujar";s:20:"gallery|Up one level";s:15:"Pujar un nivell";s:16:"gallery|Previous";s:8:"Anterior";s:13:"gallery|First";s:7:"Primera";s:12:"gallery|Next";s:7:"Següent";s:12:"gallery|Last";s:6:"Última";s:17:"artist name|by %s";s:6:"per %s";s:5:"Email";s:17:"Correu electrònic";s:11:"Description";s:10:"Descripció";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:8:"Visitada";s:14:"viewed|%s time";a:2:{i:0;s:10:"%s vegades";i:1;s:8:"%s veces";}s:13:"Add a comment";s:21:"Insertar un comentari";s:14:"image|Previous";s:8:"Anterior";s:11:"image|First";s:7:"primera";s:16:"image|Thumbnails";s:10:"Miniatures";s:10:"image|Next";s:7:"Següent";s:10:"image|Last";s:6:"Última";s:8:"Location";s:12:"Localització";s:4:"Date";s:4:"Data";s:6:"Camera";s:6:"Càmera";s:4:"Lens";s:5:"Lents";s:4:"Film";s:8:"Película";s:21:"Darkroom manipulation";s:31:"Manipulació a l'habitació fosca";s:20:"Digital manipulation";s:19:"Manipulació digital";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:16:"Catalan (Català)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.cs.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:23:"Galerie nenalezena '%s'";s:20:"Image not found '%s'";s:22:"Obrázek nenalezen '%s'";s:8:"email|at";s:1:"@";s:9:"email|dot";s:1:".";s:26:"Page created in %s seconds";s:33:"Stránka vygenerována za %s vteøin";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:24:"V¹echna práva vyhrazena.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:97:"Obrázky nesmí být ¾ádným zpùsobem reprodukovány bez písemného souhlasu vlastníka autorských práv.";s:6:"Log in";s:12:"Pøihla¹te se";s:24:"crumb line|You are here:";s:9:"Jste zde:";s:10:"image|Next";s:5:"Dal¹í";s:16:"image|Thumbnails";s:7:"Náhledy";s:14:"image|Previous";s:9:"Pøedchozí";s:18:"Select language...";s:13:"Vyberte jazyk";s:2:"Go";s:8:"Do toho!";s:18:"Select template...";s:18:"Vyberte ¹ablonu...";s:10:"%s gallery";a:2:{i:0;s:10:"%s galerie";i:1;s:10:"%s galerií";}s:8:"%s image";a:2:{i:0;s:10:"%s obrázek";i:1;s:10:"%s obrázkù";}s:12:"No |
thumbnail";s:11:"Bez |
náhledu";s:25:"Sample image from gallery";s:26:"Ukázkový obrázek z galerie";s:19:"Showing %s-%s of %s";s:20:"Zobrazeno %s-%s z %s";s:10:"gallery|Up";s:6:"Nahoru";s:20:"gallery|Up one level";s:15:"Nahoru o úroveò";s:16:"gallery|Previous";s:9:"Pøedchozí";s:13:"gallery|First";s:5:"První";s:12:"gallery|Next";s:5:"Dal¹í";s:12:"gallery|Last";s:8:"Poslední";s:17:"artist name|by %s";s:5:"od %s";s:5:"Email";s:5:"Email";s:11:"Description";s:5:"Popis";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:9:"Zobrazeno";s:14:"viewed|%s time";a:2:{i:0;s:7:"%s krát";i:1;s:7:"%s krát";}s:13:"Add a comment";s:15:"Pøidat komentáø";s:11:"image|First";s:5:"První";s:10:"image|Last";s:8:"Poslední";s:8:"Location";s:8:"Umístìní";s:4:"Date";s:5:"Datum";s:6:"Camera";s:5:"Fo»ák";s:4:"Lens";s:5:"Èoèka";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:21:"Úpravy pøi vyvolávání";s:20:"Digital manipulation";s:17:"Digitálnáí úpravy";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:5:"Czech";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.cs_utf8.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:23:"Galerie '%s' nenalezena";s:20:"Image not found '%s'";s:23:"Obrázek '%s' nenalezen";s:8:"email|at";s:9:"zavináč";s:9:"email|dot";s:6:"tečka";s:26:"Page created in %s seconds";s:35:"Stránka vygenerována za %s sekund";s:23:"singapore|Powered by %s";s:18:"Provozováno na %s";s:20:"All rights reserved.";s:26:"Všechna práva vyhrazena.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:113:"Obrázky nesmí být jakkoli reprodukovány či kopírovány bez písemného souhlasu autora či držitele práv.";s:6:"Log in";s:14:"Přihlášení";s:24:"crumb line|You are here:";s:18:"Nacházíte se v: ";s:10:"image|Next";s:7:"Další";s:16:"image|Thumbnails";s:8:"Náhledy";s:14:"image|Previous";s:11:"Předchozí";s:18:"Select language...";s:16:"Vyberte jazyk...";s:2:"Go";s:5:"Vstup";s:18:"Select template...";s:19:"Vyberte šablonu...";s:10:"%s gallery";a:2:{i:0;s:10:"%s galerie";i:1;s:11:"%s galerií";}s:8:"%s image";a:2:{i:0;s:11:"%s obrázek";i:1;s:12:"%s obrázků";}s:12:"No |
thumbnail";s:13:"Není |
náhled";s:25:"Sample image from gallery";s:27:"Vzorový obrázek z galerie";s:19:"Showing %s-%s of %s";s:20:"Zobrazuji %s-%s z %s";s:10:"gallery|Up";s:6:"Nahoru";s:20:"gallery|Up one level";s:23:"Nahoru o jednu úroveň";s:16:"gallery|Previous";s:11:"Předchozí";s:13:"gallery|First";s:6:"První";s:12:"gallery|Next";s:7:"Další";s:12:"gallery|Last";s:9:"Poslední";s:17:"artist name|by %s";s:5:"od %s";s:5:"Email";s:5:"Email";s:11:"Description";s:5:"Popis";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:9:"Zobrazeno";s:14:"viewed|%s time";a:2:{i:0;s:8:"%s krát";i:1;s:8:"%s krát";}s:13:"Add a comment";s:18:"Přidat komentář";s:11:"image|First";s:6:"První";s:10:"image|Last";s:9:"Poslední";s:8:"Location";s:6:"Místo";s:4:"Date";s:5:"Datum";s:6:"Camera";s:11:"Fotoaparát";s:4:"Lens";s:7:"Čočka";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:22:"Zpracování v komoře";s:20:"Digital manipulation";s:24:"Digitální zpracování";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:13:"Czech (UTF-8)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.da.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:6:"E-mail";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:27:"Siden lavet på; %s sekunder";s:23:"singapore|Powered by %s";s:12:"Lavet med %s";s:20:"All rights reserved.";s:23:"Alle rettigheder haves.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:95:"Billeder må ikke reproduceres i nogen form uden skriftlig tilladelse af rettighedsindehaveren. ";s:6:"Log in";s:7:"Log ind";s:24:"crumb line|You are here:";s:10:"Du er her:";s:10:"image|Next";s:5:"Næste";s:16:"image|Thumbnails";s:10:"Miniaturer";s:14:"image|Previous";s:7:"Forrige";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:10:"%s galleri";i:1;s:12:"%s gallerier";}s:8:"%s image";a:2:{i:0;s:10:"%s billede";i:1;s:11:"%s billeder";}s:12:"No |
thumbnail";s:15:"Ingen |
miniature";s:25:"Sample image from gallery";s:28:"Eksempel billede fra galleri";s:19:"Showing %s-%s of %s";s:17:"Viser %s-%s af %s";s:10:"gallery|Up";s:2:"Op";s:20:"gallery|Up one level";s:12:"Et niveau op";s:16:"gallery|Previous";s:7:"Forrige";s:13:"gallery|First";s:6:"Første";s:12:"gallery|Next";s:5:"Næste";s:12:"gallery|Last";s:6:"Sidste";s:17:"artist name|by %s";s:5:"af %s";s:5:"Email";s:6:"E-mail";s:11:"Description";s:11:"Beskrivelse";s:9:"Copyright";s:0:"";s:6:"Viewed";s:3:"Set";s:14:"viewed|%s time";a:2:{i:0;s:7:"%s gang";i:1;s:8:"%s gange";}s:13:"Add a comment";s:16:"Tilføj kommentar";s:11:"image|First";s:6:"Første";s:10:"image|Last";s:6:"Sidste";s:8:"Location";s:9:"Placering";s:4:"Date";s:4:"Dato";s:6:"Camera";s:6:"Kamera";s:4:"Lens";s:5:"Optik";s:4:"Film";s:0:"";s:21:"Darkroom manipulation";s:22:"Mørkerums manupulation";s:20:"Digital manipulation";s:20:"Digital manipulation";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:14:"Danish (Dansk)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.de.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:25:"Galerie %s nicht gefunden";s:20:"Image not found '%s'";s:22:"Bild %s nicht gefunden";s:8:"email|at";s:2:"at";s:9:"email|dot";s:5:"punkt";s:26:"Page created in %s seconds";s:30:"Seite in %s Sekunden erstellt.";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:24:"Alle Rechte vorbehalten.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:96:"Die Bilder dürfen nicht ohne ausdrückliche schriftliche Genehmigung des Urhebers kopiert werden.";s:6:"Log in";s:9:"Anmeldung";s:24:"crumb line|You are here:";s:14:"Sie sind hier:";s:10:"image|Next";s:8:"Nächstes";s:16:"image|Thumbnails";s:9:"Übersicht";s:14:"image|Previous";s:10:"Vorheriges";s:18:"Select language...";s:17:"Sprache wählen...";s:2:"Go";s:5:"Start";s:18:"Select template...";s:18:"Template wählen...";s:10:"%s gallery";a:2:{i:0;s:10:"%s Galerie";i:1;s:11:"%s Galerien";}s:8:"%s image";a:2:{i:0;s:7:"%s Bild";i:1;s:9:"%s Bilder";}s:12:"No |
thumbnail";s:24:"Keine Vorschau |
verfügbar";s:25:"Sample image from gallery";s:28:"Vorschaubild für die Galerie";s:19:"Showing %s-%s of %s";s:22:"Zeige %s bis %s von %s";s:10:"gallery|Up";s:9:"nach oben";s:20:"gallery|Up one level";s:21:"Eine Ebene nach oben.";s:16:"gallery|Previous";s:9:"Vorherige";s:13:"gallery|First";s:5:"Erste";s:12:"gallery|Next";s:7:"Nächste";s:12:"gallery|Last";s:6:"Letzte";s:17:"artist name|by %s";s:6:"von %s";s:5:"Email";s:6:"E-Mail";s:11:"Description";s:12:"Beschreibung";s:9:"Copyright";s:12:"Urheberrecht";s:6:"Viewed";s:9:"Angezeigt";s:14:"viewed|%s time";a:2:{i:0;s:14:"%s mal besucht";i:1;s:14:"%s mal besucht";}s:13:"Add a comment";s:20:"Kommentar hinzufügen";s:11:"image|First";s:6:"Erstes";s:10:"image|Last";s:7:"Letztes";s:8:"Location";s:3:"Ort";s:4:"Date";s:5:"Datum";s:6:"Camera";s:6:"Kamera";s:4:"Lens";s:8:"Objektiv";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:16:"Analog verändert";s:20:"Digital manipulation";s:16:"Digtal verändert";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:16:"German (Deutsch)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.es.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:5:"Email";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:29:"Pagina creada en %s segundos";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:30:"Todos los derechos reservados.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:128:"Las imagenes no pueden ser reproducidas en ninguna forma sin el consentimiento expreso y por escrito del dueño de los derechos.";s:6:"Log in";s:5:"Admin";s:24:"crumb line|You are here:";s:11:"Estás aquí:";s:10:"image|Next";s:9:"Siguiente";s:16:"image|Thumbnails";s:14:"Vistas previas";s:14:"image|Previous";s:6:"Previa";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:10:"%s galería";i:1;s:11:"%s galerías";}s:8:"%s image";a:2:{i:0;s:9:"%s imágen";i:1;s:11:"%s imágenes";}s:12:"No |
thumbnail";s:16:"Sin |
vista previa";s:25:"Sample image from gallery";s:28:"Imagen muestra de la galería";s:19:"Showing %s-%s of %s";s:21:"Mostrando %s-%s de %s";s:10:"gallery|Up";s:6:"Arriba";s:20:"gallery|Up one level";s:14:"Subir un nivel";s:16:"gallery|Previous";s:6:"Previa";s:13:"gallery|First";s:9:"Siguiente";s:12:"gallery|Next";s:9:"Siguiente";s:12:"gallery|Last";s:9:"Siguiente";s:17:"artist name|by %s";s:6:"por %s";s:5:"Email";s:5:"Email";s:11:"Description";s:11:"Descripción";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:8:"Visitada";s:14:"viewed|%s time";a:2:{i:0;s:6:"%s vez";i:1;s:8:"%s veces";}s:13:"Add a comment";s:0:"";s:11:"image|First";s:0:"";s:10:"image|Last";s:0:"";s:8:"Location";s:8:"Locación";s:4:"Date";s:5:"Fecha";s:6:"Camera";s:6:"Cámara";s:4:"Lens";s:5:"Lente";s:4:"Film";s:8:"Película";s:21:"Darkroom manipulation";s:33:"Manipulación en el cuarto obscuro";s:20:"Digital manipulation";s:20:"Manipulación digital";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:17:"Spanish (Español)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.et.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:23:"Galeriid ei leitud '%s'";s:20:"Image not found '%s'";s:20:"Pilti ei leitud '%s'";s:8:"email|at";s:2:"at";s:9:"email|dot";s:5:"punkt";s:26:"Page created in %s seconds";s:28:"Lehekülg loodud %s sekundiga";s:23:"singapore|Powered by %s";s:22:"Kasutatav tarkvara: %s";s:20:"All rights reserved.";s:22:"Kõik õigused kaitstud.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:75:"Pilte ei või reprodutseerida mingil moel ilma nende autori kirjaliku loata.";s:6:"Log in";s:10:"Logi sisse";s:24:"crumb line|You are here:";s:14:"Asukoht lehel:";s:10:"image|Next";s:8:"Järgmine";s:16:"image|Thumbnails";s:10:"Pisipildid";s:14:"image|Previous";s:7:"Eelmine";s:18:"Select language...";s:12:"Vali keel...";s:2:"Go";s:4:"Mine";s:18:"Select template...";s:12:"Vali mall...";s:10:"%s gallery";a:2:{i:0;s:10:"%s galerii";i:1;s:11:"%s galeriid";}s:8:"%s image";a:2:{i:0;s:7:"%s pilt";i:1;s:8:"%s pilti";}s:12:"No |
thumbnail";s:14:"Pisipilti |
pole";s:25:"Sample image from gallery";s:21:"Näidis pilt galeriist";s:19:"Showing %s-%s of %s";s:20:"Nähtaval %s-%s %s'st";s:10:"gallery|Up";s:4:"Üles";s:20:"gallery|Up one level";s:13:"Üles üks tase";s:16:"gallery|Previous";s:7:"Eelmine";s:13:"gallery|First";s:7:"Esimene";s:12:"gallery|Next";s:8:"Järgmine";s:12:"gallery|Last";s:7:"Viimane";s:17:"artist name|by %s";s:9:"Autor: %s";s:5:"Email";s:16:"E-posti aadress:";s:11:"Description";s:9:"Kirjeldus";s:9:"Copyright";s:11:"Autoriõigus";s:6:"Viewed";s:8:"Vaadatud";s:14:"viewed|%s time";a:2:{i:0;s:7:"%s kord";i:1;s:8:"%s korda";}s:13:"Add a comment";s:15:"Lisa kommentaar";s:11:"image|First";s:7:"Esimene";s:10:"image|Last";s:7:"Viimane";s:8:"Location";s:7:"Asukoht";s:4:"Date";s:7:"Kuupäev";s:6:"Camera";s:7:"Kaamera";s:4:"Lens";s:9:"Objektiiv";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:21:"Pimiku manipulatsioon";s:20:"Digital manipulation";s:25:"Digitaalne manipulatsioon";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:16:"Estonian (Eesti)";s:6:"plural";s:30:"$nplurals=2;$plural=($n != 1);";}} |
/photogallery/locale/singapore.fr.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:5:"Email";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:25:"Page créée en %s secondes";s:23:"singapore|Powered by %s";s:12:"Créé avec %s";s:20:"All rights reserved.";s:21:"Tous droits réservés.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:104:"Reproduction interdite sous toute forme que ce soit sans l'accord écrit de l'auteur ou des ayants droit.";s:6:"Log in";s:9:"Connexion";s:24:"crumb line|You are here:";s:14:"Vous êtes ici:";s:10:"image|Next";s:8:"Suivante";s:16:"image|Thumbnails";s:9:"Vignettes";s:14:"image|Previous";s:10:"Précédente";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:10:"%s galerie";i:1;s:11:"%s galeries";}s:8:"%s image";a:2:{i:0;s:8:"%s image";i:1;s:9:"%s images";}s:12:"No |
thumbnail";s:15:"Pas de |
vignette";s:25:"Sample image from gallery";s:25:"Echantillon de la Galerie";s:19:"Showing %s-%s of %s";s:21:"Images %s à %s sur %s";s:10:"gallery|Up";s:16:"Niveau Précedent";s:20:"gallery|Up one level";s:16:"Niveau Précedent";s:16:"gallery|Previous";s:10:"Précédente";s:13:"gallery|First";s:8:"Suivante";s:12:"gallery|Next";s:8:"Suivante";s:12:"gallery|Last";s:8:"Suivante";s:17:"artist name|by %s";s:6:"par %s";s:5:"Email";s:5:"Email";s:11:"Description";s:11:"Description";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:9:"Affichage";s:14:"viewed|%s time";a:2:{i:0;s:6:"%s foi";i:1;s:7:"%s fois";}s:13:"Add a comment";s:0:"";s:11:"image|First";s:8:"Suivante";s:10:"image|Last";s:8:"Suivante";s:8:"Location";s:4:"Lieu";s:4:"Date";s:4:"Date";s:6:"Camera";s:8:"Appareil";s:4:"Lens";s:8:"Objectif";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:13:"Retouche Labo";s:20:"Digital manipulation";s:18:"Retouche Numérique";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:17:"French (Français)";s:6:"plural";s:29:"$nplurals=2;$plural=$n>1?1:0;";}} |
/photogallery/locale/singapore.hr.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:25:"Galerija nije na?ena '%s'";s:20:"Image not found '%s'";s:22:"Slika nije na?ena '%s'";s:8:"email|at";s:2:"at";s:9:"email|dot";s:3:"dot";s:26:"Page created in %s seconds";s:30:"Stranica kreirana u %s sekundi";s:23:"singapore|Powered by %s";s:15:"Pogonjeno sa %s";s:20:"All rights reserved.";s:19:"Sva prava zadrana.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:86:"Slike se ne mogu reproducirati u niti jednoj formi bez pismene dozvole vlasnika prava.";s:6:"Log in";s:7:"Prijava";s:24:"crumb line|You are here:";s:9:"Lokacija:";s:10:"image|Next";s:9:"Slijede?a";s:16:"image|Thumbnails";s:5:"Ikone";s:14:"image|Previous";s:9:"Prijanja";s:18:"Select language...";s:18:"Odaberite jezik...";s:2:"Go";s:5:"Kreni";s:18:"Select template...";s:17:"Odaberi izgled...";s:10:"%s gallery";a:2:{i:0;s:11:"%s galerija";i:1;s:11:"%s galerije";}s:8:"%s image";a:2:{i:0;s:8:"%s slika";i:1;s:8:"%s slike";}s:12:"No |
thumbnail";s:11:"Nema |
ikone";s:25:"Sample image from gallery";s:27:"Primjerak slike iz galerije";s:19:"Showing %s-%s of %s";s:18:"Prikaz %s-%s od %s";s:10:"gallery|Up";s:5:"Iznad";s:20:"gallery|Up one level";s:16:"Jedan nivo iznad";s:16:"gallery|Previous";s:9:"Prijanja";s:13:"gallery|First";s:4:"Prva";s:12:"gallery|Next";s:9:"Slijede?a";s:12:"gallery|Last";s:6:"Zadnja";s:17:"artist name|by %s";s:5:" - %s";s:5:"Email";s:5:"Email";s:11:"Description";s:4:"Opis";s:9:"Copyright";s:5:"Prava";s:6:"Viewed";s:7:"Gledano";s:14:"viewed|%s time";a:2:{i:0;s:6:"%s put";i:1;s:7:"%s puta";}s:13:"Add a comment";s:14:"Dodaj komentar";s:11:"image|First";s:4:"Prva";s:10:"image|Last";s:6:"Zadnja";s:8:"Location";s:8:"Lokacija";s:4:"Date";s:5:"Datum";s:6:"Camera";s:6:"Kamera";s:4:"Lens";s:4:"Le?e";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:21:"Manipulacija darkroom";s:20:"Digital manipulation";s:22:"Manipulacija digitalna";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:19:"Croatian (Hrvatski)";s:6:"plural";s:107:"$nplurals=3;$plural=$n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2;";}} |
/photogallery/locale/singapore.hu.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:6:"E-mail";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:41:"Az oldal %s másodperc alatt töldtõdött le";s:23:"singapore|Powered by %s";s:14:"Fejlesztve: %s";s:20:"All rights reserved.";s:22:"Minden jog fenntartva.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:99:"A képek semmilyen formában nem másolhatók a jogtulajdonosok elõzetes írásbeli hozzájárulása nélkül.";s:6:"Log in";s:14:"Adminisztráció";s:24:"crumb line|You are here:";s:15:"Itt vagy most: ";s:10:"image|Next";s:9:"Következõ";s:16:"image|Thumbnails";s:10:"Elõnézetek";s:14:"image|Previous";s:5:"Elõzõ";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:1:{i:0;s:10:"%s galéria";}s:8:"%s image";a:1:{i:0;s:6:"%s kép";}s:12:"No |
thumbnail";s:14:"Nincs |
elõnézet";s:25:"Sample image from gallery";s:21:"Mintakép a galériából";s:19:"Showing %s-%s of %s";s:25:"Megjelenítve %s - %s / %s";s:10:"gallery|Up";s:3:"Fel";s:20:"gallery|Up one level";s:20:"Egy szinttel feljebb";s:16:"gallery|Previous";s:5:"Elõzõ";s:13:"gallery|First";s:9:"Következõ";s:12:"gallery|Next";s:9:"Következõ";s:12:"gallery|Last";s:9:"Következõ";s:17:"artist name|by %s";s:8:"%s által";s:5:"Email";s:6:"E-mail";s:11:"Description";s:6:"Leírás";s:9:"Copyright";s:9:"Jogvédett";s:6:"Viewed";s:12:"Megjelenítve";s:14:"viewed|%s time";a:1:{i:0;s:13:"%s alkalommal";}s:13:"Add a comment";s:0:"";s:11:"image|First";s:9:"Következõ";s:10:"image|Last";s:9:"Következõ";s:8:"Location";s:4:"Hely";s:4:"Date";s:5:"Dátum";s:6:"Camera";s:6:"Kamera";s:4:"Lens";s:6:"Lencse";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:25:"Szerkesztés sötétkamrában";s:20:"Digital manipulation";s:20:"Digitális átalakítás";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:18:"Hungarian (Magyar)";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.is.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:24:"Fann ekki myndasafn '%s'";s:20:"Image not found '%s'";s:19:"Fann ekki mynd '%s'";s:8:"email|at";s:3:"að";s:9:"email|dot";s:7:"punktur";s:26:"Page created in %s seconds";s:32:"Síða búin til á %s sekúndum";s:23:"singapore|Powered by %s";s:11:"Keyrt á %s";s:20:"All rights reserved.";s:24:"Allur réttur áskilinn.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:100:"Óleyfilegt er að afrita myndir á neinn hátt nema með skriflegu leyfi handhafa höfundarréttar.";s:6:"Log in";s:8:"Innskrá";s:24:"crumb line|You are here:";s:14:"Þú ert hér:";s:10:"image|Next";s:6:"Næsta";s:16:"image|Thumbnails";s:10:"Smámyndir";s:14:"image|Previous";s:5:"Fyrri";s:18:"Select language...";s:18:"Veldu tungumál...";s:2:"Go";s:4:"Fara";s:18:"Select template...";s:18:"Veldu sniðmát...";s:10:"%s gallery";a:2:{i:0;s:12:"%s myndasafn";i:1;s:13:"%s myndasöfn";}s:8:"%s image";a:2:{i:0;s:7:"%s mynd";i:1;s:9:"%s myndir";}s:12:"No |
thumbnail";s:14:"Engin |
smámynd";s:25:"Sample image from gallery";s:28:"Dæmi um mynd úr myndasafni";s:19:"Showing %s-%s of %s";s:17:"Sýni %s-%s af %s";s:10:"gallery|Up";s:3:"Upp";s:20:"gallery|Up one level";s:16:"Upp um eitt stig";s:16:"gallery|Previous";s:5:"Fyrri";s:13:"gallery|First";s:6:"Fyrsta";s:12:"gallery|Next";s:6:"Næsta";s:12:"gallery|Last";s:9:"Síðasta";s:17:"artist name|by %s";s:8:"eftir %s";s:5:"Email";s:15:"Tölvupóstfang";s:11:"Description";s:7:"Lýsing";s:9:"Copyright";s:15:"Höfundaréttur";s:6:"Viewed";s:8:"Skoðuð";s:14:"viewed|%s time";a:2:{i:0;s:8:"%s sinni";i:1;s:9:"%s sinnum";}s:13:"Add a comment";s:21:"Bæta við athugasemd";s:11:"image|First";s:6:"Fyrsta";s:10:"image|Last";s:9:"Síðasta";s:8:"Location";s:12:"Staðsetning";s:4:"Date";s:10:"Dagsetning";s:6:"Camera";s:9:"Myndavél";s:4:"Lens";s:5:"Linsa";s:4:"Film";s:5:"Filma";s:21:"Darkroom manipulation";s:30:"Meðhöndlun í myrkraherbergi";s:20:"Digital manipulation";s:21:"Stafræn meðhöndlun";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:21:"Icelandic (Íslenska)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.it.pmo |
---|
0,0 → 1,4 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:6:"E-mail";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:29:"Pagina generata in %s secondi";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:26:"Tutti i diritti riservati.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:120:"Le immagini non possono essere riprodotte in nessuna forma senza il permesso scritto del detentore dei diritti d'autore.";s:6:"Log in";s:12:"Esegui login";s:24:"crumb line|You are here:";s:15:"Vi trovate qui:";s:10:"image|Next";s:8:"Prossima";s:16:"image|Thumbnails";s:9:"Anteprima";s:14:"image|Previous";s:10:"Precedente";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:11:"%s galleria";i:1;s:11:"%s gallerie";}s:8:"%s image";a:2:{i:0;s:11:"%s immagine";i:1;s:11:"%s immagini";}s:12:"No |
thumbnail";s:30:"Nessuna |
antemprima |
disponibile";s:25:"Sample image from gallery";s:32:"Imagine d'esempio della galleria";s:19:"Showing %s-%s of %s";s:11:"%s-%s di %s";s:10:"gallery|Up";s:17:"Livello superiore";s:20:"gallery|Up one level";s:16:"Su di un livello";s:16:"gallery|Previous";s:10:"Precedente";s:13:"gallery|First";s:8:"Prossimo";s:12:"gallery|Next";s:8:"Prossimo";s:12:"gallery|Last";s:8:"Prossimo";s:17:"artist name|by %s";s:16:"realizzata da %s";s:5:"Email";s:6:"E-mail";s:11:"Description";s:11:"Descrizione";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:12:"Visualizzata";s:14:"viewed|%s time";a:1:{i:0;s:8:"%s volte";}s:13:"Add a comment";s:0:"";s:11:"image|First";s:8:"Prossima";s:10:"image|Last";s:8:"Prossima";s:8:"Location";s:8:"Località";s:4:"Date";s:4:"Data";s:6:"Camera";s:10:"Fotocamera";s:4:"Lens";s:5:"Lenti";s:4:"Film";s:9:"Pellicola";s:21:"Darkroom manipulation";s:26:"Modifiche in camera oscura";s:20:"Digital manipulation";s:18:"Modifiche digitali";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:18:"Italian (Italiano)";s:6:"plural";s:33:"$nplurals=2;$plural=$n>1 ? 0 : 1;";}} |
/photogallery/locale/singapore.ja.pmo |
---|
0,0 → 1,2 |
a:37:{s:26:"Page created in %s seconds";s:20:"¥Ú¡¼¥¸À¸À®»þ´Ö %s ÉÃ";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:38:"Ãøºî¸¢¤ÏÅö¥µ¥¤¥È¤Î´ÉÍý¼Ô¤Ëµ¢Â°¤·¤Þ¤¹¡£";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:68:"Ãøºî¸¢¼Ô¤Î½ñÌ̤ˤè¤ëµöÂú̵¤·¤Ë²èÁü¤ÎÊ£À½¡¦ºÆÍøÍѤ¹¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹¡£";s:6:"Log in";s:8:"¥í¥°¥¤¥ó";s:24:"crumb line|You are here:";s:9:"¸½ºß°ÌÃÖ:";s:25:"Sample image from gallery";s:22:"¥®¥ã¥é¥ê¡¼¥µ¥ó¥×¥ë²èÁü";s:12:"No |
thumbnail";s:14:"¥µ¥à¥Í¥¤¥ë̵¤·";s:19:"Showing %s-%s of %s";s:25:"%s-%s ¤òɽ¼¨Ãæ ( %s ËçÃæ)";s:10:"gallery|Up";s:4:"¾å¤Ø";s:20:"gallery|Up one level";s:11:"1¥ì¥Ù¥ë¾å¤Ø";s:16:"gallery|Previous";s:4:"Á°¤Ø";s:13:"gallery|First";s:6:"ºÇ½é¤Ø";s:12:"gallery|Next";s:4:"¼¡¤Ø";s:12:"gallery|Last";s:6:"ºÇ¸å¤Ø";s:17:"artist name|by %s";s:5:"by %s";s:5:"Email";s:14:"¥á¡¼¥ë¥¢¥É¥ì¥¹";s:11:"Description";s:4:"ÀâÌÀ";s:9:"Copyright";s:6:"Ãøºî¸¢";s:6:"Viewed";s:8:"±ÜÍ÷²ó¿ô";s:13:"Add a comment";s:18:"¥³¥á¥ó¥È¤òÄɲ乤ë";s:14:"image|Previous";s:4:"Á°¤Ø";s:11:"image|First";s:6:"ºÇ½é¤Ø";s:16:"image|Thumbnails";s:10:"¥µ¥à¥Í¥¤¥ë";s:10:"image|Next";s:4:"¼¡¤Ø";s:10:"image|Last";s:6:"ºÇ¸å¤Ø";s:8:"Location";s:8:"»£±Æ¾ì½ê";s:4:"Date";s:6:"»£±ÆÆü";s:6:"Camera";s:6:"¥«¥á¥é";s:4:"Lens";s:6:"¥ì¥ó¥º";s:4:"Film";s:8:"¥Õ¥£¥ë¥à";s:21:"Darkroom manipulation";s:8:"°Å¼¼½èÍý";s:20:"Digital manipulation";s:12:"ÅŻҰż¼½èÍý";s:10:"%s gallery";a:2:{i:0;s:15:"¥®¥ã¥é¥ê¡¼¿ô %s";i:1;s:15:"¥®¥ã¥é¥ê¡¼¿ô %s";}s:8:"%s image";a:2:{i:0;s:9:"²èÁü¿ô %s";i:1;s:11:""²èÁü¿ô %s"";}s:14:"viewed|%s time";a:2:{i:0;s:5:"%s ²ó";i:1;s:5:"%s ²ó";}i:0;a:3:{s:7:"charset";s:6:"EUC-JP";s:8:"language";s:17:"Japanese (EUC-JP)";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.ja_utf8.pmo |
---|
0,0 → 1,2 |
a:37:{s:26:"Page created in %s seconds";s:28:"ページ生成時間 %s 秒";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:57:"著作権は当サイトの管理者に帰属します。";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:102:"著作権者の書面による許諾無しに画像の複製・再利用することを禁じます。";s:6:"Log in";s:12:"ログイン";s:24:"crumb line|You are here:";s:13:"現在位置:";s:25:"Sample image from gallery";s:33:"ギャラリーサンプル画像";s:12:"No |
thumbnail";s:21:"サムネイル無し";s:19:"Showing %s-%s of %s";s:31:"%s-%s を表示中 ( %s 枚中)";s:10:"gallery|Up";s:6:"上へ";s:20:"gallery|Up one level";s:16:"1レベル上へ";s:16:"gallery|Previous";s:6:"前へ";s:13:"gallery|First";s:9:"最初へ";s:12:"gallery|Next";s:6:"次へ";s:12:"gallery|Last";s:9:"最後へ";s:17:"artist name|by %s";s:5:"by %s";s:5:"Email";s:21:"メールアドレス";s:11:"Description";s:6:"説明";s:9:"Copyright";s:9:"著作権";s:6:"Viewed";s:12:"閲覧回数";s:13:"Add a comment";s:27:"コメントを追加する";s:14:"image|Previous";s:6:"前へ";s:11:"image|First";s:9:"最初へ";s:16:"image|Thumbnails";s:15:"サムネイル";s:10:"image|Next";s:6:"次へ";s:10:"image|Last";s:9:"最後へ";s:8:"Location";s:12:"撮影場所";s:4:"Date";s:9:"撮影日";s:6:"Camera";s:9:"カメラ";s:4:"Lens";s:9:"レンズ";s:4:"Film";s:12:"フィルム";s:21:"Darkroom manipulation";s:12:"暗室処理";s:20:"Digital manipulation";s:18:"電子暗室処理";s:10:"%s gallery";a:2:{i:0;s:21:"ギャラリー数 %s";i:1;s:21:"ギャラリー数 %s";}s:8:"%s image";a:2:{i:0;s:12:"画像数 %s";i:1;s:14:""画像数 %s"";}s:14:"viewed|%s time";a:2:{i:0;s:6:"%s 回";i:1;s:6:"%s 回";}i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:16:"Japanese (UTF-8)";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.ko.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:4:"¸ÞÀÏ";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:34:"%sÃÊ ¸¸¿¡ ÆäÀÌÁö°¡ ¸¸µé¾î Á³½À´Ï´Ù";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:20:"All rights reserved.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:6:"Log in";s:6:"·Î±×ÀÎ";s:24:"crumb line|You are here:";s:10:"ÇöÀç À§Ä¡:";s:10:"image|Next";s:4:"´ÙÀ½";s:16:"image|Thumbnails";s:8:"¸ñ·Ïº¸±â";s:14:"image|Previous";s:4:"ÀÌÀü";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:1:{i:0;s:11:"%s°³ °¶·¯¸®";}s:8:"%s image";a:1:{i:0;s:9:"%s°³ ±×¸²";}s:12:"No |
thumbnail";s:13:"¸ñ·Ïº¸±â |
¾øÀ½";s:25:"Sample image from gallery";s:18:"°¶·¯¸®ÀÇ »ùÇà ±×¸²";s:19:"Showing %s-%s of %s";s:38:"Àüü %3$s°³ Áß %1$sºÎÅÍ %2$s ±îÁö º¸±â";s:10:"gallery|Up";s:4:"À§·Î";s:20:"gallery|Up one level";s:11:"ÇÑ´Ü°è À§·Î";s:16:"gallery|Previous";s:4:"ÀÌÀü";s:13:"gallery|First";s:4:"¸Ç¾Õ";s:12:"gallery|Next";s:4:"´ÙÀ½";s:12:"gallery|Last";s:13:"°¶·¯¸®|¸¶Áö¸·";s:17:"artist name|by %s";s:15:"ÀÛ°¡ À̸§|%s ¼ø";s:5:"Email";s:4:"¸ÞÀÏ";s:11:"Description";s:4:"¼³¸í";s:9:"Copyright";s:6:"ÀúÀÛ±Ç";s:6:"Viewed";s:8:"¹æ¹®È¸¼ö";s:14:"viewed|%s time";a:1:{i:0;s:12:"%s ¹ø° º¸ÀÓ";}s:13:"Add a comment";s:9:"¼³¸í ´Þ±â";s:11:"image|First";s:5:"¸Ç ¾Õ";s:10:"image|Last";s:6:"¸¶Áö¸·";s:8:"Location";s:4:"À§Ä¡";s:4:"Date";s:4:"³¯Â¥";s:6:"Camera";s:6:"Ä«¸Þ¶ó";s:4:"Lens";s:4:"·»Áî";s:4:"Film";s:4:"Çʸ§";s:21:"Darkroom manipulation";s:9:"¾Ï½Ç ó¸®";s:20:"Digital manipulation";s:11:"µðÁöÅРó¸®";i:0;a:3:{s:7:"charset";s:6:"euc-kr";s:8:"language";s:15:"Korean (EUC-KR)";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.nl.pmo |
---|
0,0 → 1,2 |
a:44:{s:22:"Gallery not found '%s'";s:24:"Album niet gevonden '%s'";s:20:"Image not found '%s'";s:29:"Afbeelding niet gevonden '%s'";s:8:"email|at";s:11:"apestaartje";s:9:"email|dot";s:4:"punt";s:26:"Page created in %s seconds";s:31:"Pagina opgebouwd in %s seconden";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:26:"Alle rechten voorbehouden.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:132:"Afbeeldingen mogen op geen enkele wijze gereproduceerd worden zonder voorafgaande schriftelijke toestemming van de copyrighthouder. ";s:6:"Log in";s:9:"Aanmelden";s:24:"crumb line|You are here:";s:12:"U bent hier:";s:10:"image|Next";s:8:"Volgende";s:16:"image|Thumbnails";s:10:"Thumbnails";s:14:"image|Previous";s:6:"Vorige";s:18:"Select language...";s:17:"Selecteer taal...";s:2:"Go";s:9:"Aanmelden";s:18:"Select template...";s:21:"Selecteer template...";s:10:"%s gallery";a:2:{i:0;s:8:"%s album";i:1;s:9:"%s albums";}s:8:"%s image";a:2:{i:0;s:13:"%s afbeelding";i:1;s:15:"%s afbeeldingen";}s:12:"No |
thumbnail";s:26:"Geen thumbnail beschikbaar";s:25:"Sample image from gallery";s:23:"Thumbnail van het album";s:19:"Showing %s-%s of %s";s:21:"Vertoont %s-%s van %s";s:10:"gallery|Up";s:10:"Naar boven";s:20:"gallery|Up one level";s:21:"Een niveau naar boven";s:16:"gallery|Previous";s:6:"Vorige";s:13:"gallery|First";s:6:"Eerste";s:12:"gallery|Next";s:8:"Volgende";s:12:"gallery|Last";s:7:"Laatste";s:17:"artist name|by %s";s:7:"door %s";s:5:"Email";s:6:"E-mail";s:11:"Description";s:12:"Beschrijving";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:7:"Bekeken";s:14:"viewed|%s time";a:2:{i:0;s:15:"%s keer bekeken";i:1;s:15:"%s keer bekeken";}s:13:"Add a comment";s:19:"Voeg commentaar toe";s:11:"image|First";s:6:"Eerste";s:10:"image|Last";s:7:"Laatste";s:8:"Location";s:7:"Locatie";s:4:"Date";s:5:"Datum";s:6:"Camera";s:6:"Camera";s:4:"Lens";s:4:"Lens";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:13:"Dokabewerking";s:20:"Digital manipulation";s:17:"Computerbewerking";i:0;a:3:{s:7:"charset";s:11:"iso-8859-15";s:8:"language";s:18:"Dutch (Nederlands)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.no_nb.pmo |
---|
0,0 → 1,3 |
a:39:{s:22:"Gallery not found '%s'";s:30:"Galleriet '%s' ble ikke funnet";s:20:"Image not found '%s'";s:26:"Bilde '%s' ble ikke funnet";s:8:"email|at";s:2:"at";s:9:"email|dot";s:3:"dot";s:23:"singapore|Powered by %s";s:12:"Laget med %s";s:20:"All rights reserved.";s:27:"Alle rettigheter reservert.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:76:"Bilder må ikke reproduseres uten skriftlig samtykke fra rettighetsinnehaver.";s:6:"Log in";s:8:"Logg inn";s:24:"crumb line|You are here:";s:10:"Du er her:";s:10:"image|Next";s:5:"Neste";s:16:"image|Thumbnails";s:10:"Miniatyrer";s:14:"image|Previous";s:7:"Forrige";s:18:"Select language...";s:13:"Velg språk...";s:2:"Go";s:4:"Velg";s:18:"Select template...";s:16:"Velg utseende...";s:10:"%s gallery";a:2:{i:0;s:10:"%s galleri";i:1;s:12:"%s gallerier";}s:8:"%s image";a:2:{i:0;s:8:"%s bilde";i:1;s:9:"%s bilder";}s:12:"No |
thumbnail";s:20:"Ingen |
miniatyrbilder";s:25:"Sample image from gallery";s:25:"Eksempelbilde fra galleri";s:19:"Showing %s-%s of %s";s:17:"Viser %s-%s av %s";s:10:"gallery|Up";s:3:"Opp";s:16:"gallery|Previous";s:7:"Forrige";s:12:"gallery|Next";s:5:"Neste";s:12:"gallery|Last";s:5:"Siste";s:17:"artist name|by %s";s:5:"av %s";s:5:"Email";s:6:"E-post";s:11:"Description";s:11:"Beskrivelse";s:9:"Copyright";s:7:"Enerett";s:6:"Viewed";s:4:"Sett";s:14:"viewed|%s time";a:2:{i:0;s:7:"%s gang";i:1;s:9:"%s ganger";}s:10:"image|Last";s:5:"Siste";s:8:"Location";s:9:"Plasering";s:4:"Date";s:4:"Dato";s:6:"Camera";s:6:"Kamera";s:4:"Lens";s:6:"Optikk";s:4:"Film";s:4:"Film";s:20:"Digital manipulation";s:20:"Digital manipulering";s:21:"Darkroom manipulation";s:21:"Mørkeromsmanipulering";i:0;a:3:{s:7:"charset";s:10:"iso-8859-1";s:8:"language";s:24:"Norwegian (Norsk bokmål)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.pl.pmo |
---|
0,0 → 1,3 |
a:50:{s:22:"Gallery not found '%s'";s:26:"Nieznaleziono galerii '%s'";s:20:"Image not found '%s'";s:25:"Nieznaleziono obrazu '%s'";s:8:"email|at";s:6:"e-mail";s:9:"email|dot";s:6:"e-mail";s:26:"Page created in %s seconds";s:29:"Czas generowania strony: %s s";s:23:"singapore|Powered by %s";s:20:"Obs³ugiwane przez %s";s:20:"All rights reserved.";s:27:"Wszelkie prawa zastrze¿one.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:118:"Obrazy nie mog± byæ reprodukowane w ¿adnej formie bez wyra¼nej zgody w³a¶ciciela praw autorskich, wyra¿onej na pi¶mie.";s:6:"Log in";s:11:"Zaloguj siê";s:24:"crumb line|You are here:";s:9:"Jeste¶ w:";s:10:"image|Next";s:5:"Dalej";s:16:"image|Thumbnails";s:9:"Miniatury";s:14:"image|Previous";s:6:"Wstecz";s:18:"Select language...";s:16:"Wybierz jêzyk...";s:2:"Go";s:3:"Id¼";s:18:"Select template...";s:17:"Wybierz skórkê...";s:10:"%s gallery";a:2:{i:0;s:13:"Jedna galeria";i:1;s:11:"Galerii: %s";}s:8:"%s image";a:2:{i:0;s:13:"Jedno zdjêcie";i:1;s:9:"Zdjêæ: %s";}s:12:"No |
thumbnail";s:11:"Brak |
próbki";s:25:"Sample image from gallery";s:27:"Przyk³adowy obraz z galerii";s:19:"Showing %s-%s of %s";s:16:"Od %s do %s z %s";s:10:"gallery|Up";s:6:"W górê";s:20:"gallery|Up one level";s:13:"Poziom w górê";s:16:"gallery|Previous";s:6:"Wstecz";s:13:"gallery|First";s:8:"Pierwszy";s:12:"gallery|Next";s:5:"Dalej";s:12:"gallery|Last";s:7:"Ostatni";s:17:"artist name|by %s";s:9:"Autor: %s";s:5:"Email";s:6:"e-mail";s:11:"Description";s:4:"Opis";s:9:"Copyright";s:15:"Prawa autorskie";s:6:"Viewed";s:8:"Ogl±dane";s:14:"viewed|%s time";a:2:{i:0;s:6:"%s raz";i:1;s:7:"%s razy";}s:13:"Add a comment";s:15:"Dodaj komentarz";s:11:"image|First";s:8:"Pierwszy";s:10:"image|Last";s:7:"Ostatni";s:8:"Location";s:9:"Po³o¿enie";s:4:"Date";s:4:"Data";s:6:"Camera";s:6:"Aparat";s:4:"Lens";s:8:"Obiektyw";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:16:"Obróbka w ciemni";s:20:"Digital manipulation";s:15:"Obróbka cyfrowa";s:8:"First %s";s:11:"Pierwsze %s";s:11:"Previous %s";s:13:"Poprzednie %s";s:7:"Next %s";s:11:"Nastêpne %s";s:7:"Last %s";s:11:"Ostatnie %s";s:16:"Previous gallery";s:18:"Poprzednia galeria";s:12:"Next gallery";s:16:"Nastêpna galeria";i:0;a:3:{s:7:"charset";s:10:"iso-8859-2";s:8:"language";s:15:"Polish (Polski)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.pot |
---|
0,0 → 1,221 |
# SOME DESCRIPTIVE TITLE. |
# Copyright (C) YEAR Free Software Foundation, Inc. |
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
# |
#, fuzzy |
msgid "" |
msgstr "" |
"Project-Id-Version: PACKAGE VERSION\n" |
"POT-Creation-Date: 2006-05-20 20:17+0100\n" |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
"Language-Team: LANGUAGE <LL@li.org>\n" |
"MIME-Version: 1.0\n" |
"Content-Type: text/plain; charset=CHARSET\n" |
"Content-Transfer-Encoding: 8bit\n" |
#: ../includes/gallery.class.php:82 |
#, possible-c-format |
msgid "%s image" |
msgid_plural "%s images" |
msgstr[0] "" |
msgstr[1] "" |
#: ../includes/gallery.class.php:83 |
#, possible-c-format |
msgid "%s gallery" |
msgid_plural "%s galleries" |
msgstr[0] "" |
msgstr[1] "" |
#: ../includes/gallery.class.php:180 |
msgid "" |
"No\n" |
"thumbnail" |
msgstr "" |
#: ../includes/gallery.class.php:185 |
msgid "Sample image from gallery" |
msgstr "" |
#: ../includes/image.class.php:164 |
msgid "image|First" |
msgstr "" |
#: ../includes/image.class.php:165 |
msgid "image|Previous" |
msgstr "" |
#: ../includes/image.class.php:166 |
msgid "image|Next" |
msgstr "" |
#: ../includes/image.class.php:167 |
msgid "image|Last" |
msgstr "" |
#: ../includes/image.class.php:168 |
msgid "image|Thumbnails" |
msgstr "" |
#: ../includes/item.class.php:182 |
#, possible-c-format |
msgid "artist name|by %s" |
msgstr "" |
#: ../includes/item.class.php:193 ../includes/singapore.class.php:290 |
msgid "email|at" |
msgstr "" |
#: ../includes/item.class.php:193 ../includes/singapore.class.php:290 |
msgid "email|dot" |
msgstr "" |
#: ../includes/item.class.php:216 |
msgid "gallery|Up" |
msgstr "" |
#: ../includes/item.class.php:227 |
msgid "Date" |
msgstr "" |
#: ../includes/item.class.php:228 |
msgid "Location" |
msgstr "" |
#: ../includes/item.class.php:229 |
msgid "Description" |
msgstr "" |
#: ../includes/item.class.php:230 |
msgid "Email" |
msgstr "" |
#: ../includes/item.class.php:233 |
msgid "Camera" |
msgstr "" |
#: ../includes/item.class.php:234 |
msgid "Lens" |
msgstr "" |
#: ../includes/item.class.php:235 |
msgid "Film" |
msgstr "" |
#: ../includes/item.class.php:236 |
msgid "Darkroom manipulation" |
msgstr "" |
#: ../includes/item.class.php:237 |
msgid "Digital manipulation" |
msgstr "" |
#: ../includes/item.class.php:240 ../includes/item.class.php:241 |
msgid "Copyright" |
msgstr "" |
#: ../includes/item.class.php:243 |
msgid "Viewed" |
msgstr "" |
#: ../includes/item.class.php:243 |
#, possible-c-format |
msgid "viewed|%s time" |
msgid_plural "viewed|%s times" |
msgstr[0] "" |
msgstr[1] "" |
#: ../includes/singapore.class.php:222 |
#, possible-c-format |
msgid "Gallery not found '%s'" |
msgstr "" |
#: ../includes/singapore.class.php:276 |
#, possible-c-format |
msgid "Image not found '%s'" |
msgstr "" |
#: ../includes/singapore.class.php:361 |
#, possible-c-format |
msgid "Page created in %s seconds" |
msgstr "" |
#: ../includes/singapore.class.php:368 |
msgid "Powered by" |
msgstr "" |
#: ../includes/singapore.class.php:373 |
msgid "All rights reserved." |
msgstr "" |
#: ../includes/singapore.class.php:378 |
msgid "" |
"Images may not be reproduced in any form without the express written " |
"permission of the copyright holder." |
msgstr "" |
#: ../includes/singapore.class.php:388 |
msgid "Log in" |
msgstr "" |
#: ../includes/singapore.class.php:459 |
msgid "crumb line|You are here:" |
msgstr "" |
#: ../includes/singapore.class.php:518 |
msgid "Select language..." |
msgstr "" |
#: ../includes/singapore.class.php:526 ../includes/singapore.class.php:558 |
msgid "Go" |
msgstr "" |
#: ../includes/singapore.class.php:548 |
msgid "Select template..." |
msgstr "" |
#: ../includes/singapore.class.php:591 |
#, possible-c-format |
msgid "Showing %s-%s of %s" |
msgstr "" |
#: ../includes/singapore.class.php:637 |
msgid "gallery|Previous" |
msgstr "" |
#: ../includes/singapore.class.php:638 |
msgid "gallery|First" |
msgstr "" |
#: ../includes/singapore.class.php:641 |
msgid "gallery|Next" |
msgstr "" |
#: ../includes/singapore.class.php:642 |
msgid "gallery|Last" |
msgstr "" |
#: ../includes/singapore.class.php:695 |
#, possible-c-format |
msgid "First %s" |
msgstr "" |
#: ../includes/singapore.class.php:706 |
#, possible-c-format |
msgid "Previous %s" |
msgstr "" |
#: ../includes/singapore.class.php:717 |
#, possible-c-format |
msgid "Next %s" |
msgstr "" |
#: ../includes/singapore.class.php:726 |
#, possible-c-format |
msgid "Last %s" |
msgstr "" |
#: ../includes/singapore.class.php:741 |
msgid "Add a comment" |
msgstr "" |
/photogallery/locale/singapore.pt_br.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:34:"Galeria '%s' não encontrada";s:20:"Image not found '%s'";s:33:"Imagem '%s' não encontrada";s:8:"email|at";s:2:"at";s:9:"email|dot";s:3:"dot";s:26:"Page created in %s seconds";s:35:"Página criada em %s segundos";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:29:"Todos os direitos reservados.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:125:"As imagens não podem ser reproduzidas de qualquer modo sem o consentimento expresso do proprietário das mesmas.";s:6:"Log in";s:6:"Log in";s:24:"crumb line|You are here:";s:26:"Você está em:";s:10:"image|Next";s:14:"Próxima";s:16:"image|Thumbnails";s:10:"Miniaturas";s:14:"image|Previous";s:8:"Anterior";s:18:"Select language...";s:20:"Selecionar idioma...";s:2:"Go";s:2:"Ir";s:18:"Select template...";s:22:"Selecionar template...";s:10:"%s gallery";a:2:{i:0;s:10:"%s galeria";i:1;s:11:"%s galerias";}s:8:"%s image";a:2:{i:0;s:9:"%s imagem";i:1;s:10:"%s imagens";}s:12:"No |
thumbnail";s:13:"Sem |
Miniatura";s:25:"Sample image from gallery";s:28:"Exemplo de imagem da galeria";s:19:"Showing %s-%s of %s";s:20:"Exibindo %s-%s de %s";s:10:"gallery|Up";s:6:"Voltar";s:20:"gallery|Up one level";s:22:"Voltar um nível";s:16:"gallery|Previous";s:8:"Anterior";s:13:"gallery|First";s:8:"Primeira";s:12:"gallery|Next";s:14:"Próxima";s:12:"gallery|Last";s:13:"Última";s:17:"artist name|by %s";s:6:"por %s";s:5:"Email";s:5:"Email";s:11:"Description";s:23:"Descrição";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:11:"Visualizada";s:14:"viewed|%s time";a:2:{i:0;s:6:"%s vez";i:1;s:8:"%s vezes";}s:13:"Add a comment";s:26:"Adicionar coment´rio";s:11:"image|First";s:8:"Primeira";s:10:"image|Last";s:13:"Última";s:8:"Location";s:5:"Local";s:4:"Date";s:4:"Data";s:6:"Camera";s:12:"Câmera";s:4:"Lens";s:5:"Lente";s:4:"Film";s:5:"Filme";s:21:"Darkroom manipulation";s:32:"Manipulao de câmara escura";s:20:"Digital manipulation";s:33:"Manipulação digital";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:19:"Portuguese (Brazil)";s:6:"plural";s:25:"$nplurals=2;$plural=$n>1;";}} |
/photogallery/locale/singapore.ro.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:5:"Email";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:27:"Pagina creata in %s secunde";s:23:"singapore|Powered by %s";s:11:"Creat de %s";s:20:"All rights reserved.";s:27:"Toate drepturile rezervate.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:62:"Imaginile nu pot fi reproduse fara permisiunea proprietarului.";s:6:"Log in";s:12:"Administrare";s:24:"crumb line|You are here:";s:6:"Calea:";s:10:"image|Next";s:10:"Urmatoarea";s:16:"image|Thumbnails";s:9:"Miniaturi";s:14:"image|Previous";s:6:"Inapoi";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:10:"%s galerie";i:1;s:10:"%s galerii";}s:8:"%s image";a:2:{i:0;s:10:"%s imagine";i:1;s:10:"%s imagini";}s:12:"No |
thumbnail";s:16:"Fara |
thumbnail";s:25:"Sample image from gallery";s:28:"Imagine de proba din galerie";s:19:"Showing %s-%s of %s";s:12:"%s-%s din %s";s:10:"gallery|Up";s:6:"Inapoi";s:20:"gallery|Up one level";s:18:"Inapoi cu un nivel";s:16:"gallery|Previous";s:6:"Inapoi";s:13:"gallery|First";s:5:"Prima";s:12:"gallery|Next";s:10:"Urmatoarea";s:12:"gallery|Last";s:6:"Ultima";s:17:"artist name|by %s";s:5:"de %s";s:5:"Email";s:5:"Email";s:11:"Description";s:9:"Descriere";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:11:"Vizualizari";s:14:"viewed|%s time";a:2:{i:0;s:2:"%s";i:1;s:2:"%s";}s:13:"Add a comment";s:20:"Adauga un comentariu";s:11:"image|First";s:5:"Prima";s:10:"image|Last";s:6:"Ultima";s:8:"Location";s:7:"Locatia";s:4:"Date";s:4:"Data";s:6:"Camera";s:6:"Camera";s:4:"Lens";s:7:"Lentile";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:31:"Manipulare in camera intunecata";s:20:"Digital manipulation";s:19:"Manipulare digitala";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-2";s:8:"language";s:17:"Romanian (Romåna)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.ru.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:6:"E-mail";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:18:"óÔÒÁÎÉÃÁ ÓÏÚÄÁÎÁ ×";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:25:"á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÚÁÝÉÝÅÎÙ.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:111:"÷ÓÅ ÉÚÏÂÒÁÖÅÎÉÑ Ñ×ÌÑÀÔÓÑ ÓÏÂÓÔ×ÅÎÎÏÓÔØÀ ÆÏÔÏÇÒÁÆÏ×, ÉÈ ÐÒÅÄÏÓÔÁ×É×ÛÉÈ É ÏÈÒÁÎÑÀÔÓÑ ÚÁËÏÎÏÍ Ï Á×ÔÏÒÓËÉÈ ÐÒÁ×ÁÈ.";s:6:"Log in";s:11:"÷ÈÏÄ ÁÄÍÉÎ.";s:24:"crumb line|You are here:";s:8:"÷Ù ÚÄÅÓØ";s:10:"image|Next";s:5:"óÌÅÄ.";s:16:"image|Thumbnails";s:10:"Thumbnails";s:14:"image|Previous";s:5:"ðÒÅÄ.";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:1:{i:0;s:5:"ðÒÅÄ.";}s:8:"%s image";a:2:{i:0;s:0:"";i:1;s:0:"";}s:12:"No |
thumbnail";s:12:"No |
thumbnail";s:25:"Sample image from gallery";s:8:"ïÂÒÁÚÅà ";s:19:"Showing %s-%s of %s";s:18:"ÐÏËÁÚ. %s-%s ÉÚ %s";s:10:"gallery|Up";s:5:"ðÒÅÄ.";s:20:"gallery|Up one level";s:13:"ðÒÅÄ. çÁÌÅÒÅÑ";s:16:"gallery|Previous";s:5:"ðÒÅÄ.";s:13:"gallery|First";s:5:"óÌÅÄ.";s:12:"gallery|Next";s:5:"óÌÅÄ.";s:12:"gallery|Last";s:5:"óÌÅÄ.";s:17:"artist name|by %s";s:10:"Á×ÔÏÒ : %s";s:5:"Email";s:6:"E-mail";s:11:"Description";s:8:"ïÐÉÓÁÎÉÅ";s:9:"Copyright";s:15:"á×ÔÏÒÓËÏÅ ÐÒÁ×Ï";s:6:"Viewed";s:5:"÷ÉÄÎÁ";s:14:"viewed|%s time";a:1:{i:0;s:9:"%s ÒÁÚ(Á)";}s:13:"Add a comment";s:0:"";s:11:"image|First";s:5:"óÌÅÄ.";s:10:"image|Last";s:5:"óÌÅÄ.";s:8:"Location";s:5:"íÅÓÔÏ";s:4:"Date";s:6:"äÁÔÁ ";s:6:"Camera";s:11:"æÏÔÏËÁÍÅÒÁ ";s:4:"Lens";s:9:"ïÂßÅËÔÉ× ";s:4:"Film";s:6:"ðÌ£ÎËÁ";s:21:"Darkroom manipulation";s:24:"óÔÕÄÉÊÎÁÑ ÐÅÒÅÒÁÂÏÔËÁ ";s:20:"Digital manipulation";s:20:"ãÉÆÒÏ×ÁÑ ÐÅÒÅÒÁÂÏÔËÁ";i:0;a:3:{s:7:"charset";s:6:"KOI8-R";s:8:"language";s:16:"Russian (KOI8-R)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.sk.pmo |
---|
0,0 → 1,3 |
a:49:{s:8:"%s image";a:3:{i:0;s:11:"%s obrázok";i:1;s:11:"%s obrázky";i:2;s:12:"%s obrázkov";}s:10:"%s gallery";a:3:{i:0;s:11:"%s galéria";i:1;s:11:"%s galérie";i:2;s:12:"%s galérií";}s:12:"No |
thumbnail";s:13:"Bez |
náhľadu";s:25:"Sample image from gallery";s:31:"Ukážkový obrázok z galérie";s:16:"Previous gallery";s:25:"Predchádzajúca galéria";s:12:"Next gallery";s:21:"Nasledujúca galéria";s:11:"image|First";s:5:"Prvý";s:14:"image|Previous";s:16:"Predchádzajúci";s:10:"image|Next";s:12:"Nasledujúci";s:10:"image|Last";s:9:"Posledný";s:16:"image|Thumbnails";s:9:"Náhľady";s:17:"artist name|by %s";s:5:"od %s";s:8:"email|at";s:2:"na";s:9:"email|dot";s:5:"bodka";s:10:"gallery|Up";s:4:"Hore";s:4:"Date";s:6:"Dátum";s:8:"Location";s:8:"Lokalita";s:11:"Description";s:5:"Popis";s:5:"Email";s:6:"E-mail";s:6:"Camera";s:11:"Fotoaparát";s:4:"Lens";s:9:"Objektív";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:23:"Úpravy v tmavej komore";s:20:"Digital manipulation";s:18:"Digitálne úpravy";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:10:"Zobrazené";s:14:"viewed|%s time";a:3:{i:0;s:8:"%s krát";i:1;s:8:"%s krát";i:2;s:8:"%s krát";}s:22:"Gallery not found '%s'";s:25:"Galéria nenájdená '%s'";s:20:"Image not found '%s'";s:25:"Obrázok nenájdený '%s'";s:26:"Page created in %s seconds";s:36:"Stránka vygenerovaná za %s sekundy";s:10:"Powered by";s:10:"Powered by";s:20:"All rights reserved.";s:26:"Všetky práva vyhradené.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:129:"Obrázky nesmú byť bez predchádzajúceho písomného súhlasu vlastníka autorských práv reprodukované v akejkoľvek forme.";s:6:"Log in";s:12:"Prihlásenie";s:24:"crumb line|You are here:";s:18:"Nachádzate sa tu:";s:18:"Select language...";s:16:"Zvoľte jazyk...";s:2:"Go";s:7:"Potvrď";s:18:"Select template...";s:20:"Zvoľte šablónu...";s:19:"Showing %s-%s of %s";s:23:"Zobrazených %s-%s z %s";s:16:"gallery|Previous";s:16:"Predchádzajúca";s:13:"gallery|First";s:5:"Prvá";s:12:"gallery|Next";s:12:"Nasledujúca";s:12:"gallery|Last";s:9:"Posledná";s:8:"First %s";s:10:"Prvých %s";s:11:"Previous %s";s:21:"Predchádzajúcich %s";s:7:"Next %s";s:17:"Nasledujúcich %s";s:7:"Last %s";s:14:"Posledných %s";s:13:"Add a comment";s:17:"Pridať komentár";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:19:"Slovak (Sloveský) ";s:6:"plural";s:107:"$nplurals=3;$plural=$n%10==1 && $n%100!=11 ? 0 : $n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2;";}} |
/photogallery/locale/singapore.sl.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:23:"Ne najdem galerije '%s'";s:20:"Image not found '%s'";s:20:"Ne najdem slike '%s'";s:8:"email|at";s:2:"at";s:9:"email|dot";s:4:"pika";s:26:"Page created in %s seconds";s:28:"Stran narejena v %s sekundah";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:22:"Vse pravice pridr¾ane.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:68:"Prepovedana kakr¹nakoli uporaba fotografije brez dovoljenja avtorja.";s:6:"Log in";s:7:"Prijava";s:24:"crumb line|You are here:";s:9:"Tukaj si:";s:10:"image|Next";s:9:"Naslednja";s:16:"image|Thumbnails";s:7:"Slièice";s:14:"image|Previous";s:8:"Prej¹nja";s:18:"Select language...";s:16:"Izberi jezik ...";s:2:"Go";s:6:"Potrdi";s:18:"Select template...";s:19:"Izberi predlogo ...";s:10:"%s gallery";a:2:{i:0;s:11:"%s galerija";i:1;s:11:"%s galerije";}s:8:"%s image";a:2:{i:0;s:8:"%s slika";i:1;s:8:"%s slike";}s:12:"No |
thumbnail";s:10:"Ni |
slièica";s:25:"Sample image from gallery";s:25:"Vzorèna slika iz galerije";s:19:"Showing %s-%s of %s";s:21:"Prikazuje %s-%s af %s";s:10:"gallery|Up";s:3:"Gor";s:20:"gallery|Up one level";s:14:"Na gornji nivo";s:16:"gallery|Previous";s:8:"Prej¹nja";s:13:"gallery|First";s:4:"Prva";s:12:"gallery|Next";s:9:"Naslednja";s:12:"gallery|Last";s:6:"Zadnja";s:17:"artist name|by %s";s:8:"Avtor %s";s:5:"Email";s:7:"E-po¹ta";s:11:"Description";s:4:"Opis";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:6:"Videno";s:14:"viewed|%s time";a:2:{i:0;s:8:"%s -krat";i:1;s:8:"%s -krat";}s:13:"Add a comment";s:14:"Dodaj komentar";s:11:"image|First";s:4:"Prva";s:10:"image|Last";s:6:"Zadnja";s:8:"Location";s:5:"Mesto";s:4:"Date";s:5:"Datum";s:6:"Camera";s:10:"Fotoaparat";s:4:"Lens";s:8:"Objektiv";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:18:"Postopek v temnici";s:20:"Digital manipulation";s:21:"Raèunalni¹ka obdelava";i:0;a:3:{s:7:"charset";s:10:"iso-8859-2";s:8:"language";s:21:"Slovenian (Slovensko)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.sv.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:13:"Artist e-mail";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:27:"Sidan skapad på %s sekunder";s:23:"singapore|Powered by %s";s:13:"Skapat med %s";s:20:"All rights reserved.";s:20:"All rights reserved.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:75:"Bilder får inte användas i någon form utan tillåtelse från copyrightägaren.";s:6:"Log in";s:8:"Logga in";s:24:"crumb line|You are here:";s:10:"Du är här:";s:10:"image|Next";s:5:"Nästa";s:16:"image|Thumbnails";s:10:"Minibilder";s:14:"image|Previous";s:10:"Föregående";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:12:"%s bildarkiv";i:1;s:12:"%s bildarkiv";}s:8:"%s image";a:2:{i:0;s:7:"%s bild";i:1;s:9:"%s bilder";}s:12:"No |
thumbnail";s:14:"Ingen |
minibild";s:25:"Sample image from gallery";s:26:"Slumpa bild från galleriet";s:19:"Showing %s-%s of %s";s:17:"Visar %s-%s av %s";s:10:"gallery|Up";s:3:"Upp";s:20:"gallery|Up one level";s:12:"Upp ett steg";s:16:"gallery|Previous";s:10:"Föregående";s:13:"gallery|First";s:5:"Nästa";s:12:"gallery|Next";s:5:"Nästa";s:12:"gallery|Last";s:5:"Nästa";s:17:"artist name|by %s";s:5:"av %s";s:5:"Email";s:13:"Artist e-mail";s:11:"Description";s:11:"Beskrivning";s:9:"Copyright";s:9:"Copyright";s:6:"Viewed";s:5:"Visat";s:14:"viewed|%s time";a:1:{i:0;s:9:"%s gånger";}s:13:"Add a comment";s:0:"";s:11:"image|First";s:5:"Nästa";s:10:"image|Last";s:5:"Nästa";s:8:"Location";s:5:"Plats";s:4:"Date";s:5:"Datum";s:6:"Camera";s:11:"Kamera info";s:4:"Lens";s:4:"Lins";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:20:"Mörkrumsmanipulation";s:20:"Digital manipulation";s:20:"Digital manipulering";i:0;a:3:{s:7:"charset";s:10:"ISO-8859-1";s:8:"language";s:17:"Swedish (Svenska)";s:6:"plural";s:34:"$nplurals=2;$plural=$n==1 ? 0 : 1;";}} |
/photogallery/locale/singapore.tr.pmo |
---|
0,0 → 1,2 |
a:37:{s:26:"Page created in %s seconds";s:25:"Sayfa % saniyede üretildi";s:23:"singapore|Powered by %s";s:31:"%s tarafýndan sponsorlanmiþtir.";s:20:"All rights reserved.";s:38:"Bütün telif hallarý saklý tutulmuþtur.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:41:"Hiçbir resim yazýlý izinsiz kopyalanamaz.";s:6:"Log in";s:3:"Gir";s:24:"crumb line|You are here:";s:7:"Burasý:";s:10:"%s gallery";a:2:{i:0;s:9:"%s galeri";i:1;s:9:"%s galeri";}s:8:"%s image";a:2:{i:0;s:8:"%s resim";i:1;s:11:"%s resimler";}s:25:"Sample image from gallery";s:21:"Galeriden mýsal resim";s:12:"No |
thumbnail";s:24:"Öngörünütü mevcut deðil.";s:19:"Showing %s-%s of %s";s:32:"Galeri %s-%s toplam %s galeriden";s:10:"gallery|Up";s:6:"yukarý";s:20:"gallery|Up one level";s:19:"Bir düzey yukarýya.";s:16:"gallery|Previous";s:6:"Önceki";s:13:"gallery|First";s:10:"Galeri|Ýlk";s:12:"gallery|Next";s:7:"Sonraki";s:12:"gallery|Last";s:10:"Galeri|Son";s:17:"artist name|by %s";s:23:"%s tarafýndan çekilmilþ";s:5:"Email";s:5:"email";s:11:"Description";s:8:"Açýklama";s:9:"Copyright";s:13:"Telifhaklarý:";s:6:"Viewed";s:11:"Gösterilmiþ";s:14:"viewed|%s time";a:2:{i:0;s:7:"%s kere";i:1;s:7:"%s kere";}s:13:"Add a comment";s:10:"Yorum ekle";s:14:"image|Previous";s:10:"Bir önceki";s:11:"image|First";s:9:"resim|Ýlk";s:16:"image|Thumbnails";s:12:"Öngörüntüler";s:10:"image|Next";s:11:"Bir sonraki";s:10:"image|Last";s:3:"Son";s:8:"Location";s:3:"Yer";s:4:"Date";s:5:"Tarih";s:6:"Camera";s:13:"Resimmakinasý";s:4:"Lens";s:4:"Lens";s:4:"Film";s:3:"Poz";s:21:"Darkroom manipulation";s:31:"Karanlýk odada manipüle edilmiþ";s:20:"Digital manipulation";s:29:"Bilgisayarla manipüle edilmiþ";i:0;a:3:{s:7:"charset";s:0:"";s:8:"language";s:16:"Turkish (Türkçe)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.vi.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:5:"Email";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:41:"Trang được tạo trong vòng %s giây";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:20:"All rights reserved.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:145:"Các hình ảnh không được sao chép dưới bất kì hình thức nào khi không có sự đồng ý bằng văn bản của tác giả.";s:6:"Log in";s:13:"Đăng nhập";s:24:"crumb line|You are here:";s:19:"Mục hiện tại:";s:10:"image|Next";s:10:"Ảnh kế";s:16:"image|Thumbnails";s:9:"Thumbnail";s:14:"image|Previous";s:14:"Ảnh trước";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:1:{i:0;s:10:"%s gallery";}s:8:"%s image";a:1:{i:0;s:8:"%s ảnh";}s:12:"No |
thumbnail";s:20:"Không có |
thumbnail";s:25:"Sample image from gallery";s:24:"Ảnh mẫu từ gallery";s:19:"Showing %s-%s of %s";s:21:"Hiển thị %s-%s/%s";s:10:"gallery|Up";s:10:"Lên trên";s:20:"gallery|Up one level";s:16:"Lên một cấp";s:16:"gallery|Previous";s:8:"Trước";s:13:"gallery|First";s:12:"Đầu tiên";s:12:"gallery|Next";s:4:"Kế";s:12:"gallery|Last";s:6:"Cuối";s:17:"artist name|by %s";s:14:"Tác giả: %s";s:5:"Email";s:5:"Email";s:11:"Description";s:8:"Mô tả";s:9:"Copyright";s:13:"Bản quyền";s:6:"Viewed";s:12:"Được xem";s:14:"viewed|%s time";a:1:{i:0;s:8:"%s lần";}s:13:"Add a comment";s:17:"Thêm lời bình";s:11:"image|First";s:18:"Ảnh đầu tiên";s:10:"image|Last";s:12:"Ảnh cuối";s:8:"Location";s:9:"Vị trí";s:4:"Date";s:5:"Ngày";s:6:"Camera";s:10:"Máy ảnh";s:4:"Lens";s:12:"Khẩu độ";s:4:"Film";s:4:"Film";s:21:"Darkroom manipulation";s:29:"Thao tác với buồng tối";s:20:"Digital manipulation";s:26:"Thao tác kĩ thuật số";i:0;a:3:{s:7:"charset";s:5:"UTF-8";s:8:"language";s:18:"Vietnamese (UTF-8)";s:6:"plural";s:22:"$nplurals=1;$plural=0;";}} |
/photogallery/locale/singapore.zh_cn.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:16:"ûÓÐÕÒµ½Ïà²á£º%s";s:20:"Image not found '%s'";s:16:"ûÓÐÕÒµ½Í¼Æ¬£º%s";s:8:"email|at";s:2:"£À";s:9:"email|dot";s:2:"µã";s:26:"Page created in %s seconds";s:18:"Éú³É±¾Ò³¹²ºÄʱ%sÃë";s:23:"singapore|Powered by %s";s:18:"±¾ÍøÕ¾²ÉÓü¼Êõ£º%s";s:20:"All rights reserved.";s:14:"±£ÁôËùÓÐȨÀû¡£";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:48:"ûÓаæȨӵÓÐÕßµÄÊéÃæÐí¿É²»µÃÒÔÈκÎÐÎʽ¸´ÖÆͼƬ¡£";s:6:"Log in";s:4:"µÇÈë";s:24:"crumb line|You are here:";s:10:"µ±Ç°Î»Öãº";s:10:"image|Next";s:6:"ÏÂÒ»ÕÅ";s:16:"image|Thumbnails";s:6:"ËõÂÔͼ";s:14:"image|Previous";s:6:"ÉÏÒ»ÕÅ";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:9:"%s ¸öÏà²á";i:1;s:9:"%s ¸öÏà²á";}s:8:"%s image";a:2:{i:0;s:9:"%s ÕÅͼƬ";i:1;s:9:"%s ÕÅͼƬ";}s:12:"No |
thumbnail";s:11:"ûÓÐ |
ËõÂÔͼ";s:25:"Sample image from gallery";s:4:"Ñùͼ";s:19:"Showing %s-%s of %s";s:22:"ÕýÔÚÏÔʾ %s-%s£¬¹²%s¸ö";s:10:"gallery|Up";s:6:"ÉÏÒ»¼¶";s:20:"gallery|Up one level";s:8:"ÏòÉÏÒ»¼¶";s:16:"gallery|Previous";s:4:"ÏòÇ°";s:13:"gallery|First";s:6:"µÚÒ»¸ö";s:12:"gallery|Next";s:6:"ÏÂÒ»¸ö";s:12:"gallery|Last";s:8:"×îºóÒ»¸ö";s:17:"artist name|by %s";s:8:"×÷Õߣº%s";s:5:"Email";s:12:"µç×ÓÓʼþµØÖ·";s:11:"Description";s:4:"ÃèÊö";s:9:"Copyright";s:4:"°æȨ";s:6:"Viewed";s:8:"Á÷ÀÀ´ÎÊý";s:14:"viewed|%s time";a:2:{i:0;s:5:"%s ´Î";i:1;s:5:"%s ´Î";}s:13:"Add a comment";s:12:"Ôö¼ÓÒ»ÌõÆÀÂÛ";s:11:"image|First";s:6:"µÚÒ»ÕÅ";s:10:"image|Last";s:8:"×îºóÒ»ÕÅ";s:8:"Location";s:8:"ÅÄÉãµØµã";s:4:"Date";s:4:"ÈÕÆÚ";s:6:"Camera";s:10:"ÕÕÏà»úÐͺÅ";s:4:"Lens";s:8:"¾µÍ·ÐͺÅ";s:4:"Film";s:8:"½ºÆ¬ÐͺÅ";s:21:"Darkroom manipulation";s:8:"°µ·¿´¦Àí";s:20:"Digital manipulation";s:12:"Êý×ÖÌØЧ´¦Àí";i:0;a:3:{s:7:"charset";s:6:"gb2312";s:8:"language";s:27:"Simplified Chinese (GB2312)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.zh_cn_utf8.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:9:"???????%s";s:20:"Image not found '%s'";s:9:"???????%s";s:8:"email|at";s:1:"?";s:9:"email|dot";s:1:"?";s:26:"Page created in %s seconds";s:10:"???????%s?";s:23:"singapore|Powered by %s";s:10:"????????%s";s:20:"All rights reserved.";s:7:"???????";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:24:"????????????????????????";s:6:"Log in";s:2:"??";s:24:"crumb line|You are here:";s:5:"?????";s:10:"image|Next";s:3:"???";s:16:"image|Thumbnails";s:3:"???";s:14:"image|Previous";s:3:"???";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:2:{i:0;s:6:"%s ???";i:1;s:6:"%s ???";}s:8:"%s image";a:2:{i:0;s:6:"%s ???";i:1;s:6:"%s ???";}s:12:"No |
thumbnail";s:6:"?? |
???";s:25:"Sample image from gallery";s:2:"??";s:19:"Showing %s-%s of %s";s:15:"???? %s-%s??%s?";s:10:"gallery|Up";s:3:"???";s:20:"gallery|Up one level";s:4:"????";s:16:"gallery|Previous";s:2:"??";s:13:"gallery|First";s:3:"???";s:12:"gallery|Next";s:3:"???";s:12:"gallery|Last";s:4:"????";s:17:"artist name|by %s";s:5:"???%s";s:5:"Email";s:6:"??????";s:11:"Description";s:2:"??";s:9:"Copyright";s:2:"??";s:6:"Viewed";s:4:"????";s:14:"viewed|%s time";a:2:{i:0;s:4:"%s ?";i:1;s:4:"%s ?";}s:13:"Add a comment";s:6:"??????";s:11:"image|First";s:3:"???";s:10:"image|Last";s:4:"????";s:8:"Location";s:4:"????";s:4:"Date";s:2:"??";s:6:"Camera";s:5:"?????";s:4:"Lens";s:4:"????";s:4:"Film";s:4:"????";s:21:"Darkroom manipulation";s:4:"????";s:20:"Digital manipulation";s:6:"??????";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:26:"Simplified Chinese (UTF-8)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.zh_tw.pmo |
---|
0,0 → 1,3 |
a:43:{s:22:"Gallery not found '%s'";s:13:"µL¦¹¬Ûï '%s'";s:20:"Image not found '%s'";s:13:"µL¦¹·Ó¤ù '%s'";s:8:"email|at";s:6:"¤p¦Ñ¹«";s:9:"email|dot";s:2:"ÂI";s:26:"Page created in %s seconds";s:18:"ºc¦¨¶±¦@ªá¶O%s¬í";s:23:"singapore|Powered by %s";s:12:"¬Ûïºc¦¨: %s";s:20:"All rights reserved.";s:13:"«O¯d©Ò¦³Åv§Q.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:49:"¨S¦³ª©Åv¾Ö¦³ªÌªº®Ñ±Án©ú, ¤£±o¥H¥ô¦ó§Î¦¡½Æ»s¹Ï¤ù.";s:6:"Log in";s:4:"µn¤J";s:24:"crumb line|You are here:";s:9:"²{¦b¦ì¸m:";s:10:"image|Next";s:6:"¤U¤@±i";s:16:"image|Thumbnails";s:6:"¦^¹wÄý";s:14:"image|Previous";s:6:"¤W¤@±i";s:18:"Select language...";s:11:"¿ï¾Ü»y¨¥...";s:2:"Go";s:4:"½T©w";s:18:"Select template...";s:15:"¿ï¾Ü·®æ¼Ëª©...";s:8:"%s image";a:2:{i:0;s:0:"";i:1;s:0:"";}s:12:"No |
thumbnail";s:13:"¹wÄý¹Ï |
¤£¦s¦b";s:25:"Sample image from gallery";s:8:"¬Ûï¼Ë±i";s:19:"Showing %s-%s of %s";s:22:"¥Ø«eÅã¥Ü %s-%s, ¦@%s¶";s:10:"gallery|Up";s:6:"¤W¤@¼h";s:20:"gallery|Up one level";s:8:"¦^¤W¤@¼h";s:16:"gallery|Previous";s:6:"«e¤@Ó";s:13:"gallery|First";s:6:"²Ä¤@Ó";s:12:"gallery|Next";s:6:"¤U¤@Ó";s:12:"gallery|Last";s:8:"³Ì«á¤@Ó";s:17:"artist name|by %s";s:10:"Äá¼vªÌ: %s";s:5:"Email";s:4:"«H½c";s:11:"Description";s:4:"²¤¶";s:9:"Copyright";s:4:"ª©Åv";s:6:"Viewed";s:8:"ÂsÄý¦¸¼Æ";s:14:"viewed|%s time";a:2:{i:0;s:0:"";i:1;s:0:"";}s:13:"Add a comment";s:8:"µoªíµû½×";s:11:"image|First";s:6:"²Ä¤@±i";s:10:"image|Last";s:8:"³Ì«á¤@±i";s:8:"Location";s:4:"¦aÂI";s:4:"Date";s:4:"¤é´Á";s:6:"Camera";s:8:"¨Ï¥Î¬Û¾÷";s:4:"Lens";s:4:"ÃèÀY";s:4:"Film";s:4:"©³¤ù";s:21:"Darkroom manipulation";s:8:"·t©Ð³B²z";s:20:"Digital manipulation";s:8:"¼Æ¦ì«á»s";i:0;a:3:{s:7:"charset";s:4:"big5";s:8:"language";s:26:"Traditional Chinese (Big5)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/locale/singapore.zh_tw_utf8.pmo |
---|
0,0 → 1,3 |
a:44:{s:22:"Gallery not found '%s'";s:0:"";s:20:"Image not found '%s'";s:0:"";s:8:"email|at";s:5:"Email";s:9:"email|dot";s:0:"";s:26:"Page created in %s seconds";s:26:"構成頁面共花費%s秒";s:23:"singapore|Powered by %s";s:13:"Powered by %s";s:20:"All rights reserved.";s:19:"保留所有權利.";s:104:"Images may not be reproduced in any form without the express written permission of the copyright holder.";s:72:"沒有版權擁有者的書面許可, 不得以任何形式複製圖片.";s:6:"Log in";s:6:"登入";s:24:"crumb line|You are here:";s:13:"現在位置:";s:10:"image|Next";s:9:"下一張";s:16:"image|Thumbnails";s:9:"回預覽";s:14:"image|Previous";s:9:"上一張";s:18:"Select language...";s:0:"";s:2:"Go";s:0:"";s:18:"Select template...";s:0:"";s:10:"%s gallery";a:1:{i:0;s:9:"上一層";}s:8:"%s image";a:2:{i:0;s:0:"";i:1;s:0:"";}s:12:"No |
thumbnail";s:19:"預覽圖 |
不存在";s:25:"Sample image from gallery";s:6:"樣張";s:19:"Showing %s-%s of %s";s:28:"目前顯示 %s-%s, 共%s頁";s:10:"gallery|Up";s:9:"上一層";s:20:"gallery|Up one level";s:12:"回上一層";s:16:"gallery|Previous";s:9:"前一個";s:13:"gallery|First";s:9:"第一個";s:12:"gallery|Next";s:9:"下一個";s:12:"gallery|Last";s:12:"最後一個";s:17:"artist name|by %s";s:10:"作者: %s";s:5:"Email";s:5:"Email";s:11:"Description";s:6:"簡介";s:9:"Copyright";s:6:"版權";s:6:"Viewed";s:12:"瀏覽次數";s:14:"viewed|%s time";a:2:{i:0;s:0:"";i:1;s:0:"";}s:13:"Add a comment";s:12:"發表評論";s:11:"image|First";s:9:"第一張";s:10:"image|Last";s:12:"最後一張";s:8:"Location";s:6:"地點";s:4:"Date";s:6:"日期";s:6:"Camera";s:12:"使用相機";s:4:"Lens";s:6:"鏡頭";s:4:"Film";s:6:"底片";s:21:"Darkroom manipulation";s:12:"暗房處理";s:20:"Digital manipulation";s:12:"數位後製";i:0;a:3:{s:7:"charset";s:5:"utf-8";s:8:"language";s:27:"Traditional Chinese (UTF-8)";s:6:"plural";s:31:"$nplurals=1; $plural=$n==1?0:1;";}} |
/photogallery/install/index.html |
---|
0,0 → 1,27 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore setup</title> |
<link rel="stylesheet" type="text/css" href="../docs/docstyle.css" /> |
</head> |
<body> |
<h1>singapore Setup</h1> |
<p>Welcome to the singapore setup process. This should take no more than a minute.</p> |
<ul> |
<li><a href="install.php">Install singapore</a></li> |
<li><a href="uninstall.php">Uninstall singapore</a></li> |
<!--<li><a href="migrate.php">Migrate database information</a></li>--> |
<li><a href="../">Return to singapore</a></li> |
</ul> |
<p>Once you have completed the setup process you must delete or protect this |
<code>install/</code> directory to prevent unauthorised access.</p> |
</body> |
</html> |
/photogallery/install/install.inc.php |
---|
0,0 → 1,258 |
<?php |
/** |
* Contains functions used during the install process. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: install.inc.php,v 1.4 2006/01/22 03:25:37 tamlyn Exp $ |
*/ |
/** |
* Test server configuration. |
* @return bool true if no errors occurred; false otherwise |
*/ |
function testServer() |
{ |
setupHeader("Testing PHP version"); |
setupMessage("PHP version is ".phpversion()); |
$bits = explode(".",phpversion()); |
if(strcmp($bits[0],"4")<0 || strcmp($bits[0],"4")==0 && strcmp($bits[1],"1")<0) |
return setupError("singapore requires PHP 4.1.0 or higher "); |
$success = true; |
setupHeader("Testing PHP configuration"); |
//setupMessage("If any of these tests fail, you may be able to change the configuration ". |
// "directive (specified in brackets) either in php.ini or by adding ". |
// "<code>ini_set(\"<b>directive_name</b>, 1)</code> to <code>includes/header.php</code>"); |
if(!ini_get("safe_mode")) setupMessage("Safe mode disabled"); |
else $success &= setupError("PHP is running in 'safe mode' (<code>safe_mode</code>). Singapore may still function correctly but safe mode operation is not supported"); |
$session_save_path = ini_get("session.save_path"); |
if(!empty($session_save_path) && is_writable($session_save_path) || ini_get("session.save_handler")!="files") setupMessage("Session save path seems to be correctly specified"); |
else $success &= setupError("Session save path does not exist or is not writable (<code>session.save_path</code>). Singapore will function but you may not be able to use the admin interface"); |
if(ini_get("session.use_trans_sid")) setupMessage("Transparent session id support enabled"); |
else setupMessage("Transparent session id support disabled (<code>use_trans_sid</code>). Singapore will function but will <b>require</b> cookies for the admin interface to function"); |
if(ini_get("file_uploads")) setupMessage("File uploading enabled"); |
else $success &= setupError("File uploading disabled (<code>file_uploads</code>). Singapore will function but you will not be able to upload images via the admin interface"); |
$upload_tmp_dir = ini_get("upload_tmp_dir"); |
if(empty($upload_tmp_dir) || is_writable($upload_tmp_dir)) setupMessage("Upload temp directory seems to be correctly specified"); |
else $success &= setupError("Upload directory directory does not exist or is not writable (<code>upload_tmp_dir</code>). Singapore will function but you may not be able to upload images via the admin interface"); |
//setupMessage("Maximum upload size is ".floor(ini_get("upload_max_filesize")/1024)."KB. You will not be able to upload files larger than this via the admin interface"); |
if(ini_get("allow_url_fopen")) setupMessage("Remote file handling enabled"); |
else $success &= setupError("Remote file handling disabled (<code>allow_url_fopen</code>). Singapore will function but you will not be able to generate thumbnails for remotely hosted files"); |
setupHeader("Testing for config file"); |
if(file_exists($GLOBALS['basePath']."singapore.ini")) setupMessage("Config file found"); |
else $success &= setupError("Config file not found - singapore.ini must be located in the root singapore directory"); |
setupHeader("Testing for GD"); |
//get phpinfo data |
ob_start(); |
phpinfo(8); |
$phpinfo = ob_get_contents(); |
ob_end_clean(); |
//find gd version |
$phpinfo = strip_tags($phpinfo); |
$phpinfo = stristr($phpinfo,"gd version"); |
$phpinfo = stristr($phpinfo,"version"); |
if(!$phpinfo) $success &= setupError("GD not found. You may be able to use ImageMagick instead"); |
else { |
//extract text version and number version |
$gd_version_text = substr($phpinfo,0,strpos($phpinfo,"\n")); |
$gd_version_number = substr($gd_version_text,0,strpos($gd_version_text,".")); |
$gd_version_number = substr($gd_version_number, strlen($gd_version_number)-1); |
setupMessage("Found GD: $gd_version_text"); |
if($gd_version_number=="1") setupMessage("Please change the <code>thumbnail_software</code> option in singapore.ini to \"gd1\". Note: GD1 produces very poor quality thumbnails so please use GD2 or ImageMagick if available"); |
} |
setupHeader("Testing for ImageMagick"); |
$foundIM = exec("mogrify"); |
$whereIM = exec("whereis mogrify"); |
if($foundIM) { |
if($whereIM) setupMessage("Found ImageMagick at $whereIM"); |
else setupMessage("Found ImageMagick"); |
setupMessage("To take advantage of ImageMagick change the <code>thumbnail_software</code> option in singapore.ini to \"im\""); |
} else setupMessage("ImageMagick not found but that doesn't mean it's not there. If it really is not available you may be able to install it yourself (even without shell access to the server)"); |
return $success; |
} |
/** |
* Creates cache and logs directories required to run singapore and ensures |
* all required directories are writeable. |
* @return bool true if no errors occurred; false otherwise |
*/ |
function createDirectories($config) |
{ |
$success = true; |
setupHeader("Creating directories"); |
if(is_writable($config->base_path.$config->pathto_data_dir)) { |
setupMessage("Data directory is writable"); |
if(file_exists($config->base_path.$config->pathto_cache)) |
if(is_writable($config->base_path.$config->pathto_cache)) |
setupMessage("Cache directory already exists at ".$config->base_path.$config->pathto_cache." and is writable"); |
else |
$success = setupError("Cache directory already exists at ".$config->base_path.$config->pathto_cache." but is not writable. Please CHMOD to 777"); |
else |
if(mkdir($config->base_path.$config->pathto_cache, $config->directory_mode)) { |
@chmod($config->base_path.$config->pathto_cache, $config->directory_mode); |
setupMessage("Created cache directory at ".$config->base_path.$config->pathto_cache); |
} else |
$success = setupError("Could not create cache directory at ".$config->base_path.$config->pathto_cache); |
if($config->track_views) |
if(file_exists($config->base_path.$config->pathto_logs)) |
if(is_writable($config->base_path.$config->pathto_logs)) |
setupMessage("Logs directory already exists at ".$config->base_path.$config->pathto_logs." and is writable"); |
else |
$success = setupError("Logs directory already exists at ".$config->base_path.$config->pathto_logs." but is not writable. Please CHMOD to 777"); |
else |
if(mkdir($config->base_path.$config->pathto_logs, $config->directory_mode)) { |
@chmod($config->base_path.$config->pathto_logs, $config->directory_mode); |
setupMessage("Created logs directory at ".$config->base_path.$config->pathto_logs); |
} else |
$success = setupError("Could not create logs directory at ".$config->base_path.$config->pathto_logs); |
else |
setupMessage("View logging disabled. Logs directory not created"); |
} |
else |
$success = setupError("Data directory (".$config->base_path.$config->pathto_data_dir.") is not writable. Please CHMOD to 777"); |
return $success; |
} |
/** |
* Creates the tables and inserts the default users. |
* @param sgIO_sql pointer to a singapore SQL backend object |
*/ |
function sqlCreateTables(&$io) { |
$success = true; |
setupHeader("Creating tables"); |
if(@$io->query("SELECT * FROM ".$io->config->sql_prefix."galleries")) |
setupMessage("'".$io->config->sql_prefix."galleries' table already exists - skipped"); |
elseif($io->query("CREATE TABLE ".$io->config->sql_prefix."galleries (". |
"id varchar(250) NOT NULL, ". |
"lang varchar(16) NOT NULL DEFAULT '', ". |
"filename varchar(200), ". |
"owner varchar(32), ". |
"groups varchar(64), ". |
"permissions int UNSIGNED, ". |
"categories varchar(255), ". |
"name varchar(255), ". |
"artist varchar(255), ". |
"email varchar(255), ". |
"copyright varchar(255), ". |
"description text, ". |
"summary text, ". |
"date varchar(255),". |
"hits smallint UNSIGNED,". |
"lasthit int UNSIGNED,". |
"PRIMARY KEY (id, lang)". |
")")) setupMessage("'".$io->config->sql_prefix."galleries' table created"); |
else |
$success = setupError("Unable to create '".$io->config->sql_prefix."galleries' table:".$io->error()); |
if(@$io->query("SELECT * FROM ".$io->config->sql_prefix."images")) |
setupMessage("'".$io->config->sql_prefix."images' table already exists - skipped"); |
elseif($io->query("CREATE TABLE ".$io->config->sql_prefix."images (". |
"galleryid varchar(250) NOT NULL, ". |
"filename varchar(200) NOT NULL, ". |
"lang varchar(16) NOT NULL DEFAULT '', ". |
"thumbnail varchar(255), ". |
"owner varchar(32), ". |
"groups varchar(64), ". |
"permissions int, ". |
"categories varchar(64), ". |
"name varchar(255), ". |
"artist varchar(255), ". |
"email varchar(255), ". |
"copyright varchar(255), ". |
"description text, ". |
"width smallint UNSIGNED, ". |
"height smallint UNSIGNED, ". |
"type tinyint UNSIGNED, ". |
"location varchar(255), ". |
"date varchar(255), ". |
"camera varchar(255), ". |
"lens varchar(255), ". |
"film varchar(255), ". |
"darkroom text, ". |
"digital text, ". |
"hits smallint UNSIGNED,". |
"lasthit int UNSIGNED,". |
"PRIMARY KEY (galleryid, filename, lang)". |
")")) setupMessage("'".$io->config->sql_prefix."images' table created"); |
else |
$success = setupError("Unable to create '".$io->config->sql_prefix."images' table:".$io->error()); |
if(@$io->query("SELECT * FROM ".$io->config->sql_prefix."users")) |
setupMessage("'".$io->config->sql_prefix."users' table already exists - skipped"); |
elseif($io->query("CREATE TABLE ".$io->config->sql_prefix."users (". |
"username varchar(32) NOT NULL, ". |
"userpass char(32) NOT NULL, ". |
"permissions int UNSIGNED, ". |
"groups varchar(64), ". |
"email varchar(255), ". |
"fullname varchar(255), ". |
"description varchar(255), ". |
"stats varchar(255), ". |
"PRIMARY KEY (username)". |
")")) { |
setupMessage("'".$io->config->sql_prefix."users' table created"); |
if($io->query("INSERT INTO ".$io->config->sql_prefix."users VALUES". |
'("admin", "5f4dcc3b5aa765d61d8327deb882cf99", 1024, "", "", "Administrator", "Default administrator account", "")') && |
$io->query("INSERT INTO ".$io->config->sql_prefix."users VALUES". |
'("guest", "5f4dcc3b5aa765d61d8327deb882cf99", 0, "", "", "Guest", "Restricted use account for guests who do not have a user account", "")')) |
setupMessage("Inserted default users into '".$io->config->sql_prefix."users' table"); |
else |
$success = setupError("Unable to insert default users into '".$io->config->sql_prefix."users' table:".$io->error()); |
} else |
$success = setupError("Unable to create '".$io->config->sql_prefix."users' table:".$io->error()); |
return $success; |
} |
//output functions |
function setupHeader($var) |
{ |
echo "\n</p>\n\n<h2>{$var}</h2>\n\n<p>\n"; |
} |
/** |
* Print an information message. Always returns true. |
* @return true |
*/ |
function setupMessage($var) |
{ |
echo "{$var}.<br />\n"; |
return true; |
} |
/** |
* Print an error message. Always returns false. |
* @return false |
*/ |
function setupError($var) |
{ |
echo "<span class=\"error\">{$var}</span>.<br />\n"; |
return false; |
} |
?> |
/photogallery/install/install.php |
---|
0,0 → 1,151 |
<?php |
/** |
* Performs necessary actions to install singapore. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: install.php,v 1.6 2006/02/04 02:12:12 tamlyn Exp $ |
*/ |
//path to singapore root |
$basePath = "../"; |
require_once "install.inc.php"; |
require_once $basePath."includes/config.class.php"; |
//determine current step in setup process |
$setupStep = isset($_REQUEST["step"]) ? $_REQUEST["step"] : "test"; |
if($setupStep=="phpinfo") { |
phpinfo(); |
exit; |
} |
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore setup</title> |
<link rel="stylesheet" type="text/css" href="../docs/docstyle.css" /> |
</head> |
<body> |
<?php |
//if file is parsed by php then this block will never be executed |
if(false) { |
?> |
</p> |
<h1>Oh dear...</h1> |
<p>PHP is not installed or is not configured correctly. See the |
<a href="http://www.php.net/manual/">PHP manual</a> for more information. |
<?php |
} //end php test |
switch($setupStep) { |
case "test" : |
setupHeader("Step 1 of 2: Test Server"); |
setupMessage("Attempting to find out if your server is capable of running singapore"); |
setupMessage("No changes are made at this time"); |
if(testServer()) { |
setupHeader("OK"); |
setupMessage("All tests completed successfully"); |
} else { |
setupHeader("Oops!"); |
setupError("One or more problems were encountered. You may want to fix them and <a href=\"install.php?step=test\">retry this step</a>"); |
} |
echo '<br /><a href="index.html"><< Previous: welcome</a>'; |
echo ' | <a href="install.php?step=phpinfo">View PHP configuration</a>'; |
echo ' | <a href="install.php?step=database">Next: setup database >></a>'; |
//echo ' | <a href="index.html">Finish</a>'; |
//echo ' | <a href="install.php?step=directories">Next: create directories >></a>'; |
break; |
case "directories" : |
setupHeader("Step 2 of 3: Create Directories"); |
setupMessage("Setup will now create the directories necessary to store thumbnails and logs"); |
//create config object |
$config = new sgConfig($basePath."singapore.ini"); |
$config->pathto_logs = $config->pathto_data_dir."logs/"; |
$config->pathto_cache = $config->pathto_data_dir."cache/"; |
$config->base_path = $basePath; |
if(createDirectories($config)) { |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="install.php?step=directories">retry this step</a>'); |
} |
echo '<br /><a href="install.php?step=test"><< Previous: test server</a>'; |
echo ' | <a href="install.php?step=database">Next: setup database >></a>'; |
break; |
case "database" : |
setupHeader("Step 2 of 2: Setup Database"); |
//create config object |
$config =& sgConfig::getInstance(); |
$config->loadConfig($basePath."singapore.ini"); |
$config->base_path = $basePath; |
switch($config->io_handler) { |
case "csv" : |
setupMessage("The default CSV file database does not require any further setting up"); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
break; |
case "mysql" : |
include_once $basePath."includes/io_mysql.class.php"; |
$config->loadConfig($basePath."secret.ini.php"); |
setupMessage("Setup will now create the tables necessary to run singapore on a MySQL database"); |
setupHeader("Connecting to database"); |
$io = new sgIO_mysql(); |
if(!$io) setupError("Error connecting to database. Please ensure database settings are correct"); |
if(sqlCreateTables($io)) { |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="install.php?step=database">retry this step</a>'); |
} |
break; |
case "sqlite" : |
include_once $basePath."includes/io_sqlite.class.php"; |
setupMessage("Setup will now create the database and tables necessary to run singapore on SQLite"); |
setupHeader("Opening database file"); |
$io = new sgIO_sqlite(); |
if(!$io) { |
setupError("Error connecting to database. Please ensure database settings are correct"); |
break; |
} else setupMessage("Success"); |
if(sqlCreateTables($io)) { |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="install.php?step=database">retry this step</a>'); |
} |
break; |
default : |
setupError("Unrecognised io_handler."); |
} |
setupMessage("Don't forget to delete or protect this <code>install</code> directory to prevent unauthorised access"); |
echo '<br /><a href="install.php?step=test"><< Previous: test server</a>'; |
//echo '<br /><a href="install.php?step=directories"><< Previous: create directories</a>'; |
echo ' | <a href="index.html">Finish</a>'; |
break; |
} |
?> |
</body> |
</html> |
/photogallery/install/migrate.inc.php |
---|
0,0 → 1,95 |
<?php |
/** |
* Contains functions used during the database migration process. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: migrate.inc.php,v 1.2 2004/12/15 17:04:56 tamlyn Exp $ |
*/ |
function setPerms($obj) { |
$obj->permissions = 0; |
if(!empty($_POST["sgGrpRead"])) $obj->permissions |= SG_GRP_READ; |
if(!empty($_POST["sgGrpEdit"])) $obj->permissions |= SG_GRP_EDIT; |
if(!empty($_POST["sgGrpAdd"])) $obj->permissions |= SG_GRP_ADD; |
if(!empty($_POST["sgGrpDelete"])) $obj->permissions |= SG_GRP_DELETE; |
if(!empty($_POST["sgWldRead"])) $obj->permissions |= SG_WLD_READ; |
if(!empty($_POST["sgWldEdit"])) $obj->permissions |= SG_WLD_EDIT; |
if(!empty($_POST["sgWldAdd"])) $obj->permissions |= SG_WLD_ADD; |
if(!empty($_POST["sgWldDelete"])) $obj->permissions |= SG_WLD_DELETE; |
$obj->groups = $_REQUEST["sgGroups"]; |
$obj->owner = $_REQUEST["sgOwner"]; |
return $obj; |
} |
function convertDirectory ($path, $io_in, $io_out) |
{ |
if (is_dir($path)) { |
$gallery = $io_in->getGallery($path); |
echo "<ul><li>Checking $path<br />\n"; |
if($gallery) { |
if($gallery->summary != "" && empty($_REQUEST["convertOverwrite"])) |
echo "Did NOT overwrite non-empty summary in $path<br />\n"; |
else { |
if($_REQUEST["convertType"]!='none') |
$gallery->summary = $gallery->desc; |
if($_REQUEST["convertType"]=='move') |
$gallery->desc = ""; |
} |
$gallery = setPerms($gallery); |
for($i=0; $i<count($gallery->images); $i++) |
$gallery->images[$i] = setPerms($gallery->images[$i]); |
if($io_out->putGallery($gallery)) |
echo "Successfully converted $path<br />\n"; |
else |
echo "Problem saving data file for $path<br />\n"; |
} else |
echo "Skipping $path<br />\n"; |
$d = dir($path); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$path = $d->path."/".$file; |
if (is_dir($path)) { |
convertDirectory($path); |
} |
} |
echo "</li></ul>\n"; |
} |
} |
//output functions |
function setupHeader($var) |
{ |
echo "\n</p>\n\n<h2>{$var}</h2>\n\n<p>\n"; |
} |
/** |
* Print an information message. Always returns true. |
* @return true |
*/ |
function setupMessage($var) |
{ |
echo "{$var}.<br />\n"; |
return true; |
} |
/** |
* Print an error message. Always returns false. |
* @return false |
*/ |
function setupError($var) |
{ |
echo "<span class=\"error\">{$var}</span>.<br />\n"; |
return false; |
} |
?> |
/photogallery/install/migrate.php |
---|
0,0 → 1,203 |
<?php |
//permissions bit flags |
define("SG_GRP_READ", 1); |
define("SG_GRP_EDIT", 2); |
define("SG_GRP_ADD", 4); |
define("SG_GRP_DELETE", 8); |
define("SG_WLD_READ", 16); |
define("SG_WLD_EDIT", 32); |
define("SG_WLD_ADD", 64); |
define("SG_WLD_DELETE", 128); |
$basePath = "../"; |
//determine current step in setup process |
$setupStep = isset($_REQUEST["step"]) ? $_REQUEST["step"] : "choose"; |
?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore database migration</title> |
<link rel="stylesheet" type="text/css" href="../docs/docstyle.css" /> |
</head> |
<body> |
<?php |
require_once $basePath."includes/config.class.php"; |
require_once $basePath."includes/gallery.class.php"; |
require_once $basePath."includes/image.class.php"; |
$config = new sgConfig($basePath."singapore.ini"); |
switch($setupStep) { |
case "select" : |
setupHeader("Step 1 of 2: Select databases"); |
setupMessage("Nothing is deleted at this time"); |
makeWritable($basePath); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
setupHeader("WARNING!"); |
setupMessage("The following step will delete all gallery, image and user information from the currently selected database. Gallery directories and image files will not be deleted but all extended information (e.g. name, artist, copyright etc.) will be irretrievably lost"); |
echo '<br /><a href="index.html">Finish</a>'; |
echo ' | <a href="uninstall.php?step=database">Next: I AM SURE I WANT TO delete database information >></a>'; |
break; |
case "defaults" : |
setupHeader("Step 2 of 3: Select default permissions"); |
setupMessage("Nothing is deleted at this time"); |
makeWritable($basePath); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
setupHeader("WARNING!"); |
setupMessage("The following step will delete all gallery, image and user information from the currently selected database. Gallery directories and image files will not be deleted but all extended information (e.g. name, artist, copyright etc.) will be irretrievably lost"); |
echo '<br /><a href="index.html">Finish</a>'; |
echo ' | <a href="uninstall.php?step=database">Next: I AM SURE I WANT TO delete database information >></a>'; |
break; |
case "convert" : |
setupHeader("Step 2 of 2: Delete database information"); |
//create config object |
$config = new sgConfig($basePath."singapore.ini"); |
$config->loadConfig($basePath."secret.ini.php"); |
$config->base_path = $basePath; |
//include base classes |
require_once $basePath."includes/io.class.php"; |
require_once $basePath."includes/io_sql.class.php"; |
switch($config->io_handler) { |
case "csv" : |
setupMessage("The default CSV file database does not require uninstalling"); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
break; |
case "mysql" : |
require_once $basePath."includes/io_mysql.class.php"; |
setupMessage("Setup will now delete all gallery, image and user information"); |
setupHeader("Connecting to MySQL database"); |
$io = new sgIO_mysql($config); |
if(!$io) { |
setupError("Error connecting to database. Please ensure database settings are correct"); |
break; |
} else setupMessage("Connected"); |
if(sqlDropTables($io)) { |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="migrate.php?step=database">retry this step</a>'); |
} |
break; |
case "sqlite" : |
setupMessage("Setup will now delete all gallery, image and user information"); |
setupHeader("Deleting SQLite database file"); |
if(unlink($basePath.$config->pathto_data_dir."sqlite.dat")) { |
setupMessage("Deleted database file '".$basePath.$config->pathto_data_dir."sqlite.dat'"); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupError("Unable to delete database file '".$basePath.$config->pathto_data_dir."sqlite.dat'"); |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="migrate.php?step=database">retry this step</a>'); |
} |
break; |
default : |
setupError("Unrecognised io_handler"); |
} |
echo '<br /><a href="uninstall.php?step=reset"><< Previous: Reset permissions</a>'; |
echo ' | <a href="index.html">Finish</a>'; |
break; |
} |
if(isset($_REQUEST["convertType"])) { |
require_once $basePath."includes/config.class.php"; |
require_once $basePath."includes/gallery.class.php"; |
require_once $basePath."includes/image.class.php"; |
require_once $basePath."includes/io.class.php"; |
require_once $basePath."includes/io_sql.class.php"; |
$config = new sgConfig($basePath."singapore.ini"); |
$config->base_path = $basePath; |
//echo "<ul>\n"; |
convertDirectory($config->base_path.$config->pathto_galleries); |
//echo "</ul>\n"; |
echo "<p>All operations complete.</p>\n"; |
} else { ?> |
<p>This will convert all your metadata files from singapore 0.9.6, 0.9.7, 0.9.8 or 0.9.9 to 0.9.10.</p> |
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> |
<h3>summary field</h3> |
<p>There is a new gallery summary field that is displayed instead of the |
description in the parent gallery. You can choose to either copy or move the |
old description field to the summary field or leave both untouched:</p> |
<p><input type="radio" class="radio" name="convertType" value="copy" checked="true" /> Copy<br /> |
<input type="radio" class="radio" name="convertType" value="move" /> Move<br /> |
<input type="radio" class="radio" name="convertType" value="none" /> Neither<br /> |
<p>By default only empty summary fields will be written to. Check this option to |
allow the summary field to be overwritten <input type="checkbox" class="checkbox" name="convertOverwrite" /></p> |
<h3>permissions</h3> |
<p>This version introduces multiple authorised users and image & gallery |
permissions. Please choose the default permissions that you would like all |
objects to be set to. The default permissions selected below are recommended as |
they will make all images & galleries readable by everyone but only |
modifiable by administrators. See the readme for more information on the |
permissions model used by singapore.</p> |
<table> |
<tr> |
<td>Owner</td> |
<td><input type="text" name="sgOwner" value="__nobody__" /></td> |
</tr> |
<tr> |
<td>Groups</td> |
<td><input type="text" name="sgGroups" value="" /></td> |
</tr> |
<tr> |
<td>Group permissions</td> |
<td><div class="inputbox"> |
<input type="checkbox" class="checkbox" name="sgGrpRead" checked="true"/> Read |
<input type="checkbox" class="checkbox" name="sgGrpEdit" /> Edit |
<input type="checkbox" class="checkbox" name="sgGrpAdd" /> Add |
<input type="checkbox" class="checkbox" name="sgGrpDelete" /> Delete |
</div></td> |
</tr> |
<tr> |
<td>World permissions</td> |
<td><div class="inputbox"> |
<input type="checkbox" class="checkbox" name="sgWldRead" checked="true"/> Read |
<input type="checkbox" class="checkbox" name="sgWldEdit" /> Edit |
<input type="checkbox" class="checkbox" name="sgWldAdd" /> Add |
<input type="checkbox" class="checkbox" name="sgWldDelete" /> Delete |
</div></td> |
</tr> |
</table> |
<p>Please note that while the script will create backups of your metadata files |
it is highly recommended that you create your own backups for added security.</p> |
<input type="submit" class="button" value="Go" /></p> |
</form> |
<?php } ?> |
<p><a href="index.html">Return</a> to tools.</p> |
</body> |
</html> |
/photogallery/install/uninstall.inc.php |
---|
0,0 → 1,91 |
<?php |
/** |
* Contains functions used during the uninstall process. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: uninstall.inc.php,v 1.1 2004/12/02 12:01:59 tamlyn Exp $ |
*/ |
/** |
* Recursively attempts to make all files and directories in $dir writable |
* |
* @param string full directory name (must end with /) |
*/ |
function makeWritable($dir) |
{ |
if (is_dir($dir)) { |
$d = dir($dir); |
while (($file = $d->read()) !== false) { |
if ($file == '.' || $file == '..') continue; |
$fullfile = $d->path . $file; |
if(!is_writable($fullfile) && @chmod($fullfile,0777)) |
setupMessage("Made $fullfile writable"); |
if (is_dir($fullfile)) |
makeWritable($fullfile."/"); |
} |
} |
} |
/** |
* Drops all tables created by singapore. |
* @param sgIO_sql pointer to a singapore SQL backend object |
*/ |
function sqlDropTables($io) { |
$success = true; |
setupHeader("Deleting tables"); |
if(!$io->query("SELECT * FROM ".$io->config->sql_prefix."galleries")) |
setupMessage("'".$io->config->sql_prefix."galleries' table not found - skipped"); |
elseif($io->query("DROP TABLE ".$io->config->sql_prefix."galleries")) |
setupMessage("'".$io->config->sql_prefix."galleries' table deleted"); |
else |
$success = setupError("Unable to delete '".$io->config->sql_prefix."galleries' table:".$io->error()); |
if(!$io->query("SELECT * FROM ".$io->config->sql_prefix."images")) |
setupMessage("'".$io->config->sql_prefix."images' table not found - skipped"); |
elseif($io->query("DROP TABLE ".$io->config->sql_prefix."images")) |
setupMessage("'".$io->config->sql_prefix."images' table deleted"); |
else |
$success = setupError("Unable to delete '".$io->config->sql_prefix."images' table:".$io->error()); |
if(!$io->query("SELECT * FROM ".$io->config->sql_prefix."users")) |
setupMessage("'".$io->config->sql_prefix."users' table not found - skipped"); |
elseif($io->query("DROP TABLE ".$io->config->sql_prefix."users")) |
setupMessage("'".$io->config->sql_prefix."users' table deleted"); |
else |
$success = setupError("Unable to delete '".$io->config->sql_prefix."users' table:".$io->error()); |
return $success; |
} |
//output functions |
function setupHeader($var) |
{ |
echo "\n</p>\n\n<h2>{$var}</h2>\n\n<p>\n"; |
} |
/** |
* Print an information message. Always returns true. |
* @return true |
*/ |
function setupMessage($var) |
{ |
echo "{$var}.<br />\n"; |
return true; |
} |
/** |
* Print an error message. Always returns false. |
* @return false |
*/ |
function setupError($var) |
{ |
echo "<span class=\"error\">{$var}</span>.<br />\n"; |
return false; |
} |
?> |
/photogallery/install/uninstall.php |
---|
0,0 → 1,107 |
<?php |
/** |
* Performs necessary actions to uninstall singapore. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: uninstall.php,v 1.3 2006/01/20 12:31:08 tamlyn Exp $ |
*/ |
//path to singapore root |
$basePath = "../"; |
require_once "uninstall.inc.php"; |
require_once $basePath."includes/config.class.php"; |
//determine current step in setup process |
$setupStep = isset($_REQUEST["step"]) ? $_REQUEST["step"] : "reset"; |
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore setdown</title> |
<link rel="stylesheet" type="text/css" href="../docs/docstyle.css" /> |
</head> |
<body> |
<?php |
switch($setupStep) { |
case "reset" : |
setupHeader("Step 1 of 2: Reset permissions"); |
setupMessage("Resetting file permissions on server-generated content"); |
setupMessage("Nothing is deleted at this time"); |
makeWritable($basePath); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
setupHeader("WARNING!"); |
setupMessage("The following step will delete all gallery, image and user information from the currently selected database. Gallery directories and image files will not be deleted but all extended information (e.g. name, artist, copyright etc.) will be irretrievably lost"); |
echo '<br /><a href="index.html">Finish</a>'; |
echo ' | <a href="uninstall.php?step=database">Next: I AM SURE I WANT TO delete database information >></a>'; |
break; |
case "database" : |
setupHeader("Step 2 of 2: Delete database information"); |
//create config object |
$config =& sgConfig::getInstance(); |
$config->loadConfig($basePath."singapore.ini"); |
$config->base_path = $basePath; |
switch($config->io_handler) { |
case "csv" : |
setupMessage("The default CSV file database does not require uninstalling"); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
break; |
case "mysql" : |
$config->loadConfig($basePath."secret.ini.php"); |
include_once $basePath."includes/io_mysql.class.php"; |
setupMessage("Setup will now delete all gallery, image and user information"); |
setupHeader("Connecting to MySQL database"); |
$io = new sgIO_mysql($config); |
if(!$io) { |
setupError("Error connecting to database. Please ensure database settings are correct"); |
break; |
} else setupMessage("Connected"); |
if(sqlDropTables($io)) { |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="uninstall.php?step=database">retry this step</a>'); |
} |
break; |
case "sqlite" : |
$config->loadConfig($basePath."secret.ini.php"); |
setupMessage("Setup will now delete all gallery, image and user information"); |
setupHeader("Deleting SQLite database file"); |
if(unlink($basePath.$config->pathto_data_dir."sqlite.dat")) { |
setupMessage("Deleted database file '".$basePath.$config->pathto_data_dir."sqlite.dat'"); |
setupHeader("OK"); |
setupMessage("This step completed successfully"); |
} else { |
setupError("Unable to delete database file '".$basePath.$config->pathto_data_dir."sqlite.dat'"); |
setupHeader("Oops!"); |
setupError('There was a problem. Please fix it and <a href="uninstall.php?step=database">retry this step</a>'); |
} |
break; |
default : |
setupError("Unrecognised io_handler"); |
} |
echo '<br /><a href="uninstall.php?step=reset"><< Previous: Reset permissions</a>'; |
echo ' | <a href="index.html">Finish</a>'; |
break; |
} |
?> |
</body> |
</html> |
/photogallery/includes/admin.class.php |
---|
0,0 → 1,1532 |
<?php |
/** |
* Class providing admin functions. |
* |
* @package singapore |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2006 Tamlyn Rhodes |
* @version $Id: admin.class.php,v 1.65 2006/09/08 15:29:22 tamlyn Exp $ |
*/ |
define("SG_ADMIN", 1024); |
define("SG_SUSPENDED", 2048); |
//include the base IO class |
require_once dirname(__FILE__)."/singapore.class.php"; |
/** |
* Provides gallery, image and user administration functions. |
* |
* @uses Singapore |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
*/ |
class sgAdmin extends Singapore |
{ |
/** |
* Array of error messages raised by the script |
* @var array |
*/ |
var $errors = array(); |
/** |
* Array of informational messages raised by the script |
* @var array |
*/ |
var $messages = array(); |
/** |
* Base name of admin template file to include |
* @var string |
*/ |
var $includeFile = "login"; |
/** |
* Admin constructor. Doesn't call {@link Singapore} constructor. |
* @param string the path to the base singapore directory |
*/ |
function sgAdmin($basePath = "") |
{ |
//import class definitions |
//io handler class included once config is loaded |
require_once $basePath."includes/translator.class.php"; |
require_once $basePath."includes/thumbnail.class.php"; |
require_once $basePath."includes/gallery.class.php"; |
require_once $basePath."includes/config.class.php"; |
require_once $basePath."includes/image.class.php"; |
require_once $basePath."includes/user.class.php"; |
//start execution timer |
$this->scriptStartTime = microtime(); |
//remove slashes |
if(get_magic_quotes_gpc()) { |
$_REQUEST = array_map(array("Singapore","arraystripslashes"), $_REQUEST); |
//as if magic_quotes_gpc wasn't insane enough, php doesn't add slashes |
//to the tmp_name variable so I have to add them manually. Grrrr. |
foreach($_FILES as $key => $nothing) |
$_FILES[$key]["tmp_name"] = addslashes($_FILES[$key]["tmp_name"]); |
$_FILES = array_map(array("Singapore","arraystripslashes"), $_FILES); |
} |
$galleryId = isset($_REQUEST["gallery"]) ? $_REQUEST["gallery"] : "."; |
//load config from singapore root directory |
$this->config =& sgConfig::getInstance(); |
$this->config->loadConfig($basePath."singapore.ini"); |
$this->config->loadConfig($basePath."secret.ini.php"); |
//set runtime values |
$this->config->pathto_logs = $this->config->pathto_data_dir."logs/"; |
$this->config->pathto_cache = $this->config->pathto_data_dir."cache/"; |
$this->config->pathto_current_template = $this->config->pathto_templates.$this->config->default_template."/"; |
$this->config->pathto_admin_template = $this->config->pathto_templates.$this->config->admin_template_name."/"; |
//load config from admin template ini file (admin.ini) if present |
$this->config->loadConfig($basePath.$this->config->pathto_admin_template."admin.ini"); |
$this->template = $this->config->default_template; |
//do not load gallery-specific ini files |
//set current language from request vars or config |
$this->language = isset($_REQUEST["lang"]) ? $_REQUEST["lang"] : $this->config->default_language; |
//read the language file |
$this->translator =& Translator::getInstance($this->language); |
$this->translator->readLanguageFile($this->config->base_path.$this->config->pathto_locale."singapore.".$this->language.".pmo"); |
$this->translator->readLanguageFile($this->config->base_path.$this->config->pathto_locale."singapore.admin.".$this->language.".pmo"); |
//include IO handler class and create instance |
require_once $basePath."includes/io_".$this->config->io_handler.".class.php"; |
$ioClassName = "sgIO_".$this->config->io_handler; |
$this->io = new $ioClassName($this->config); |
//set character set |
if(!empty($this->translator->languageStrings[0]["charset"])) |
$this->character_set = $this->translator->languageStrings[0]["charset"]; |
else |
$this->character_set = $this->config->default_charset; |
//set action to perform |
if(empty($_REQUEST["action"])) $this->action = "menu"; |
else $this->action = $_REQUEST["action"]; |
//set page title |
$this->pageTitle = $this->config->gallery_name; |
//set root node of crumb line |
$holder = new sgGallery("", new stdClass); |
$holder->name = $this->config->gallery_name; |
$this->ancestors = array($holder); |
} |
/** |
* Push an error message onto the error stack |
* @param string Error message |
* @param string true if error is fatal; false otherwise (optional) |
* @return false |
*/ |
function pushError($error, $fatal = false) |
{ |
if($fatal) die($error); |
$this->errors[] = $error; |
return false; |
} |
/** |
* Push a message onto the message stack |
* @return true |
*/ |
function pushMessage($message) |
{ |
$this->messages[] = $message; |
return true; |
} |
function showMessages() |
{ |
if(empty($this->errors) && empty($this->messages)) return ''; |
$errorText = $this->translator->_g("ERROR"); |
$ret = '<ul id="sgAdminMessages">'; |
foreach($this->errors as $error) |
$ret .= '<li class="adminError">'.$errorText.': '.$error.'</li>'."\n"; |
foreach($this->messages as $message) |
$ret .= '<li class="adminMessage">'.$message.'</li>'."\n"; |
$ret .= '</ul>'; |
return $ret; |
} |
/** |
* Returns a link to the image or gallery with the correct formatting and path |
* NOTE: This takes its arguments in a different order to {@link Singapore::formatURL()} |
* |
* @author Adam Sissman <adam at bluebinary dot com> |
*/ |
function formatAdminURL($action, $gallery = null, $image = null, $startat = null, $extra = null) |
{ |
$ret = $this->config->base_url."admin.php?"; |
$ret .= "action=".$action; |
if($gallery != null) $ret .= "&gallery=".$gallery; |
if($image != null) $ret .= "&image=".$image; |
if($startat != null) $ret .= "&startat=".$startat; |
if($extra != null) $ret .= $extra; |
if($this->language != $this->config->default_language) $ret .= '&'.$this->config->url_lang.'='.$this->language; |
if($this->template != $this->config->default_template) $ret .= '&'.$this->config->url_template.'='.$this->template; |
return $ret; |
} |
/** |
* Tries to find temporary storage space |
*/ |
function findTempDirectory() |
{ |
if(isset($_ENV["TMP"]) && is_writable($_ENV["TMP"])) return $_ENV["TMP"]; |
elseif(isset($_ENV["TEMP"]) && is_writable($_ENV["TEMP"])) return $_ENV["TEMP"]; |
elseif(is_writable("/tmp")) return "/tmp"; |
elseif(is_writable("/windows/temp")) return "/windows/temp"; |
elseif(is_writable("/winnt/temp")) return "/winnt/temp"; |
else return null; |
} |
function getMaxHits($array) |
{ |
$max = 0; |
foreach($array as $obj) |
if($obj->hits > $max) |
$max = $obj->hits; |
return $max; |
} |
/** |
* Returns true if the current admin action has been confirmed (i.e. by clicking OK) |
*/ |
function actionConfirmed() |
{ |
return isset($_REQUEST["confirmed"]) && $_REQUEST["confirmed"] == $this->translator->_g("confirm|OK"); |
} |
/** |
* Returns true if the current admin action has been cancelled (i.e. by clicking Cancel) |
*/ |
function actionCancelled() |
{ |
return isset($_REQUEST["confirmed"]) && $_REQUEST["confirmed"] == $this->translator->_g("confirm|Cancel"); |
} |
/** |
* Checks request variables for action to perform, checks user permissions, |
* performs action and sets file to include. |
*/ |
function doAction() |
{ |
//check if user is logged in |
if(!$this->isLoggedIn() && $this->action != "login") |
return; |
//choose which file to include and/or perform admin actions |
switch($this->action) { |
case "addgallery" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"add")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->addGallery()) { |
$this->selectGallery($this->gallery->id."/".$_REQUEST["newgallery"]); |
$this->pushMessage($this->translator->_g("Gallery added")); |
$this->includeFile = "editgallery"; |
} else { |
$this->includeFile = "newgallery"; |
} |
break; |
case "addimage" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"add")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
break; |
} |
switch($_REQUEST["sgLocationChoice"]) { |
case "remote" : |
case "single" : |
if($this->addImage()) |
$this->includeFile = "editimage"; |
else |
$this->includeFile = "newimage"; |
break; |
case "multi" : |
if($this->addMultipleImages()) |
$this->includeFile = "view"; |
else |
$this->includeFile = "newimage"; |
break; |
default : |
$this->includeFile = "newimage"; |
break; |
} |
break; |
case "changethumbnail" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"edit")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->actionConfirmed()) { |
$this->saveGalleryThumbnail(); |
$this->includeFile = "editgallery"; |
} elseif($this->actionCancelled()) { |
$this->includeFile = "editgallery"; |
} else { |
$this->includeFile = "changethumbnail"; |
} |
break; |
case "deletegallery" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"delete")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->actionConfirmed() || ($this->gallery->galleryCount()==0 && $this->gallery->imageCount()==0)) { |
if($this->deleteGallery()) |
$this->selectGallery($this->gallery->parent->id); |
$this->includeFile = "view"; |
} elseif($this->actionCancelled()) { |
$this->includeFile = "view"; |
} else { |
$GLOBALS["confirmTitle"] = $this->translator->_g("Delete Gallery"); |
$GLOBALS["confirmMessage"] = $this->translator->_g("Gallery %s is not empty.\nAre you sure you want to irretrievably delete it and all subgalleries and images it contains?", "<em>".$this->gallery->name."</em>"); |
$this->includeFile = "confirm"; |
} |
break; |
case "deleteimage" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"delete")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->actionConfirmed()) { |
$this->deleteImage(); |
$this->includeFile = "view"; |
} elseif($this->actionCancelled()) { |
$this->includeFile = "view"; |
} else { |
$GLOBALS["confirmTitle"] = $this->translator->_g("delete image"); |
$GLOBALS["confirmMessage"] = $this->translator->_g("Are you sure you want to irretrievably delete image %s from gallery %s?","<em>".$this->image->name().$this->image->byArtistText()."</em>","<em>".$this->gallery->name()."</em>"); |
$this->includeFile = "confirm"; |
} |
break; |
case "deleteuser" : |
if(!$this->user->isAdmin()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->actionConfirmed()) { |
if($this->deleteUser()) |
$this->pushMessage($this->translator->_g("User deleted")); |
$this->includeFile = "manageusers"; |
} elseif($this->actionCancelled()) { |
$this->includeFile = "manageusers"; |
} else { |
$GLOBALS["confirmTitle"] = $this->translator->_g("delete user"); |
$GLOBALS["confirmMessage"] = $this->translator->_g("Are you sure you want to permanently delete user %s?","<em>".$_REQUEST["user"]."</em>"); |
$this->includeFile = "confirm"; |
} |
break; |
case "editgallery" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"edit")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} else |
$this->includeFile = "editgallery"; |
break; |
case "editimage" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"edit")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} else |
$this->includeFile = "editimage"; |
break; |
case "editpass" : |
if($this->user->isGuest()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else |
$this->includeFile = "editpass"; |
break; |
case "editpermissions" : |
$this->selectGallery(); |
if(!$this->user->isAdmin() && !$this->user->isOwner($this->gallery)) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} else |
$this->includeFile = "editpermissions"; |
break; |
case "editprofile" : |
if($this->user->isGuest()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else |
$this->includeFile = "editprofile"; |
break; |
case "edituser" : |
if(!$this->user->isAdmin() && $_REQUEST["user"] != $this->user->username || $this->user->isGuest()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else |
$this->includeFile = "edituser"; |
break; |
case "login" : |
if($this->doLogin()) |
$this->includeFile = "menu"; |
else |
$this->includeFile = "login"; |
break; |
case "logout" : |
$this->logout(); |
$this->includeFile = "login"; |
break; |
case "manageusers" : |
if(!$this->user->isAdmin()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else |
$this->includeFile = "manageusers"; |
break; |
case "multi" : |
$this->selectGallery(); |
if(!isset($_REQUEST["sgGalleries"]) && !isset($_REQUEST["sgImages"])) { |
$this->pushMessage($this->translator->_g("Please select one or more items.")); |
$this->includeFile = "view"; |
} elseif($_REQUEST["subaction"]==$this->translator->_g("Copy or move")) { |
$this->includeFile = "multimove"; |
} elseif($_REQUEST["subaction"]==$this->translator->_g("Delete")) { |
if(!$this->checkPermissions($this->gallery,"delete")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->actionConfirmed()) { |
if(isset($_REQUEST["sgImages"])) { |
$success = $this->deleteMultipleImages(); |
$this->pushMessage($this->translator->_g("%s images deleted.", $success)); |
} else { |
$success = $this->deleteMultipleGalleries(); |
$this->pushMessage($this->translator->_g("%s galleries deleted.", $success)); |
} |
$this->includeFile = "view"; |
} elseif($this->actionCancelled()) { |
$this->includeFile = "view"; |
} else { |
if(isset($_REQUEST["sgImages"])) { |
$GLOBALS["confirmTitle"] = $this->translator->_g("Delete Images"); |
$GLOBALS["confirmMessage"] = $this->translator->_g("Are you sure you want to permanently delete %s images?",count($_REQUEST["sgImages"])); |
} else{ |
$GLOBALS["confirmTitle"] = $this->translator->_g("Delete Galleries"); |
$GLOBALS["confirmMessage"] = $this->translator->_g("Are you sure you want to permanently delete %s galleries?",count($_REQUEST["sgGalleries"])); |
} |
$this->includeFile = "confirm"; |
} |
} elseif($_REQUEST["subaction"]==$this->translator->_g("Re-index")) { |
if(is_int($success = $this->reindexMultipleGalleries())) |
$this->pushMessage($this->translator->_g("Galleries re-indexed. %s total images added.", $success)); |
$this->includeFile = "view"; |
} |
break; |
case "multimove" : |
$this->selectGallery(); |
if($this->actionConfirmed()) { |
if(isset($_REQUEST["sgImages"])) { |
//$success = $this->moveMultipleImages(); |
//$this->adminMessage = $this->translator->_g("%s images moved.", $success); |
$success=true; |
$this->pushMessage("not yet implemented"); |
} else { |
$success = $this->moveMultipleGalleries(); |
$this->pushMessage($this->translator->_g("%s galleries moved.", $success)); |
} |
} |
$this->includeFile = "view"; |
break; |
case "newgallery" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"add")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} else |
$this->includeFile = "newgallery"; |
break; |
case "newimage" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"add")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} else |
$this->includeFile = "newimage"; |
break; |
case "newuser" : |
if(!$this->user->isAdmin()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->addUser()) |
$this->includeFile = "edituser"; |
else |
$this->includeFile = "manageusers"; |
break; |
case "purgecache" : |
if(!$this->user->isAdmin()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->actionConfirmed()) { |
if($this->purgeCache()) |
$this->pushMessage($this->translator->_g("Thumbnail cache purged")); |
$this->includeFile = "menu"; |
} elseif($this->actionCancelled()) { |
$this->includeFile = "menu"; |
} else { |
$dir = $this->getListing($this->config->pathto_cache,$this->config->recognised_extensions); |
$GLOBALS["confirmTitle"] = $this->translator->_g("purge cached thumbnails"); |
$GLOBALS["confirmMessage"] = $this->translator->_g("Are you sure you want to delete all %s cached thumbnails?",count($dir->files)); |
$this->includeFile = "confirm"; |
} |
break; |
case "reindex" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"edit")) |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
else { |
$imagesAdded = $this->reindexGallery(); |
if(is_int($imagesAdded)) |
$this->pushMessage($this->translator->_g("Gallery re-indexed. %s images added.",$imagesAdded)); |
} |
$this->includeFile = "view"; |
break; |
case "savegallery" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"edit")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->saveGallery()) { |
$this->includeFile = "view"; |
} else { |
$this->includeFile = "editgallery"; |
} |
break; |
case "saveimage" : |
$this->selectGallery(); |
if(!$this->checkPermissions($this->gallery,"edit")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->saveImage()) { |
$this->pushMessage($this->translator->_g("Image info saved")); |
$this->includeFile = "view"; |
} else { |
$this->includeFile = "view"; |
} |
break; |
case "savepass" : |
if($this->user->isGuest()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->savePass()) { |
$this->pushMessage($this->translator->_g("Password saved")); |
$this->includeFile = "menu"; |
} else { |
$this->includeFile = "editpass"; |
} |
break; |
case "savepermissions" : |
$this->selectGallery(); |
if(!$this->user->isAdmin() && !$this->user->isOwner($this->gallery)) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "view"; |
} elseif($this->savePermissions()) { |
$this->pushMessage($this->translator->_g("Permissions saved")); |
$this->includeFile = "view"; |
} else { |
$this->includeFile = "editpermissions"; |
} |
break; |
case "saveprofile" : |
if($_REQUEST["user"] != $this->user->username || $this->user->isGuest()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->saveUser()) { |
$this->pushMessage($this->translator->_g("User info saved")); |
$this->includeFile = "menu"; |
} else { |
$this->includeFile = "editprofile"; |
} |
break; |
case "saveuser" : |
if(!$this->user->isAdmin()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->saveUser()) |
$this->includeFile = "manageusers"; |
else |
$this->includeFile = "edituser"; |
break; |
case "showgalleryhits" : |
$this->selectGallery(); |
//load hit data for child galleries |
foreach(array_keys($this->gallery->galleries) as $index) |
$this->io->getHits($this->gallery->galleries[$index]); |
/*if(!$this->checkPermissions($this->gallery,"read")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else {*/ |
$this->includeFile = "galleryhits"; |
//} |
break; |
case "showimagehits" : |
$this->selectGallery(); |
/*if(!$this->checkPermissions($this->gallery,"read")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else {*/ |
$this->includeFile = "imagehits"; |
//} |
break; |
case "suspenduser" : |
if(!$this->user->isAdmin()) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} elseif($this->suspendUser()) |
$this->pushMessage($this->translator->_g("User info saved")); |
$this->includeFile = "manageusers"; |
break; |
case "view" : |
$this->selectGallery(); |
/*if(!$this->checkPermissions($this->gallery,"read")) { |
$this->pushMessage($this->translator->_g("You do not have permission to perform this operation.")); |
$this->includeFile = "menu"; |
} else*/ |
$this->includeFile = "view"; |
break; |
case "menu" : |
default : |
$this->includeFile = "menu"; |
} |
} |
function &allGalleriesArray() |
{ |
$root =& $this->io->getGallery(".", new stdClass, 100); |
return $this->allGalleriesRecurse($root); |
} |
function &allGalleriesRecurse(&$gal) |
{ |
if($gal->hasChildGalleries()) { |
$galArray = array(); |
foreach($gal->galleries as $child) |
$galArray = array_merge($galArray, $this->allGalleriesRecurse($child)); |
array_unshift($galArray, $gal); |
return $galArray; |
} else |
return array($gal); |
} |
/** |
* Returns a two-dimensional array of links for the admin bar. |
* |
* @returns string |
*/ |
function adminLinksArray() |
{ |
if(!$this->isLoggedIn()) return array(0 => array($this->translator->_g("admin bar|Back to galleries") => ".")); |
$ret[0][$this->translator->_g("admin bar|Admin")] = $this->formatAdminURL("menu"); |
$ret[0][$this->translator->_g("admin bar|Galleries")] = $this->formatAdminURL("view", isset($this->gallery) ? $this->gallery->idEncoded() : null); |
$ret[0][$this->translator->_g("admin bar|Log out")] = $this->formatAdminURL("logout"); |
if($this->isGalleryPage() || $this->isAlbumPage() || $this->isImagePage()) { |
$ret[1][$this->translator->_g("admin bar|Edit gallery")] = $this->formatAdminURL("editgallery",$this->gallery->idEncoded()); |
$ret[1][$this->translator->_g("admin bar|Access control")] = $this->formatAdminURL("editpermissions",$this->gallery->idEncoded()); |
$ret[1][$this->translator->_g("admin bar|Delete gallery")] = $this->formatAdminURL("deletegallery",$this->gallery->idEncoded()); |
$ret[1][$this->translator->_g("admin bar|New subgallery")] = $this->formatAdminURL("newgallery",$this->gallery->idEncoded()); |
$ret[1][$this->translator->_g("admin bar|Re-index gallery")] = $this->formatAdminURL("reindex",$this->gallery->idEncoded()); |
if($this->isImagePage()) { |
$ret[2][$this->translator->_g("admin bar|Edit image")] = $this->formatAdminURL("editimage",$this->gallery->idEncoded(),$this->image->id); |
$ret[2][$this->translator->_g("admin bar|Delete image")] = $this->formatAdminURL("deleteimage",$this->gallery->idEncoded(),$this->image->id); |
} |
$ret[2][$this->translator->_g("admin bar|New image")] = $this->formatAdminURL("newimage",$this->gallery->idEncoded()); |
} |
return $ret; |
} |
/** |
* Saves the new password if it is correctly specified. |
* |
* @return boolean true on success; false otherwise |
*/ |
function savePass() |
{ |
$users = $this->io->getUsers(); |
$found = false; |
for($i=0;$i < count($users);$i++) |
if($_POST["sgUsername"] == $users[$i]->username) { |
$found = true; |
if(md5($_POST["sgOldPass"]) == $users[$i]->userpass) |
if($_POST["sgNewPass1"]==$_POST["sgNewPass2"]) |
if(strlen($_POST["sgNewPass1"]) >= 6 && strlen($_POST["sgNewPass1"]) <= 16) { |
$users[$i]->userpass = md5($_POST["sgNewPass1"]); |
if($this->io->putUsers($users)) return true; |
else $this->pushError($this->translator->_g("Could not save user info")); |
} |
else |
$this->pushError($this->translator->_g("New password must be between 6 and 16 characters long.")); |
else |
$this->pushError($this->translator->_g("The new passwords you entered do not match.")); |
else |
$this->pushError($this->translator->_g("The current password you entered does not match the one in the database.")); |
} |
if(!$found) $this->pushError($this->translator->_g("The username specified was not found in the database.")); |
//some sort of error occurred so: |
return false; |
} |
/** |
* Attempts to log a registered user into admin. |
* |
* @return boolean true on success; false otherwise |
*/ |
function doLogin() |
{ |
if(!empty($_POST["sgUsername"]) && !empty($_POST["sgPassword"])) { |
if($this->loadUser($_POST["sgUsername"]) && md5($_POST["sgPassword"]) == $this->user->userpass){ |
if($this->user->permissions & SG_SUSPENDED) { |
$this->logout(); |
return $this->pushError($this->translator->_g("Your account has been suspended")); |
} else { |
$_SESSION["sgUser"]["username"] = $this->user->username; |
$_SESSION["sgUser"]["ip"] = $_SERVER["REMOTE_ADDR"]; |
$_SESSION["sgUser"]["loginTime"] = time(); |
return $this->pushMessage($this->translator->_g("Welcome to singapore admin!")); |
} |
} |
$this->logout(); |
return $this->pushError($this->translator->_g("Username and/or password incorrect")); |
} |
return $this->pushError($this->translator->_g("You must enter a username and password")); |
} |
/** |
* Cancels a user's admin session. |
* |
* @return true |
*/ |
function logout() |
{ |
$_SESSION["sgUser"] = null; |
return $this->pushMessage($this->translator->_g("Thank you and goodbye!")); |
} |
/** |
* Checks if the specified operation is permitted on the specified object |
* |
* @param sgImage|sgGallery the object to be operated on |
* @param string the action to perform (either 'read', 'edit', 'add' or 'delete') |
* @return bool true if permissions are satisfied; false otherwise |
*/ |
function checkPermissions($obj, $action, $gallery = null, $image = null) |
{ |
//admins and object owners automatically have full permissions |
if($this->user->isAdmin() || $this->user->isOwner($obj))// || (!$this->user->isGuest() && $obj->owner == "__nobody__")) |
return true; |
//get the appropriate permission bitmask depending on action |
switch($action) { |
case "read" : |
$inheritPerm = SG_IHR_READ; |
$worldPerm = SG_WLD_READ; |
$groupPerm = SG_GRP_READ; |
break; |
case "edit" : |
$inheritPerm = SG_IHR_EDIT; |
$worldPerm = SG_WLD_EDIT; |
$groupPerm = SG_GRP_EDIT; |
break; |
case "add" : |
$inheritPerm = SG_IHR_ADD; |
$worldPerm = SG_WLD_ADD; |
$groupPerm = SG_GRP_ADD; |
break; |
case "delete" : |
$inheritPerm = SG_IHR_DELETE; |
$worldPerm = SG_WLD_DELETE; |
$groupPerm = SG_GRP_DELETE; |
break; |
default : |
//unrecognised action so disallow it |
return false; |
} |
//check if the permission is inherited |
if(($obj->permissions & $inheritPerm) == $inheritPerm) |
if($obj->isRoot()) |
//shouldn't happen, but just in case |
return false; |
else |
//check permissions of parent |
return $this->checkPermissions($obj->parent, $action, $gallery, $image); |
else |
//not inherited so check world and group permissions of current object |
return $obj->permissions & $worldPerm |
|| ($this->isInGroup($this->user->groups, $obj->groups) && $obj->permissions & $groupPerm); |
} |
function savePermissions() |
{ |
$obj =& $this->gallery; |
$perms = 0; |
switch($_POST["sgRead"]) { |
case "inherit" : $perms |= SG_IHR_READ; break; |
case "group" : $perms |= SG_GRP_READ; break; |
case "world" : $perms |= SG_WLD_READ; break; |
case "owner" : break; |
} |
switch($_POST["sgEdit"]) { |
case "inherit" : $perms |= SG_IHR_EDIT; break; |
case "group" : $perms |= SG_GRP_EDIT; break; |
case "world" : $perms |= SG_WLD_EDIT; break; |
case "owner" : break; |
} |
switch($_POST["sgAdd"]) { |
case "inherit" : $perms |= SG_IHR_ADD; break; |
case "group" : $perms |= SG_GRP_ADD; break; |
case "world" : $perms |= SG_WLD_ADD; break; |
case "owner" : break; |
} |
switch($_POST["sgDelete"]) { |
case "inherit" : $perms |= SG_IHR_DELETE; break; |
case "group" : $perms |= SG_GRP_DELETE; break; |
case "world" : $perms |= SG_WLD_DELETE; break; |
case "owner" : break; |
} |
$obj->permissions |= $perms; // isn't this equivalent |
$obj->permissions &= $perms; // to == assignment? |
//only the owner or admin can change groups |
if($this->user->isAdmin() || $this->user->isOwner($obj)); |
$obj->groups = $_POST["sgGroups"]; |
//only the admin can change the owner |
if($this->user->isAdmin()) |
$obj->owner = $_POST["sgOwner"]; |
if($this->io->putGallery($this->gallery)) |
return $this->pushMessage($this->translator->_g("Gallery info saved")); |
return $this->pushError($this->translator->_g("Could not save gallery info")); |
} |
/** |
* Creates a new user. |
* |
* @return bool true on success; false otherwise |
*/ |
function addUser() |
{ |
$users = $this->io->getUsers(); |
foreach($users as $usr) |
if($usr->username == $_REQUEST["user"]) |
return $this->pushError($this->translator->_g("Username already exists")); |
if(!preg_match("/^[a-zA-Z0-9_]{3,}$/",$_REQUEST["user"])) |
return $this->pushError($this->translator->_g("Username must be at least 3 characters long and contain only alphanumeric characters")); |
$users[count($users)] = new sgUser($_REQUEST["user"], md5("password")); |
if($this->io->putUsers($users)) |
return $this->pushMessage($this->translator->_g("User info saved")); |
return $this->pushError($this->translator->_g("Could not save user info")); |
} |
/** |
* Deletes a user. |
* |
* @return bool true on success; false otherwise |
*/ |
function deleteUser($username = null) |
{ |
if($username == null) |
$username = $_REQUEST["user"]; |
if($username == "admin" || $username == "guest") |
return $this->pushError($this->translator->_g("Cannot delete built in accounts")); |
$users = $this->io->getUsers(); |
foreach($users as $i => $usr) |
if($usr->username == $username) { |
//delete user at offset $i from $users |
array_splice($users,$i,1); |
if($this->io->putUsers($users)) |
return true; |
return $this->pushError($this->translator->_g("Could not save user info")); |
} |
return $this->pushError($this->translator->_g("Username not recognised")); |
} |
/** |
* Saves a user's info. |
* |
* @return bool true on success; false otherwise |
*/ |
function saveUser() { |
$users = $this->io->getUsers(); |
for($i=0; $i<count($users); $i++) |
if($users[$i]->username == $_REQUEST["user"]) { |
$users[$i]->email = $this->prepareText($_REQUEST["sgEmail"]); |
$users[$i]->fullname = $this->prepareText($_REQUEST["sgFullname"]); |
$users[$i]->description = $this->prepareText($_REQUEST["sgDescription"]); |
if($this->user->isAdmin() && $_REQUEST["action"] == "saveuser") { |
$users[$i]->groups = $this->prepareText($_REQUEST["sgGroups"]); |
$users[$i]->permissions = ($_REQUEST["sgType"] == "admin") ? $users[$i]->permissions | SG_ADMIN : $users[$i]->permissions & ~SG_ADMIN; |
if(isset($_REQUEST["sgPassword"]) && $_REQUEST["sgPassword"] != "**********") |
$users[$i]->userpass = md5($_REQUEST["sgPassword"]); |
} |
if($this->io->putUsers($users)) |
return true; |
return $this->pushError($this->translator->_g("Could not save user info")); |
} |
return $this->pushError($this->translator->_g("Username not recognised")); |
} |
/** |
* Suspend or unsuspend a user's account. |
* |
* @return bool true on success; false otherwise |
*/ |
function suspendUser() { |
$users = $this->io->getUsers(); |
for($i=0; $i<count($users); $i++) |
if($users[$i]->username == $_REQUEST["user"]) { |
$users[$i]->permissions = ($users[$i]->permissions & SG_SUSPENDED) ? $users[$i]->permissions & ~SG_SUSPENDED : $users[$i]->permissions | SG_SUSPENDED; |
if($this->io->putUsers($users)) |
return true; |
return $this->pushError($this->translator->_g("Could not save user info")); |
} |
return $this->pushError($this->translator->_g("Username not recognised")); |
} |
/** |
* Check for images in specified gallery directory which are |
* not in the metadata and add them. If no gallery is specified, |
* the current gallery is used. |
* @param string id of gallery to reindex (optional) |
* @return int|false the number of images added or false on error |
*/ |
function reindexGallery($galleryId = null) |
{ |
if($galleryId == null) |
$gal =& $this->gallery; |
else |
$gal =& $this->io->getGallery($galleryId, new stdClass); |
$imagesAdded = 0; |
//get list of images |
$dir = Singapore::getListing($this->config->pathto_galleries.$gal->id, $this->config->recognised_extensions); |
//cycle through the image files |
for($i=0; $i<count($dir->files); $i++) { |
//search for the image file in the database images |
for($j=0; $j<count($gal->images); $j++) |
//if we find it |
if($dir->files[$i] == $gal->images[$j]->id) |
//skip the rest of this loop |
continue 2; |
//otherwise add the image to the database |
$gal->images[$j] = new sgImage($dir->files[$i], $gal, $this->config); |
$gal->images[$j]->name = $dir->files[$i]; |
list( |
$gal->images[$j]->width, |
$gal->images[$j]->height, |
$gal->images[$j]->type |
) = GetImageSize($this->config->pathto_galleries.$gal->id."/".$gal->images[$j]->id); |
$imagesAdded++; |
} |
if($this->io->putGallery($gal)) |
return $imagesAdded; |
return $this->pushError($this->translator->_g("Could not save gallery info")); |
} |
/** |
* Reindexes several galleries from the current gallery. |
* |
* @return int|false number of images added on success; false otherwise |
*/ |
function reindexMultipleGalleries() |
{ |
$totalImagesAdded = 0; |
foreach($_REQUEST["sgGalleries"] as $galleryId) { |
$current = $this->reindexGallery($galleryId); |
if($current === false) $this->pushError($this->translator->_g("Gallery '%s' could not be reindexed", $galleryId)); |
else $this->pushMessage($this->translator->_g("Gallery '%s' reindexed: %s images added", $galleryId, $current)); |
$totalImagesAdded += $current; |
} |
//reload gallery data if we changed any |
if($totalImagesAdded) |
$this->selectGallery(); |
return $totalImagesAdded; |
} |
/** |
* Moves or copies galleries. |
* |
* @return int|false number of galleries moved; false otherwise |
*/ |
function moveMultipleGalleries() |
{ |
$totalGalleriesMoved = 0; |
foreach($_REQUEST["sgGalleries"] as $galleryId) { |
$source = $this->config->base_path.$this->config->pathto_galleries.$galleryId; |
$target = $this->config->base_path.$this->config->pathto_galleries.$_REQUEST['sgMoveTarget'].'/'.basename($galleryId); |
if(file_exists($target)) { |
$this->pushError($this->translator->_g("Unable to copy/move gallery '%s' because the target gallery already exists.", $galleryId)); |
} elseif($this->isSubPath($source, $target, false)) { |
$this->pushError($this->translator->_g("Unable to copy/move gallery '%s' because the target is a child of the source.", $galleryId)); |
//} elseif(!is_writable($target)) { |
// $this->pushError($this->translator->_g("Unable to copy/move gallery '%s': the target is not writable", $galleryId)); |
} else { |
if($_REQUEST["sgMoveType"] == 'move') { //Move |
$current = rename($source, $target); |
} else { //Copy |
$current = $this->copyDir($source, $target); |
} |
if($current === false) $this->pushError($this->translator->_g("Unable to copy/move gallery '%s' because the operation failed.", $galleryId)); |
else $totalGalleriesMoved++; |
} |
} |
//load target gallery |
if($totalGalleriesMoved) |
$this->selectGallery($_REQUEST['sgMoveTarget']); |
return $totalGalleriesMoved; |
} |
/** |
* Copies everything from directory $fromDir to directory $toDir |
* and sets up files mode $chmod |
* @author Anton Makarenko <makarenkoa at ukrpost dot net> |
*/ |
function copyDir($fromDir, $toDir) |
{ |
$success = true; |
$handle = opendir($fromDir); |
//ensure target directory exists |
if(!file_exists($toDir)) |
if(mkdir($toDir)) |
chmod($toDir, octdec($this->config->directory_mode)); |
else |
return false; |
while(false !== ($item = readdir($handle))) |
if($item != '.' && $item != '..') { |
$from = $fromDir.'/'.$item; |
$to = $toDir.'/'.$item; |
if(is_dir($from)) { |
if($success &= mkdir($to)) |
chmod($to, octdec($this->config->directory_mode)); |
//recurse |
$this->copyDir($from, $to); |
} else { |
if($success &= copy($from, $to)) |
chmod($to, octdec($this->config->file_mode)); |
} |
} |
closedir($handle); |
return $success; |
} |
/** |
* Creates a gallery. |
* |
* @return boolean true on success; false otherwise |
*/ |
function addGallery() |
{ |
$newGalleryId = $this->gallery->id."/".$_REQUEST["newgallery"]; |
$path = $this->config->base_path.$this->config->pathto_galleries.$newGalleryId; |
//fail if directory already exists |
if(file_exists($path)) |
return $this->pushError($this->translator->_g("Gallery already exists.")); |
//create directory or fail |
if(!Singapore::mkdir($path)) |
return $this->pushError($this->translator->_g("Unable to create directory '%s'", $path)); |
//explicitly set permissions on gallery directory |
@chmod($path, octdec($this->config->directory_mode)); |
$gal =& new sgGallery($newGalleryId, $this->gallery); |
$gal->name = $_REQUEST["newgallery"]; |
//set object owner |
if(!$this->user->isGuest()) |
$gal->owner = $this->user->username; |
//save gallery metadata |
if($this->io->putGallery($gal)) |
return true; |
else |
return $this->pushError($this->translator->_g("Unable to save metadata.")); |
} |
function prepareText($text, $multiline = false) |
{ |
if($multiline) { |
$text = strip_tags($text, $this->config->allowed_tags); |
$text = str_replace(array("\n","\r"), array("<br />",""), $text); |
} else { |
$text = htmlspecialchars($text); |
} |
return $text; |
} |
/** |
* Saves gallery info to the database. |
* |
* @return boolean true on success; false otherwise |
*/ |
function saveGallery() |
{ |
$this->gallery->categories = $_REQUEST["sgCategories"]; |
$this->gallery->name = $this->prepareText($_REQUEST["sgGalleryName"]); |
$this->gallery->artist = $this->prepareText($_REQUEST["sgArtistName"]); |
$this->gallery->email = $this->prepareText($_REQUEST["sgArtistEmail"]); |
$this->gallery->date = $this->prepareText($_REQUEST["sgDate"]); |
$this->gallery->copyright = $this->prepareText($_REQUEST["sgCopyright"]); |
$this->gallery->summary = $this->prepareText($_REQUEST["sgSummary"],true); |
$this->gallery->desc = $this->prepareText($_REQUEST["sgGalleryDesc"],true); |
if($this->config->enable_clickable_urls) { |
//recognise URLs and htmlise them |
$this->gallery->desc = preg_replace('{(?<!href="|href=)\b('.SG_REGEXP_PROTOCOLURL.')\b(?!</a>)}', '<a href="$1">$1</a>', $this->gallery->desc); //general protocol match |
$this->gallery->desc = preg_replace('{(?<!://)\b('.SG_REGEXP_WWWURL.')\b(?!</a>)}', '<a href="http://$1">$1</a>', $this->gallery->desc); //web addresses starting www. without path info |
$this->gallery->desc = preg_replace('{(?<!mailto:|\.)\b('.SG_REGEXP_EMAILURL.')\b(?!</a>)}', '<a href="mailto:$1">$1</a>', $this->gallery->desc); //email addresses *@*.* |
} |
if($this->io->putGallery($this->gallery)) |
return true; |
else |
return $this->pushError($this->translator->_g("Could not save gallery info")); |
} |
/** |
* Deletes a gallery and everything contained within it. |
* |
* @return boolean true on success; false otherwise |
*/ |
function deleteGallery($galleryId = null) |
{ |
if($galleryId === null) |
$galleryId = $_REQUEST['gallery']; |
//calculate the path where the folder actually resides. |
$path = $this->config->base_path.$this->config->pathto_galleries.$galleryId; |
//security check: make sure requested file is in galleries directory |
if(!$this->isSubPath($this->config->base_path.$this->config->pathto_galleries,$path)) |
return $this->pushError($this->translator->_g("Requested item '%s' appears to be outside the galleries directory", $galleryId)); |
//check that the gallery to delete is not the top level directory |
if(realpath($path) == realpath($this->config->base_path.$this->config->pathto_galleries)) |
return $this->pushError($this->translator->_g("Cannot delete the root gallery.")); |
//attempt to remove the offending directory and all contained therein |
if($this->rmdir_all($path)) |
return $this->pushMessage($this->translator->_g("Gallery '%s' deleted.", $galleryId)); |
else |
return $this->pushError($this->translator->_g("Unable to delete gallery '%s'.", $galleryId)); |
} |
/** |
* Deletes several galleries from the current gallery. |
* |
* @return int number of galleries deleted |
*/ |
function deleteMultipleGalleries() { |
$totalGalleriesDeleted = 0; |
foreach($_REQUEST["sgGalleries"] as $galleryId) { |
$this->deleteGallery($galleryId); |
$totalGalleriesDeleted++; |
} |
//reload gallery data if we deleted any |
if($totalGalleriesDeleted) |
$this->selectGallery(); |
return $totalGalleriesDeleted; |
} |
/** |
* Saves changes to the gallery thumbnail to the database. |
* |
* @return boolean true on success; false otherwise |
*/ |
function saveGalleryThumbnail() |
{ |
$this->gallery->filename = $_REQUEST['sgThumbName']; |
if($this->io->putGallery($this->gallery)) |
$this->pushMessage($this->translator->_g("Thumbnail changed.")); |
else |
$this->pushError($this->translator->_g("Unable to save metadata.")); |
} |
/** |
* Adds an image to the database. |
* |
* @return boolean true on success; false otherwise |
*/ |
function addImage() |
{ |
if($_REQUEST["sgLocationChoice"] == "remote") { |
$image = $_REQUEST["sgImageURL"]; |
$path = $image; |
} elseif($_REQUEST["sgLocationChoice"] == "single") { |
//set filename as requested and strip off any clandestine path info |
if($_REQUEST["sgNameChoice"] == "same") $image = basename($_FILES["sgImageFile"]["name"]); |
else $image = basename($_REQUEST["sgFileName"]); |
//make sure image is valid |
if(!preg_match("/\.(".$this->config->recognised_extensions.")$/i", $image)) { |
$imgInfo = GetImageSize($_FILES["sgImageFile"]["tmp_name"]); |
switch($imgInfo[2]) { |
case 1 : $image .= '.gif'; break; |
case 2 : $image .= '.jpg'; break; |
case 3 : $image .= '.png'; break; |
case 6 : $image .= '.bmp'; break; |
case 7 : |
case 8 : $image .= '.tif'; break; |
default : |
return $this->pushError($this->translator->_g("Uploaded image '%s' has unrecognised extension and image type could not be determined from file contents.", $image)); |
} |
} |
$path = $this->config->base_path.$this->config->pathto_galleries.$this->gallery->id."/".$image; |
$srcImage = $image; |
if(file_exists($path)) |
switch($this->config->upload_overwrite) { |
case 1 : //overwrite |
$this->deleteImage($image); |
break; |
case 2 : //generate unique |
for($i=0;file_exists($path);$i++) { |
$pivot = strrpos($srcImage,"."); |
$image = substr($srcImage, 0, $pivot).'-'.$i.substr($srcImage, $pivot,strlen($srcImage)-$pivot); |
$path = $this->config->base_path.$this->config->pathto_galleries.$this->gallery->id."/".$image; |
} |
break; |
case 0 : //raise error |
default : |
return $this->pushError($this->translator->_g("File already exists.")); |
} |
if(!move_uploaded_file($_FILES["sgImageFile"]["tmp_name"],$path)) |
return $this->pushError($this->translator->_g("Could not upload file.")); |
// try to change file-permissions |
@chmod($path, octdec($this->config->file_mode)); |
} |
$img =& new sgImage($image, $this->gallery); |
$img->name = strtr(substr($image, strrpos($image,"/"), strrpos($image,".")-strlen($image)), "_", " "); |
list($img->width, $img->height, $img->type) = GetImageSize($path); |
//leave owner of guest-uploaded files as default '__nobody__' |
if(!$this->user->isGuest()) |
$img->owner = $this->user->username; |
$this->gallery->images[] =& $img; |
//set as gallery thumbnail? |
if($this->gallery->imageCount()==1) |
$this->gallery->filename = $img->id; |
if($this->io->putGallery($this->gallery)) { |
$this->selectImage($image); |
return $this->pushMessage($this->translator->_g("Image added", $image)); |
} else { |
@unlink($path); |
return $this->pushError($this->translator->_g("Unable to save metadata.")); |
} |
} |
/** |
* Adds the contents of an uploaded archive to the database. |
* |
* @return boolean true on success; false otherwise |
*/ |
function addMultipleImages() |
{ |
//find system temp directory |
if(!($systmpdir = $this->findTempDirectory())) |
return $this->pushError($this->translator->_g("Unable to find temporary storage space.")); |
//create new temp directory in system temp dir but stop after 100 attempts |
while(!Singapore::mkdir($tmpdir = $systmpdir."/".uniqid("sg")) && $tries++<100); |
$archive = $_FILES["sgArchiveFile"]["tmp_name"]; |
if(!is_uploaded_file($archive)) |
return $this->pushError($this->translator->_g("Could not upload file.")); |
//decompress archive to temp |
$cmd = escapeshellcmd($this->config->pathto_unzip); |
$cmd .= ' -d "'.escapeshellcmd(realpath($tmpdir)); |
$cmd .= '" "'.escapeshellcmd(realpath($archive)).'"'; |
if(!exec($cmd)) |
return $this->pushError($this->translator->_g("Could not decompress archive.")); |
//start processing archive contents |
$wd = $tmpdir; |
$contents = $this->getListing($wd,$this->config->recognised_extensions); |
//cope with archives contained within a directory |
if(empty($contents->files) && count($contents->dirs) == 1) |
$contents = $this->getListing($wd .= '/'.$contents->dirs[0],$this->config->recognised_extensions); |
$success = true; |
//add any images to current gallery |
foreach($contents->files as $image) { |
//check image is valid and ignore it if it isn't |
if(!preg_match("/\.(".$this->config->recognised_extensions.")$/i", $image)) { |
$imgInfo = GetImageSize($wd.'/'.$image); |
switch($imgInfo[2]) { |
case 1 : $image .= '.gif'; break; |
case 2 : $image .= '.jpg'; break; |
case 3 : $image .= '.png'; break; |
case 6 : $image .= '.bmp'; break; |
case 7 : |
case 8 : $image .= '.tif'; break; |
default : |
$this->pushMessage($this->translator->_g("Uploaded image '%s' has unrecognised extension and image type could not be determined from file contents.", $image)); |
continue; |
} |
} |
$path = $this->config->pathto_galleries.$this->gallery->id."/".$image; |
$srcImage = $image; |
if(file_exists($path)) |
switch($this->config->upload_overwrite) { |
case 1 : //overwrite |
$this->deleteImage($image); |
break; |
case 2 : //generate unique |
for($i=0;file_exists($path);$i++) { |
$pivot = strrpos($srcImage,"."); |
$image = substr($srcImage, 0, $pivot).'-'.$i.substr($srcImage, $pivot,strlen($srcImage)-$pivot); |
$path = $this->config->base_path.$this->config->pathto_galleries.$this->gallery->id."/".$image; |
} |
break; |
case 0 : //raise error |
default : |
$this->pushError($this->translator->_g("File '%s' already exists.")); |
$success = false; |
continue; |
} |
copy($wd.'/'.$srcImage,$path); |
// try to change file-permissions |
@chmod($path, octdec($this->config->file_mode)); |
$img =& new sgImage($image, $this->gallery); |
$img->name = strtr(substr($image, strrpos($image,"/"), strrpos($image,".")-strlen($image)), "_", " "); |
list($img->width, $img->height, $img->type) = GetImageSize($path); |
//leave owner of guest-uploaded files as default '__nobody__' |
if(!$this->user->isGuest()) |
$img->owner = $this->user->username; |
$this->gallery->images[] = $img; |
} |
//add any directories as subgalleries, if allowed |
if($this->config->allow_dir_upload == 1 && !$this->user->isGuest() |
|| $this->config->allow_dir_upload == 2 && $this->user->isAdmin()) |
foreach($contents->dirs as $gallery) { |
$path = $this->config->pathto_galleries.$this->gallery->id."/".$gallery; |
if(file_exists($path)) |
switch($this->config->upload_overwrite) { |
case 1 : //overwrite |
$this->deleteGallery($this->gallery->id.'/'.$gallery); |
break; |
case 2 : //generate unique |
for($i=0;file_exists($path);$i++) |
$path = $this->config->pathto_galleries.$this->gallery->id."/".$gallery.'-'.$i; |
break; |
case 0 : //raise error |
default : |
$this->pushError($this->translator->_g("File '%s' already exists.")); |
$success = false; |
continue; |
} |
//move from temp dir to gallery |
rename($wd.'/'.$gallery, $path); |
//change directory permissions (but not contents) |
@chmod($path, octdec($this->config->directory_mode)); |
} |
//if images were added save metadata |
if(!empty($contents->files)) |
$this->io->putGallery($this->gallery) |
or $this->pushError($this->translator->_g("Unable to save metadata.")); |
//if subgalleries were added reload gallery data |
if(!empty($contents->dirs)) |
$this->selectGallery(); |
//remove temporary directory |
$this->rmdir_all($tmpdir); |
if($success) |
return $this->pushMessage($this->translator->_g("Archive contents added.")); |
else |
return $this->pushError($this->translator->_g("Some archive contents could not be added.")); |
} |
/** |
* Saves image info to the database. |
* |
* @return boolean true on success; false otherwise |
*/ |
function saveImage() |
{ |
$this->image->id = $this->prepareText($_REQUEST['image']); |
$this->image->thumbnail = $this->prepareText($_REQUEST["sgThumbnail"]); |
$this->image->categories = $this->prepareText($_REQUEST["sgCategories"]); |
$this->image->name = $this->prepareText($_REQUEST["sgImageName"]); |
$this->image->artist = $this->prepareText($_REQUEST["sgArtistName"]); |
$this->image->email = $this->prepareText($_REQUEST["sgArtistEmail"]); |
$this->image->location = $this->prepareText($_REQUEST["sgLocation"]); |
$this->image->date = $this->prepareText($_REQUEST["sgDate"]); |
$this->image->copyright = $this->prepareText($_REQUEST["sgCopyright"]); |
$this->image->desc = $this->prepareText($_REQUEST["sgImageDesc"],true); |
$this->image->camera = $this->prepareText($_REQUEST["sgField01"]); |
$this->image->lens = $this->prepareText($_REQUEST["sgField02"]); |
$this->image->film = $this->prepareText($_REQUEST["sgField03"]); |
$this->image->darkroom = $this->prepareText($_REQUEST["sgField04"]); |
$this->image->digital = $this->prepareText($_REQUEST["sgField05"]); |
if($this->io->putGallery($this->gallery)) |
return true; |
else |
return $this->pushError($this->translator->_g("Unable to save metadata.")); |
} |
/** |
* Deletes an image from the current gallery. |
* |
* @param string the filename of the image to delete (optional) |
* @return boolean true on success; false otherwise |
*/ |
function deleteImage($image = null) |
{ |
if($image === null) |
$image = $this->image->id; |
//if file is remote or doesn't exist then there's no point trying to delete it |
if(!sgImage::isRemote($image) && file_exists($this->config->pathto_galleries.$this->gallery->id."/".$image)) |
//check that we're not being fooled into deleting something we shouldn't |
if(!$this->isSubPath($this->config->pathto_galleries, $this->config->pathto_galleries.$this->gallery->id."/".$image)) |
return $this->pushError($this->translator->_g("Requested item '%s' appears to be outside the galleries directory.", htmlspecialchars($image))); |
else |
unlink($this->config->pathto_galleries.$this->gallery->id."/".$image); |
//remove the image from the images array |
foreach($this->gallery->images as $i => $img) |
if($img->id == $image) { |
array_splice($this->gallery->images,$i,1); |
//image removed from array so save metadata |
if($this->io->putGallery($this->gallery)) { |
//nulling image reference will select parent gallery |
$this->image = null; |
return $this->pushMessage($this->translator->_g("Image '%s' deleted", htmlspecialchars($image))); |
} else { |
return $this->pushError($this->translator->_g("Unable to save metadata.")); |
} |
} |
//image not found in array |
return $this->pushError($this->translator->_g("Image not found '%s'", htmlspecialchars($image))); |
} |
/** |
* Deletes several images from the current gallery. |
* |
* @return int|false number of images deleted on success; false otherwise |
*/ |
function deleteMultipleImages() { |
$deleted = 0; |
foreach($_REQUEST["sgImages"] as $image) |
if($this->deleteImage($image)) |
$deleted++; |
return $deleted; |
} |
/** |
* Deletes the contents of the cache directory. |
* |
* @return boolean true on success; false otherwise |
*/ |
function purgeCache() |
{ |
$dir = $this->getListing($this->config->pathto_cache, $this->config->recognised_extensions); |
$success = true; |
for($i=0;$i<count($dir->files);$i++) { |
$success &= unlink($dir->path.$dir->files[$i]); |
} |
return $success; |
} |
} |
?> |
/photogallery/includes/config.class.php |
---|
0,0 → 1,57 |
<?php |
/** |
* Config class. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: config.class.php,v 1.8 2005/11/30 23:02:18 tamlyn Exp $ |
*/ |
/** |
* Reads configuration data from data/singapore.ini and stores the values |
* as properties of itself. |
* |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
*/ |
class sgConfig |
{ |
/** |
* Implements the Singleton design pattern by always returning a reference |
* to the same sgConfig object. Use instead of 'new'. |
*/ |
function &getInstance() |
{ |
static $instance; |
if(!is_object($instance)) |
//note that the new config object is NOT assigned by reference as |
//references are not stored in static variables (don't ask me...) |
$instance = new sgConfig(); |
return $instance; |
} |
/** |
* Parses an ini file for configuration directives and imports the values |
* into the current object overwriting any previous values. |
* @param string relative or absolute path to the ini file to load |
* @return boolean true on success; false otherwise |
*/ |
function loadConfig($configFilePath) |
{ |
if(!file_exists($configFilePath)) return false; |
//get values from ini file |
$ini_values = parse_ini_file($configFilePath); |
//import values into object scope |
foreach($ini_values as $key => $value) $this->$key = $value; |
return true; |
} |
} |
?> |
/photogallery/includes/gallery.class.php |
---|
0,0 → 1,320 |
<?php |
/** |
* Gallery class. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: gallery.class.php,v 1.19 2006/09/12 11:53:18 thepavian Exp $ |
*/ |
//include the base class |
require_once dirname(__FILE__)."/item.class.php"; |
/** |
* Data-only class used to store gallery data. |
* |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003-2005 Tamlyn Rhodes |
*/ |
class sgGallery extends sgItem |
{ |
/** |
* Filename of the image used to represent this gallery. |
* Special values: |
* - __none__ no thumbnail is displayed |
* - __random__ a random image is chosen every time |
* @var string |
*/ |
var $filename = "__none__"; |
/** |
* Short multiline summary of gallery contents |
* @var string |
*/ |
var $summary = ""; |
/** |
* Array of {@link sgImage} objects |
* @var array |
*/ |
var $images = array(); |
/** |
* Array of {@link sgGallery} objects |
* @var array |
*/ |
var $galleries = array(); |
/** |
* Constructor |
* @param string gallery id |
* @param sgGallery reference to the parent gallery |
*/ |
function sgGallery($id, &$parent) |
{ |
$this->id = $id; |
$this->parent =& $parent; |
$this->config =& sgConfig::getInstance(); |
$this->translator =& Translator::getInstance(); |
} |
/** @return bool true if this is a non-album gallery; false otherwise */ |
function isGallery() { return $this->hasChildGalleries(); } |
/** @return bool true if this is an album; false otherwise */ |
function isAlbum() { return !$this->isGallery(); } |
/** @return bool true if this is the root gallery; false otherwise */ |
function isRoot() { return $this->id == "."; } |
/** @return bool true if this gallery has child galleries; false otherwise */ |
function hasChildGalleries() { return $this->galleryCount() != 0; } |
/** @return bool true if this gallery contains one or more images; false otherwise */ |
function hasImages() { return $this->imageCount() != 0; } |
function imageCount() { return count($this->images); } |
function galleryCount() { return count($this->galleries); } |
function imageCountText() { return $this->translator->_ng("%s image", "%s images", $this->imageCount()); } |
function galleryCountText() { return $this->translator->_ng("%s gallery", "%s galleries", $this->galleryCount()); } |
/** |
* Caches returned value for use with repeat requests |
* @return string the rawurlencoded version of the gallery id |
*/ |
function idEncoded() |
{ |
return isset($this->idEncoded) ? $this->idEncoded : $this->idEncoded = $this->encodeId($this->id); |
} |
/** |
* rawurlencode() supplied string but preserve / character for cosmetic reasons. |
* @param string id to encode |
* @return string encoded id |
* @static |
*/ |
function encodeId($id) |
{ |
$in = explode("/",$id); |
$out = array(); |
for($i=1;$i<count($in);$i++) |
$out[$i-1] = rawurlencode($in[$i]); |
return $out ? implode("/",$out) : "."; |
} |
function nameForce() |
{ |
if($this->name) |
return $this->name; |
elseif($this->isRoot()) |
return $this->config->gallery_name; |
else |
return substr($this->id, strrpos($this->id,'/')+1); |
} |
/** |
* If the gallery is an album then it returns the number of |
* images contained otherwise the number of sub-galleries is returned |
* @return string the contents of the specified gallery |
*/ |
function itemCountText() |
{ |
if($this->isAlbum()) |
return $this->imageCountText(); |
else |
return $this->galleryCountText(); |
} |
/** |
* If the gallery is an album then it returns the number of |
* images contained otherwise the number of sub-galleries is returned |
* @return int the contents of the specified gallery |
*/ |
function itemCount() |
{ |
if($this->isAlbum()) |
return $this->imageCount(); |
else |
return $this->galleryCount(); |
} |
/** |
* @return int number of galleries in current view |
*/ |
function galleryCountSelected() |
{ |
return min($this->galleryCount() - $this->startat, $this->config->thumb_number_gallery); |
} |
/** |
* @return int number of image in current view |
*/ |
function imageCountSelected() |
{ |
return min($this->imageCount() - $this->startat, $this->config->thumb_number_album); |
} |
/** |
* @return string the absolute, canonical system path to the image |
*/ |
function realPath() |
{ |
return realpath($this->config->base_path.$this->config->pathto_galleries.$this->id); |
} |
function thumbnailURL($type = "gallery") |
{ |
$thumb = $this->thumbnail($type); |
return $thumb->URL(); |
} |
function thumbnailHTML($class = "sgThumbGallery", $type = "gallery") |
{ |
$thumb = $this->thumbnail($type); |
if($thumb == null) { |
$ret = nl2br($this->translator->_g("No\nthumbnail")); |
} else { |
$ret = '<img src="'.$thumb->URL().'" '; |
$ret .= 'class="'.$class.'" '; |
$ret .= 'width="'.$thumb->width().'" height="'.$thumb->height().'" '; |
$ret .= 'alt="'.$this->translator->_g("Sample image from gallery").'" />'; |
} |
return $ret; |
} |
function thumbnailLink($class = "sgThumbGallery", $type = "gallery") |
{ |
return '<a href="'.$this->URL().'">'.$this->thumbnailHTML($class, $type).'</a>'; |
} |
/** |
* Removes script-generated HTML (BRs and URLs) but leaves any other HTML |
* @return string the summary of the gallery |
*/ |
function summaryStripped() |
{ |
return str_replace("<br />","\n",$this->summary()); |
} |
function hasPrev() |
{ |
return (bool) $this->index(); |
} |
function hasNext() |
{ |
$index = $this->index(); |
return $index !== false && $index < $this->parent->galleryCount()-1; |
} |
function &prevGallery() |
{ |
$tmp =& new sgGallery($this->parent->id.'/'.$this->parent->galleries[$this->index()-1], $this->parent); |
return $tmp; |
} |
function &nextGallery() |
{ |
$tmp =& new sgGallery($this->parent->id.'/'.$this->parent->galleries[$this->index()+1], $this->parent); |
return $tmp; |
} |
function prevURL($action = null) |
{ |
$tmp =& $this->prevGallery(); |
return $tmp->URL(null, $action); |
} |
function nextURL($action = null) |
{ |
$tmp =& $this->nextGallery(); |
return $tmp->URL(null, $action); |
} |
function prevLink($action = null) |
{ |
return '<a href="'.$this->prevURL($action).'">'.$this->prevText().'</a>'; |
} |
function nextLink($action = null) |
{ |
return '<a href="'.$this->nextURL($action).'">'.$this->nextText().'</a>'; |
} |
function prevText() |
{ |
return $this->translator->_g("gallery|Previous"); |
} |
function nextText() |
{ |
return $this->translator->_g("gallery|Next"); |
} |
/** |
* finds position of current gallery in parent array |
*/ |
function index() |
{ |
if(!$this->isRoot()) |
foreach($this->parent->galleries as $key => $galleryId) |
if(basename($this->id) == $galleryId) |
return $key; |
return false; |
} |
/** Accessor methods */ |
function summary() { return $this->summary; } |
/** Private methods */ |
function thumbnail($type) |
{ |
//only create thumbnail if it doesn't already exist |
if(!isset($this->thumbnails[$type])) { |
if($this->filename == "__none__" || $this->imageCount() == 0) |
return; |
elseif($this->filename == "__random__") { |
srand(time()); //seed random number generator and select random image |
$img =& $this->images[rand(0,count($this->images)-1)]; |
} else |
$img =& $this->findImage($this->filename); |
//create thumbnail |
$this->thumbnails[$type] =& new sgThumbnail($img, $type); |
} |
return $this->thumbnails[$type]; |
} |
/** |
* Finds an image from the current gallery |
* @param mixed either the filename of the image to select or the integer |
* index of its position in the images array |
* @return sgImage the image found |
*/ |
function &findImage($image) |
{ |
if(is_string($image)) |
foreach($this->images as $index => $img) |
if($img->id == $image) |
return $this->images[$index]; |
elseif(is_int($image) && $image >= 0 && $image < $this->imageCount()) |
return $this->images[$image]; |
return null; |
} |
} |
?> |
/photogallery/includes/image.class.php |
---|
0,0 → 1,339 |
<?php |
/** |
* Image class. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: image.class.php,v 1.22 2006/08/06 13:50:20 thepavian Exp $ |
*/ |
//include the base class |
require_once dirname(__FILE__)."/item.class.php"; |
/** |
* Data-only class used to store image data. |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003-2005 Tamlyn Rhodes |
*/ |
class sgImage extends sgItem |
{ |
/** |
* Width in pixels of the image |
* @var int |
*/ |
var $width = 0; |
/** |
* Height in pixels of the image |
* @var int |
*/ |
var $height = 0; |
/** |
* Image file format flag as returned by GetImageSize() |
* @var int |
*/ |
var $type; |
/** |
* Configurable field |
*/ |
var $camera = ""; |
var $lens = ""; |
var $film = ""; |
var $darkroom = ""; |
var $digital = ""; |
/** |
* Constructor |
* @param string image id |
* @param sgGallery reference to the parent gallery |
*/ |
function sgImage($id, &$parent) |
{ |
$this->id = $id; |
$this->parent =& $parent; |
$this->config =& sgConfig::getInstance(); |
$this->translator =& Translator::getInstance(); |
} |
/** |
* Over-rides the method in the item class |
* @return true returns true |
*/ |
function isImage() { return true; } |
/** |
* @return bool true if image height is greater than width |
*/ |
function isPortrait() |
{ |
return $this->width()/$this->height() > 1; |
} |
/** |
* @return bool true if image height is greater than width |
*/ |
function isLandscape() |
{ |
return $this->width()/$this->height() < 1; |
} |
function hasPrev() |
{ |
return (bool) $this->index(); |
} |
function hasNext() |
{ |
$index = $this->index(); |
return $index !== false && $index < $this->parent->imageCount()-1; |
} |
function &firstImage() |
{ |
return $this->parent->images[0]; |
} |
function &prevImage() |
{ |
return $this->parent->images[$this->index()-1]; |
} |
function &nextImage() |
{ |
return $this->parent->images[$this->index()+1]; |
} |
function &lastImage() |
{ |
return $this->parent->images[count($this->parent->images)-1]; |
} |
function firstLink($action = null) |
{ |
if(!$this->hasPrev()) |
return ""; |
$tmp =& $this->firstImage(); |
return '<a href="'.$tmp->URL(null, $action).'">'.$this->firstText().'</a>'; |
} |
function prevLink($action = null) |
{ |
if(!$this->hasPrev()) |
return ""; |
return '<a href="'.$this->prevURL($action).'">'.$this->prevText().'</a>'; |
} |
function nextLink($action = null) |
{ |
if(!$this->hasNext()) |
return ""; |
return '<a href="'.$this->nextURL($action).'">'.$this->nextText().'</a>'; |
} |
function lastLink($action = null) |
{ |
if(!$this->hasNext()) |
return ""; |
$tmp =& $this->lastImage(); |
return '<a href="'.$tmp->URL(null, $action).'">'.$this->lastText().'</a>'; |
} |
function prevURL($action = null) |
{ |
$tmp =& $this->prevImage(); |
return $tmp->URL(null, $action); |
} |
function nextURL($action = null) |
{ |
$tmp =& $this->nextImage(); |
return $tmp->URL(null, $action); |
} |
function firstText() { return $this->translator->_g("image|First"); } |
function prevText() { return $this->translator->_g("image|Previous"); } |
function nextText() { return $this->translator->_g("image|Next"); } |
function lastText() { return $this->translator->_g("image|Last"); } |
function parentText() { return $this->translator->_g("image|Thumbnails"); } |
function imageURL() |
{ |
if($this->config->full_image_resize) { |
$img = $this->thumbnail("image"); |
return $img->URL(); |
} else |
return $this->realURL(); |
} |
function realURL() |
{ |
if($this->isRemote()) |
return $this->id; |
else |
return $this->config->base_url.$this->config->pathto_galleries.$this->parent->idEncoded()."/".$this->idEncoded(); |
} |
function imageHTML($class = "sgImage") |
{ |
$ret = "<img src=\"".$this->imageURL().'" '; |
$ret .= 'class="'.$class.'" '; |
$ret .= 'width="'.$this->width().'" height="'.$this->height().'" '; |
if($this->config->imagemap_navigation) $ret .= 'usemap="#sgNavMap" border="0" '; |
$ret .= 'alt="'.$this->name().$this->byArtistText().'" />'; |
return $ret; |
} |
function thumbnailURL($type = "album") |
{ |
$thumb = $this->thumbnail($type); |
return $thumb->URL(); |
} |
function thumbnailHTML($class = "sgThumbnailAlbum", $type = "album") |
{ |
$thumb = $this->thumbnail($type); |
$ret = "<img src=\"".$thumb->URL().'" '; |
$ret .= 'class="'.$class.'" '; |
$ret .= 'width="'.$thumb->width().'" height="'.$thumb->height().'" '; |
$ret .= 'alt="'.$this->name().$this->byArtistText().'" />'; |
return $ret; |
} |
function thumbnailLink($class = "sgThumbnailAlbum", $type = "album") |
{ |
return '<a href="'.$this->URL().'">'.$this->thumbnailHTML($class, $type).'</a>'; |
} |
function thumbnailPopupLink($class = "sgThumbnailAlbum", $type = "album") |
{ |
$ret = '<a href="'.$this->URL().'" onclick="'; |
$ret .= "window.open('".$this->imageURL()."','','toolbar=0,resizable=1,"; |
$ret .= "width=".($this->width()+20).","; |
$ret .= "height=".($this->height()+20)."');"; |
$ret .= "return false;\">".$this->thumbnailHTML($class, $type)."</a>"; |
return $ret; |
} |
function nameForce() |
{ |
if($this->name) |
return $this->name; |
elseif($this->isRemote()) |
return substr($this->id, strrpos($this->id,'/') + 1, strrpos($this->id,'.') - strrpos($this->id,'/') - 1); |
else |
return substr($this->id, 0, strrpos($this->id,'.')); |
} |
/** |
* checks if image is remote (filename starts with 'http://') |
*/ |
function isRemote($image = null) |
{ |
if($image == null) $image = $this->id; |
return substr($image, 0, 7) == "http://"; |
} |
/** |
* @return string the absolute, canonical system path to the image |
*/ |
function realPath() |
{ |
if($this->isRemote()) |
return $this->id; |
else |
return realpath($this->config->base_path.$this->config->pathto_galleries.$this->parent->id."/".$this->id); |
} |
/** |
* @return string the rawurlencoded version of the image id |
*/ |
function idEncoded() |
{ |
return rawurlencode($this->id); |
} |
function width() |
{ |
if($this->config->full_image_resize) { |
$img = $this->thumbnail("image"); |
return $img->width(); |
} else |
return $this->realWidth(); |
} |
function height() |
{ |
if($this->config->full_image_resize) { |
$img = $this->thumbnail("image"); |
return $img->height(); |
} else |
return $this->realHeight(); |
} |
/** |
* finds position of current image in parent array |
*/ |
function index() |
{ |
foreach($this->parent->images as $key => $img) |
if($this->id == $img->id) |
return $key; |
return false; |
} |
function realWidth() |
{ |
//try to load image dimensions if not already loaded |
if($this->width == 0) { |
$size = @GetImageSize($this->realPath()); |
if($size) |
list($this->width, $this->height, $this->type) = $size; |
else |
return $this->config->thumb_width_image; |
} |
return $this->width; |
} |
function realHeight() |
{ |
//try to load image dimensions if not already loaded |
if($this->height == 0) { |
$size = @GetImageSize($this->realPath()); |
if($size) |
list($this->width, $this->height, $this->type) = $size; |
else |
return $this->config->thumb_height_image; |
} |
return $this->height; |
} |
/** Accessor methods */ |
function type() { return $this->type; } |
/* Private methods */ |
function &thumbnail($type) |
{ |
//only create thumbnail if it doesn't already exist |
if(!isset($this->thumbnails[$type])) |
$this->thumbnails[$type] =& new sgThumbnail($this, $type); |
return $this->thumbnails[$type]; |
} |
} |
?> |
/photogallery/includes/index.php |
---|
0,0 → 1,0 |
<?php header("Location: ../") ?> |
/photogallery/includes/io.class.php |
---|
0,0 → 1,174 |
<?php |
/** |
* IO class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: io.class.php,v 1.11 2005/12/04 04:39:46 tamlyn Exp $ |
*/ |
/** |
* Abstract superclass of all IO classes. Also implements iifn code. |
* @package singapore |
* @abstract |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
*/ |
class sgIO |
{ |
/** |
* Reference to a {@link sgConfig} object representing the current |
* script configuration |
* @var sgConfig |
*/ |
var $config; |
/** |
* Constructor. Can be over-ridden by subclass but does not need to be. |
* @param sgConfig pointer to current script configuration object |
*/ |
function sgIO() |
{ |
$this->config =& sgConfig::getInstance(); |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function getName() |
{ |
return "undefined"; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function getVersion() |
{ |
return "undefined"; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function getAuthor() |
{ |
return "undefined"; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function getDescription() |
{ |
return "undefined"; |
} |
/** |
* Fetches gallery info for the specified gallery (and immediate children). |
* @param string gallery id |
* @param sgItem reference to parent gallery |
* @param int number of levels of child galleries to fetch (optional) |
* @param string language code spec for this request (optional, ignored) |
*/ |
function &getGallery($galleryId, &$parent, $getChildGalleries = 1, $language = null) |
{ |
$gal =& new sgGallery($galleryId, $parent); |
if(file_exists($this->config->base_path.$this->config->pathto_galleries.$galleryId)) { |
$bits = explode("/",$gal->id); |
$temp = strtr($bits[count($bits)-1], "_", " "); |
if($temp == ".") |
$gal->name = $this->config->gallery_name; |
elseif($this->config->enable_iifn && strpos($temp, " - ")) |
list($gal->artist,$gal->name) = explode(" - ", $temp); |
else |
$gal->name = $temp; |
$dir = Singapore::getListing($this->config->base_path.$this->config->pathto_galleries.$gal->id."/", $this->config->recognised_extensions); |
//set gallery thumbnail to first image in gallery (if any) |
if(isset($dir->files[0])) $gal->filename = $dir->files[0]; |
for($i=0; $i<count($dir->files); $i++) |
//always get the first image for the gallery thumbnail |
//but only get the rest if child galleries are requested |
if($getChildGalleries || $i==0) { |
$gal->images[$i] =& new sgImage($dir->files[$i], $gal); |
//trim off file extension and replace underscores with spaces |
$temp = strtr(substr($gal->images[$i]->id, 0, strrpos($gal->images[$i]->id,".")-strlen($gal->images[$i]->id)), "_", " "); |
//split string in two on " - " delimiter |
if($this->config->enable_iifn && strpos($temp, " - ")) |
list($gal->images[$i]->artist,$gal->images[$i]->name) = explode(" - ", $temp); |
else |
$gal->images[$i]->name = $temp; |
//get image size and type |
list( |
$gal->images[$i]->width, |
$gal->images[$i]->height, |
$gal->images[$i]->type |
) = @GetImageSize($this->config->base_path.$this->config->pathto_galleries.$gal->id."/".$gal->images[$i]->id); |
//set parent link |
$gal->images[$i]->parent =& $gal; |
} else |
//otherwise just create an empty array of the appropriate length |
$gal->images[$i] = $dir->files[$i]; |
} else { |
//selected gallery does not exist |
return null; |
} |
//discover child galleries |
if($getChildGalleries) |
//but only fetch their info if required too |
foreach($dir->dirs as $gallery) |
$gal->galleries[] =& $this->getGallery($galleryId."/".$gallery, $gal, $getChildGalleries-1, $language); |
else |
//otherwise just copy their names in so they can be counted |
$gal->galleries = $dir->dirs; |
return $gal; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function putGallery($gal) { |
return false; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function getHits($gal) { |
return false; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function putHits($gal) { |
return false; |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function getUsers() { |
return array(); |
} |
/** |
* Pseudo-abstract method to be over-ridden in subclasses. |
*/ |
function putUsers($users) { |
return false; |
} |
} |
?> |
/photogallery/includes/io_csv.class.php |
---|
0,0 → 1,325 |
<?php |
/** |
* IO class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: io_csv.class.php,v 1.34 2006/06/25 00:13:56 tamlyn Exp $ |
*/ |
//include the base IO class |
require_once dirname(__FILE__)."/io.class.php"; |
/** |
* Class used to read and write data to and from CSV files. |
* @see sgIO_iifn |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
*/ |
class sgIO_csv extends sgIO |
{ |
//constructor provided by parent class |
/** |
* Name of IO backend. |
*/ |
function getName() |
{ |
return "CSV"; |
} |
/** |
* Version of IO backend. |
*/ |
function getVersion() |
{ |
return "$Revision: 1.34 $"; |
} |
/** |
* Author of IO backend. |
*/ |
function getAuthor() |
{ |
return "Tamlyn Rhodes"; |
} |
/** |
* Brief description of IO backend and it's requirements. |
*/ |
function getDescription() |
{ |
return "Uses comma separated value files. Does not require a database."; |
} |
/** |
* Fetches gallery info for the specified gallery and immediate children. |
* @param string gallery id |
* @param string language code spec for this request (optional) |
* @param int number of levels of child galleries to fetch (optional) |
* @return sgGallery the gallery object created |
*/ |
function &getGallery($galleryId, &$parent, $getChildGalleries = 1, $language = null) |
{ |
$gal =& new sgGallery($galleryId, $parent); |
if($language == null) { |
$translator =& Translator::getInstance(); |
$language = $translator->language; |
} |
//try to open language specific metadata |
$fp = @fopen($this->config->base_path.$this->config->pathto_galleries.$galleryId."/metadata.$language.csv","r"); |
//if fail then try to open generic metadata |
if(!$fp) |
$fp = @fopen($this->config->base_path.$this->config->pathto_galleries.$galleryId."/metadata.csv","r"); |
if($fp) { |
while($temp[] = fgetcsv($fp,2048)); |
fclose($fp); |
list( |
$gal->filename, |
$gal->thumbnail, |
$gal->owner, |
$gal->groups, |
$gal->permissions, |
$gal->categories, |
$gal->name, |
$gal->artist, |
$gal->email, |
$gal->copyright, |
$gal->desc, |
$gal->summary, |
$gal->date |
) = $temp[1]; |
//only fetch individual images if child galleries are required |
if($getChildGalleries) { |
for($i=0;$i<count($temp)-3;$i++) { |
$gal->images[$i] =& new sgImage($temp[$i+2][0], $gal, $this->config); |
list(, |
$gal->images[$i]->thumbnail, |
$gal->images[$i]->owner, |
$gal->images[$i]->groups, |
$gal->images[$i]->permissions, |
$gal->images[$i]->categories, |
$gal->images[$i]->name, |
$gal->images[$i]->artist, |
$gal->images[$i]->email, |
$gal->images[$i]->copyright, |
$gal->images[$i]->desc, |
$gal->images[$i]->location, |
$gal->images[$i]->date, |
$gal->images[$i]->camera, |
$gal->images[$i]->lens, |
$gal->images[$i]->film, |
$gal->images[$i]->darkroom, |
$gal->images[$i]->digital |
) = $temp[$i+2]; |
//get image size and type |
list( |
$gal->images[$i]->width, |
$gal->images[$i]->height, |
$gal->images[$i]->type |
) = @GetImageSize($gal->images[$i]->realPath()); |
} |
//otherwise just fill in empty images |
} else if(count($temp) > 3) { |
for($i=0;$i<count($temp)-3;$i++) |
$gal->images[$i] =& new sgImage($temp[$i+2][0], $gal); |
} |
} else |
//no metadata found so use iifn method implemented in superclass |
return parent::getGallery($galleryId, $parent, $getChildGalleries, $language); |
//discover child galleries |
$dir = Singapore::getListing($this->config->base_path.$this->config->pathto_galleries.$galleryId."/"); |
if($getChildGalleries) |
//but only fetch their info if required too |
foreach($dir->dirs as $gallery) |
$gal->galleries[] = $this->getGallery($galleryId."/".$gallery, $gal, $getChildGalleries-1, $language); |
else |
//otherwise just copy their names in so they can be counted |
$gal->galleries = $dir->dirs; |
return $gal; |
} |
/** |
* Stores gallery information. |
* @param sgGallery instance of gallery object to be stored |
*/ |
function putGallery($gal) { |
$dataFile = $this->config->base_path.$this->config->pathto_galleries.$gal->id."/metadata.csv"; |
@chmod($dataFile, octdec($this->config->file_mode)); |
$fp = @fopen($dataFile,"w"); |
if(!$fp) |
return false; |
$success = (bool) fwrite($fp,"filename,thumbnail,owner,group(s),permissions,catergories,image name,artist name,artist email,copyright,image description,image location,date taken,camera info,lens info,film info,darkroom manipulation,digital manipulation"); |
$success &= (bool) fwrite($fp,"\n\"". |
$gal->filename.'",,'. |
$gal->owner.','. |
$gal->groups.','. |
$gal->permissions.','. |
$gal->categories.',"'. |
str_replace('"','""',$gal->name).'","'. |
str_replace('"','""',$gal->artist).'","'. |
str_replace('"','""',$gal->email).'","'. |
str_replace('"','""',$gal->copyright).'","'. |
str_replace('"','""',$gal->desc).'","'. |
str_replace('"','""',$gal->summary).'","'. |
str_replace('"','""',$gal->date).'"' |
); |
for($i=0;$i<count($gal->images);$i++) |
$success &= (bool) fwrite($fp,"\n\"". |
$gal->images[$i]->id.'",,'. |
//$gal->images[$i]->thumbnail.','. |
$gal->images[$i]->owner.','. |
$gal->images[$i]->groups.','. |
$gal->images[$i]->permissions.','. |
$gal->images[$i]->categories.',"'. |
str_replace('"','""',$gal->images[$i]->name).'","'. |
str_replace('"','""',$gal->images[$i]->artist).'","'. |
str_replace('"','""',$gal->images[$i]->email).'","'. |
str_replace('"','""',$gal->images[$i]->copyright).'","'. |
str_replace('"','""',$gal->images[$i]->desc).'","'. |
str_replace('"','""',$gal->images[$i]->location).'","'. |
str_replace('"','""',$gal->images[$i]->date).'","'. |
str_replace('"','""',$gal->images[$i]->camera).'","'. |
str_replace('"','""',$gal->images[$i]->lens).'","'. |
str_replace('"','""',$gal->images[$i]->film).'","'. |
str_replace('"','""',$gal->images[$i]->darkroom).'","'. |
str_replace('"','""',$gal->images[$i]->digital).'"' |
); |
$success &= (bool) fclose($fp); |
return $success; |
} |
/** |
* Fetches hit data from file. |
* @param sgGallery gallery object to load hits into |
*/ |
function getHits(&$gal) { |
$fp = @fopen($this->config->base_path.$this->config->pathto_galleries.$gal->id."/hits.csv","r"); |
if($fp) { |
flock($fp, LOCK_SH); |
while($temp[] = fgetcsv($fp,255)); |
flock($fp, LOCK_UN); |
fclose($fp); |
} else $temp = array(); |
if(isset($temp[0])) |
list( |
, |
$gal->hits, |
$gal->lasthit |
) = $temp[0]; |
for($i=0;$i<count($temp)-2;$i++) { |
if(isset($gal->images[$i]) && $temp[$i+1][0] == $gal->images[$i]->id) |
list( |
, |
$gal->images[$i]->hits, |
$gal->images[$i]->lasthit |
) = $temp[$i+1]; |
else |
foreach($gal->images as $key => $img) |
if($temp[$i+1][0] == $img->id) |
list( |
, |
$gal->images[$key]->hits, |
$gal->images[$key]->lasthit |
) = $temp[$i+1]; |
} |
return true; |
} |
/** |
* Stores gallery hits. |
* @param sgGallery gallery object to store |
*/ |
function putHits($gal) { |
$logfile = $this->config->base_path.$this->config->pathto_galleries.$gal->id."/hits.csv"; |
if(!file_exists($logfile) && !@touch($logfile)) return false; |
@chmod($logfile, octdec($this->config->file_mode)); |
$fp = @fopen($logfile,"r+"); |
if(!$fp) return false; |
flock($fp, LOCK_EX); |
ftruncate($fp, 0); |
fwrite($fp, '"'. |
$gal->id.'",'. |
$gal->hits.','. |
$gal->lasthit |
); |
foreach($gal->images as $img) |
fwrite($fp, "\n\"". |
$img->id.'",'. |
$img->hits.','. |
$img->lasthit |
); |
flock($fp, LOCK_UN); |
fclose($fp); |
return true; |
} |
/** |
* Fetches all registered users. |
*/ |
function getUsers() { |
$fp = fopen($this->config->base_path.$this->config->pathto_data_dir."users.csv.php","r"); |
//strip off description line |
fgetcsv($fp,1024); |
for($i=0;$entry = fgetcsv($fp,1000,",");$i++) { |
$users[$i] = new sgUser(null,null); |
list( |
$users[$i]->username, |
$users[$i]->userpass, |
$users[$i]->permissions, |
$users[$i]->groups, |
$users[$i]->email, |
$users[$i]->fullname, |
$users[$i]->description, |
$users[$i]->stats |
) = $entry; |
} |
fclose($fp); |
return $users; |
} |
/** |
* Stores all registered users. |
* @param array an array of sgUser objects representing the users to store |
*/ |
function putUsers($users) { |
$fp = fopen($this->config->base_path.$this->config->pathto_data_dir."users.csv.php","w"); |
if(!$fp) return false; |
$success = (bool) fwrite($fp,"<?php die(\"The contents of this file are hidden\"); ?>username,md5(pass),permissions,group(s),email,name,description,stats\n"); |
for($i=0;$i<count($users);$i++) |
$success &= (bool) fwrite($fp,$users[$i]->username.",".$users[$i]->userpass.",".$users[$i]->permissions.",\"".$users[$i]->groups."\",\"".$users[$i]->email."\",\"".$users[$i]->fullname."\",\"".$users[$i]->description."\",\"".$users[$i]->stats."\"\n"); |
fclose($fp); |
return $success; |
} |
} |
?> |
/photogallery/includes/io_mysql.class.php |
---|
0,0 → 1,91 |
<?php |
/** |
* IO class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: io_mysql.class.php,v 1.7 2005/11/30 23:02:18 tamlyn Exp $ |
*/ |
//include the base IO class and generic SQL class |
require_once dirname(__FILE__)."/iosql.class.php"; |
/** |
* Class used to read and write data to and from a MySQL database. |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2004 Tamlyn Rhodes |
*/ |
class sgIO_mysql extends sgIOsql |
{ |
/** |
* @param sgConfig pointer to a {@link sgConfig} object representing |
* the current script configuration |
*/ |
function sgIO_mysql() |
{ |
$this->config =& sgConfig::getInstance(); |
mysql_connect($this->config->sql_host, $this->config->sql_user, $this->config->sql_pass); |
mysql_select_db($this->config->sql_database); |
} |
/** |
* Name of IO backend. |
*/ |
function getName() |
{ |
return "MySQL"; |
} |
/** |
* Version of IO backend. |
*/ |
function getVersion() |
{ |
return "$Revision: 1.7 $"; |
} |
/** |
* Author of IO backend. |
*/ |
function getAuthor() |
{ |
return "Tamlyn Rhodes"; |
} |
/** |
* Brief description of IO backend and it's requirements. |
*/ |
function getDescription() |
{ |
return "Uses a MySQL database. Requires a MySQL database server and the MySQL PHP extension."; |
} |
function query($query) |
{ |
return mysql_query($query); |
} |
function escape_string($query) |
{ |
return mysql_escape_string($query); |
} |
function fetch_array($res) |
{ |
return mysql_fetch_array($res); |
} |
function num_rows($res) |
{ |
return mysql_num_rows($res); |
} |
function error() |
{ |
return mysql_error(); |
} |
} |
?> |
/photogallery/includes/io_sqlite.class.php |
---|
0,0 → 1,95 |
<?php |
/** |
* IO class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: io_sqlite.class.php,v 1.4 2005/11/30 23:02:18 tamlyn Exp $ |
*/ |
//include the generic SQL class |
require_once dirname(__FILE__)."/iosql.class.php"; |
/** |
* Class used to read and write data to and from a SQLite database. |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2004 Tamlyn Rhodes |
*/ |
class sgIO_sqlite extends sgIOsql |
{ |
/** |
* Database resource pointer |
*/ |
var $db; |
/** |
* @param sgConfig pointer to a {@link sgConfig} object representing |
* the current script configuration |
*/ |
function sgIO_sqlite() |
{ |
$this->config =& sgConfig::getInstance(); |
$this->db = sqlite_open($this->config->base_path.$this->config->pathto_data_dir."sqlite.dat"); |
} |
/** |
* Name of IO backend. |
*/ |
function getName() |
{ |
return "SQLite"; |
} |
/** |
* Version of IO backend. |
*/ |
function getVersion() |
{ |
return "$Revision: 1.4 $"; |
} |
/** |
* Author of IO backend. |
*/ |
function getAuthor() |
{ |
return "Tamlyn Rhodes"; |
} |
/** |
* Brief description of IO backend and it's requirements. |
*/ |
function getDescription() |
{ |
return "Uses a SQLite database. Requires only the SQLite PHP extension which incorporates the database server."; |
} |
function query($query) |
{ |
return sqlite_query($this->db, $query); |
} |
function escape_string($query) |
{ |
return sqlite_escape_string($query); |
} |
function fetch_array($res) |
{ |
return sqlite_fetch_array($res); |
} |
function num_rows($res) |
{ |
return sqlite_num_rows($res); |
} |
function error() |
{ |
return sqlite_error_string(sqlite_last_error($this->db)); |
} |
} |
?> |
/photogallery/includes/iosql.class.php |
---|
0,0 → 1,252 |
<?php |
/** |
* IO class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: iosql.class.php,v 1.5 2006/01/22 03:25:36 tamlyn Exp $ |
*/ |
//include the base IO class |
require_once dirname(__FILE__)."/io.class.php"; |
/** |
* Class used to read and write data to and from a MySQL database. |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2004 Tamlyn Rhodes |
*/ |
class sgIOsql extends sgIO |
{ |
/** |
* Overridden in subclasses |
*/ |
function query($query) { } |
function escape_string($query) { } |
function fetch_array($res) { } |
function num_rows($res) { } |
function error() |
{ |
return "unknown error"; |
} |
/** |
* Fetches gallery info for the specified gallery and immediate children. |
* @param string gallery id |
* @param string language code spec for this request (optional) |
* @param int number of levels of child galleries to fetch (optional) |
*/ |
function &getGallery($galleryId, &$parent, $getChildGalleries = 1, $language = null) |
{ |
$gal =& new sgGallery($galleryId, $parent); |
if($language == null) $language = $this->config->default_language; |
//try to open language specific gallery info |
$res = $this->query("SELECT * FROM ".$this->config->sql_prefix."galleries ". |
"WHERE id='".$this->escape_string($galleryId)."' ". |
"AND lang='".$this->escape_string($language)."'"); |
//if fail then try to open generic gallery info |
if(!$res || !$this->num_rows($res)) |
$res = $this->query("SELECT * FROM ".$this->config->sql_prefix."galleries ". |
"WHERE id='".$this->escape_string($galleryId)."' and lang=''"); |
//if that succeeds then get galleries from db |
if($res && $this->num_rows($res)) { |
$galinfo = $this->fetch_array($res); |
$gal->filename = $galinfo['filename']; |
$gal->owner = $galinfo['owner']; |
$gal->groups = $galinfo['groups']; |
$gal->permissions = $galinfo['permissions']; |
$gal->categories = $galinfo['categories']; |
$gal->name = $galinfo['name']; |
$gal->artist = $galinfo['artist']; |
$gal->email = $galinfo['email']; |
$gal->copyright = $galinfo['copyright']; |
$gal->desc = $galinfo['description']; |
$gal->summary = $galinfo['summary']; |
$gal->date = $galinfo['date']; |
$gal->hits = $galinfo['hits']; |
$gal->lasthit = $galinfo['lasthit']; |
//try to open language specific image info |
$res = $this->query("SELECT * FROM ".$this->config->sql_prefix."images ". |
"WHERE galleryid='".$this->escape_string($galleryId)."' ". |
"AND lang='".$this->escape_string($language)."'"); |
//if fail then try to open generic image info |
if(!$res || !$this->num_rows($res)) |
$res = $this->query("SELECT * FROM ".$this->config->sql_prefix."images ". |
"WHERE galleryid='".$this->escape_string($galleryId)."' and lang=''"); |
for($i=0;$i<$this->num_rows($res);$i++) { |
$imginfo = $this->fetch_array($res); |
$gal->images[$i] =& new sgImage($imginfo['filename'], $gal); |
$gal->images[$i]->thumbnail = $imginfo['thumbnail']; |
$gal->images[$i]->owner = $imginfo['owner']; |
$gal->images[$i]->groups = $imginfo['groups']; |
$gal->images[$i]->permissions = $imginfo['permissions']; |
$gal->images[$i]->categories = $imginfo['categories']; |
$gal->images[$i]->name = $imginfo['name']; |
$gal->images[$i]->artist = $imginfo['artist']; |
$gal->images[$i]->email = $imginfo['email']; |
$gal->images[$i]->copyright = $imginfo['copyright']; |
$gal->images[$i]->desc = $imginfo['description']; |
$gal->images[$i]->location = $imginfo['location']; |
$gal->images[$i]->date = $imginfo['date']; |
$gal->images[$i]->camera = $imginfo['camera']; |
$gal->images[$i]->lens = $imginfo['lens']; |
$gal->images[$i]->film = $imginfo['film']; |
$gal->images[$i]->darkroom = $imginfo['darkroom']; |
$gal->images[$i]->digital = $imginfo['digital']; |
$gal->images[$i]->width = $imginfo['width']; |
$gal->images[$i]->height = $imginfo['height']; |
$gal->images[$i]->type = $imginfo['type']; |
$gal->images[$i]->hits = $imginfo['hits']; |
$gal->images[$i]->lasthit = $imginfo['lasthit']; |
} |
} else |
//no record found so use iifn method implemented in parent class |
return parent::getGallery($galleryId, $parent, $getChildGalleries, $language); |
//discover child galleries |
$dir = Singapore::getListing($this->config->base_path.$this->config->pathto_galleries.$galleryId."/"); |
if($getChildGalleries) |
//but only fetch their info if required too |
foreach($dir->dirs as $gallery) |
$gal->galleries[] =& $this->getGallery($galleryId."/".$gallery, $gal, $getChildGalleries-1, $language); |
else |
//otherwise just copy their names in so they can be counted |
$gal->galleries = $dir->dirs; |
return $gal; |
} |
/** |
* Stores gallery information. |
* @param sgGallery instance of gallery object to be stored |
*/ |
function putGallery($gal, $language = "") { |
//insert gallery info |
$success = (bool) $this->query("REPLACE INTO ".$this->config->sql_prefix."galleries ". |
"(id,lang,filename,owner,groups,permissions,categories,name,artist,". |
"email,copyright,description,summary,date,hits,lasthit) VALUES ('". |
$this->escape_string($gal->id)."','".$language."','". |
$this->escape_string($gal->filename)."','". |
$gal->owner."','".$gal->groups."',".$gal->permissions.",'". |
$this->escape_string($gal->categories)."','". |
$this->escape_string($gal->name)."','". |
$this->escape_string($gal->artist)."','". |
$this->escape_string($gal->email)."','". |
$this->escape_string($gal->copyright)."','". |
$this->escape_string($gal->desc)."','". |
$this->escape_string($gal->summary)."','". |
$this->escape_string($gal->date)."',". |
$gal->hits.",".$gal->lasthit.")"); |
//delete all image info |
$success &= (bool) $this->query("DELETE FROM ".$this->config->sql_prefix."images ". |
"WHERE galleryid='".$this->escape_string($gal->id)."' AND lang='".$language."'"); |
for($i=0;$i<count($gal->images);$i++) { |
$success &= (bool) $this->query("INSERT INTO ".$this->config->sql_prefix."images ". |
"(galleryid,lang,filename,owner,groups,permissions,categories,name,artist,". |
"email,copyright,description,location,date,camera,lens,film,darkroom,digital,". |
"width,height,type,hits,lasthit) VALUES ('". |
$this->escape_string($gal->id)."','".$language."','". |
$this->escape_string($gal->images[$i]->id)."','". |
$gal->images[$i]->owner."','".$gal->images[$i]->groups."',". |
$gal->images[$i]->permissions.",'". |
$this->escape_string($gal->images[$i]->categories)."','". |
$this->escape_string($gal->images[$i]->name)."','". |
$this->escape_string($gal->images[$i]->artist)."','". |
$this->escape_string($gal->images[$i]->email)."','". |
$this->escape_string($gal->images[$i]->copyright)."','". |
$this->escape_string($gal->images[$i]->desc)."','". |
$this->escape_string($gal->images[$i]->location)."','". |
$this->escape_string($gal->images[$i]->date)."','". |
$this->escape_string($gal->images[$i]->camera)."','". |
$this->escape_string($gal->images[$i]->lens)."','". |
$this->escape_string($gal->images[$i]->film)."','". |
$this->escape_string($gal->images[$i]->darkroom)."','". |
$this->escape_string($gal->images[$i]->digital)."',". |
$gal->images[$i]->width.",".$gal->images[$i]->height.",". |
$gal->images[$i]->type.",".$gal->images[$i]->hits.",". |
$gal->images[$i]->lasthit.")"); |
} |
return $success; |
} |
/** |
* Hits are loaded by getGallery so this method does nothing |
* @param sgGallery gallery object to load hits into |
*/ |
function getHits(&$gal) { |
return true; |
} |
/** |
* Stores gallery hits. |
* @param sgGallery gallery object to store |
*/ |
function putHits($gal) { |
//if gallery data doesn't exist in database, add it |
$res = $this->query("SELECT id FROM ".$this->config->sql_prefix."galleries ". |
"WHERE id='".$this->escape_string($gal->id)."'"); |
if(!$res || !$this->num_rows($res)) |
$this->putGallery($gal); |
$success = (bool) $this->query("UPDATE ".$this->config->sql_prefix."galleries ". |
"SET hits=".$gal->hits.", lasthit=".$gal->lasthit." ". |
"WHERE id='".$this->escape_string($gal->id)."'"); |
foreach($gal->images as $img) |
$success &= (bool) $this->query("UPDATE ".$this->config->sql_prefix."images ". |
"SET hits=".$img->hits.", lasthit=".$img->lasthit." ". |
"WHERE galleryid='".$this->escape_string($gal->id)."' ". |
"AND filename='".$this->escape_string($img->id)."'"); |
return $success; |
} |
/** |
* Fetches all registered users. |
*/ |
function getUsers() { |
$res = $this->query("SELECT * FROM ".$this->config->sql_prefix."users"); |
for($i=0;$i<$this->num_rows($res);$i++) { |
$usrinfo = $this->fetch_array($res); |
$users[$i] = new sgUser($usrinfo['username'],$usrinfo['userpass']); |
$users[$i]->permissions = $usrinfo['permissions']; |
$users[$i]->groups = $usrinfo['groups']; |
$users[$i]->email = $usrinfo['email']; |
$users[$i]->fullname = $usrinfo['fullname']; |
$users[$i]->description = $usrinfo['description']; |
$users[$i]->stats = $usrinfo['stats']; |
} |
return $users; |
} |
/** |
* Stores all registered users. |
* @param array an array of sgUser objects representing the users to store |
*/ |
function putUsers($users) { |
//empty table |
$success = (bool) $this->query("DELETE FROM ".$this->config->sql_prefix."users"); |
for($i=0;$i<count($users);$i++) |
$success &= (bool) $this->query("INSERT INTO ".$this->config->sql_prefix."users ". |
"(username,userpass,permissions,groups,email,fullname,description,stats) VALUES ('". |
$this->escape_string($users[$i]->username)."','". |
$users[$i]->userpass."',".$users[$i]->permissions.",'". |
$this->escape_string($users[$i]->groups)."','". |
$this->escape_string($users[$i]->email)."','". |
$this->escape_string($users[$i]->fullname)."','". |
$this->escape_string($users[$i]->description)."','". |
$this->escape_string($users[$i]->stats)."')"); |
return $success; |
} |
} |
?> |
/photogallery/includes/item.class.php |
---|
0,0 → 1,297 |
<?php |
/** |
* Singapore gallery item class. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2005-6 Tamlyn Rhodes |
* @version $Id: item.class.php,v 1.10 2006/09/08 15:29:22 tamlyn Exp $ |
*/ |
//permissions bit flags |
define("SG_GRP_READ", 1); |
define("SG_GRP_EDIT", 2); |
define("SG_GRP_ADD", 4); |
define("SG_GRP_DELETE", 8); |
define("SG_WLD_READ", 16); |
define("SG_WLD_EDIT", 32); |
define("SG_WLD_ADD", 64); |
define("SG_WLD_DELETE", 128); |
define("SG_IHR_READ", 17); |
define("SG_IHR_EDIT", 34); |
define("SG_IHR_ADD", 68); |
define("SG_IHR_DELETE", 136); |
/** |
* Abstract class from which sgImage and sgGallery are derived. |
* |
* @abstract |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2005-6 Tamlyn Rhodes |
*/ |
class sgItem |
{ |
/** |
* The id of the item. In the case of galleries this is the path to the |
* gallery from root and must be unique. For images it is the image file |
* name (or URL for remote images). |
* @var string |
*/ |
var $id; |
/** |
* Username of the user to which the item belongs |
* @var string |
*/ |
var $owner = "__nobody__"; |
/** |
* Space-separated list of groups to which the item belongs |
* @var string |
*/ |
var $groups = ""; |
/** |
* Bit-field of permissions |
* Default is to inherit everything. |
* @var int |
*/ |
var $permissions = 255; |
/** |
* Space-separated list of categories to which the item belongs (not used) |
* @var string |
*/ |
var $categories = ""; |
/** |
* The name or title of the item |
* @var string |
*/ |
var $name = ""; |
/** |
* The name of the original item creator (or anyone else) |
* @var string |
*/ |
var $artist = ""; |
/** |
* Email of the original item creator (or anyone else) |
* @var string |
*/ |
var $email = ""; |
/** |
* Optional copyright information |
* @var string |
*/ |
var $copyright = ""; |
/** |
* Multiline description of the item |
* @var string |
*/ |
var $desc = ""; |
/** |
* Date associated with item |
* @var string |
*/ |
var $date = ""; |
var $location = ""; |
/** |
* Number of times item has been viewed |
* @var int |
*/ |
var $hits = 0; |
/** |
* Unix timestamp of last time item was viewed |
* @var int |
*/ |
var $lasthit = 0; |
/** |
* Pointer to the parent sgItem |
* @var sgItem |
*/ |
var $parent; |
/** |
* Reference to the current config object |
* @var sgConfig |
*/ |
var $config; |
/** |
* Reference to the current translator object |
* @var Translator |
*/ |
var $translator; |
/** |
* Array in which the various sized thumbnails representing this item are stored |
* @var array |
*/ |
var $thumbnails = array(); |
/** Accessor methods */ |
function name() { return $this->name; } |
function artist() { return $this->artist; } |
function date() { return $this->date; } |
function location() { return $this->location; } |
function description() { return $this->desc; } |
function canEdit() { return false; } |
function idEntities() { return htmlspecialchars($this->id); } |
/** |
* Removes script-generated HTML (BRs and URLs) but leaves any other HTML |
* @return string the description of the item |
*/ |
function descriptionStripped() |
{ |
$ret = str_replace("<br />","\n",$this->description()); |
if($this->config->enable_clickable_urls) { |
//strip off html from autodetected URLs |
$ret = preg_replace('{<a href="('.SG_REGEXP_PROTOCOLURL.')\">\1</a>}', '\1', $ret); |
$ret = preg_replace('{<a href="http://('.SG_REGEXP_WWWURL.')">\1</a>}', '\1', $ret); |
$ret = preg_replace('{<a href="mailto:('.SG_REGEXP_EMAILURL.')">\1</a>}', '\1', $ret); |
} |
return $ret; |
} |
/** |
* If the current item has an artist specified, returns " by " followed |
* by the artist's name. Otherwise returns an empty string. |
* @return string |
*/ |
function byArtistText() |
{ |
if(empty($this->artist)) |
return ""; |
else |
return " ".$this->translator->_g("artist name|by %s",$this->artist); |
} |
/** |
* Obfuscates the given email address by replacing "." with "dot" and "@" with "at" |
* @param boolean override the obfuscate_email config setting (optional) |
* @return string obfuscated email address or HTML mailto link |
*/ |
function emailLink($forceObfuscate = false) |
{ |
if($this->config->obfuscate_email || $forceObfuscate) |
return strtr($this->email,array("@" => ' <b>'.$this->translator->_g("email|at").'</b> ', "." => ' <b>'.$this->translator->_g("email|dot").'</b> ')); |
else |
return "<a href=\"mailto:".$this->email."\">".$this->email."</a>"; |
} |
function nameLink($action = null) |
{ |
return '<a href="'.$this->URL(0, $action).'">'.$this->nameForce().'</a>'; |
} |
function parentURL($action = null) |
{ |
$perpage = $this->parent->isAlbum() ? $this->config->thumb_number_album : $this->config->thumb_number_gallery; |
return $this->parent->URL(floor($this->index() / $perpage) * $perpage, $action); |
} |
function parentLink($action = null) |
{ |
return '<a href="'.$this->parentURL($action).'">'.$this->parentText().'</a>'; |
} |
function parentText() |
{ |
return $this->translator->_g("gallery|Up"); |
} |
/** |
* @return array associative array of item properties in the form "name" => "value" |
*/ |
function detailsArray() |
{ |
$ret = array(); |
//generic properties |
if(!empty($this->date)) $ret[$this->translator->_g("Date")] = $this->date; |
if(!empty($this->location)) $ret[$this->translator->_g("Location")] = $this->location; |
if(!empty($this->desc)) $ret[$this->translator->_g("Description")] = $this->desc; |
if(!empty($this->email)) $ret[$this->translator->_g("Email")] = $this->emailLink(); |
//image properties |
if(!empty($this->camera)) $ret[$this->translator->_g("Camera")] = $this->camera; |
if(!empty($this->lens)) $ret[$this->translator->_g("Lens")] = $this->lens; |
if(!empty($this->film)) $ret[$this->translator->_g("Film")] = $this->film; |
if(!empty($this->darkroom)) $ret[$this->translator->_g("Darkroom manipulation")] = $this->darkroom; |
if(!empty($this->digital)) $ret[$this->translator->_g("Digital manipulation")] = $this->digital; |
//special properties |
if(!empty($this->copyright)) $ret[$this->translator->_g("Copyright")] = $this->copyright; |
elseif(!empty($this->artist))$ret[$this->translator->_g("Copyright")] = $this->artist; |
if($this->config->show_views) |
$ret[$this->translator->_g("Viewed")] = $this->translator->_ng("viewed|%s time", "viewed|%s times",$this->hits); |
return $ret; |
} |
function isAlbum() { return false; } |
function isGallery() { return false; } |
function isImage() { return false; } |
/** |
* Returns a link to the image or gallery with the correct formatting and path |
* |
* @param int page offset (optional) |
* @param string action to perform (optional) |
* @return string formatted URL |
*/ |
function URL($startat = null, $action = null) |
{ |
$query = array(); |
if($this->config->use_mod_rewrite) { //format url for use with mod_rewrite |
$ret = $this->config->base_url; |
$ret .= $this->isImage() ? $this->parent->idEncoded() : $this->idEncoded(); |
if($startat) $ret .= ','.$startat; |
$ret .= '/'; |
if($this->isImage()) $ret .= $this->idEncoded(); |
if($action) $query[] = $this->config->url_action."=".$action; |
if($this->translator->language != $this->config->default_language) $query[] = $this->config->url_lang.'='.$this->translator->language; |
if($GLOBALS["sg"]->template != $this->config->default_template) $query[] = $this->config->url_template.'='.$GLOBALS["sg"]->template; |
if(!empty($query)) |
$ret .= '?'.implode(ini_get('arg_separator.output'), $query); |
} else { //format plain url |
$query[] = $this->config->url_gallery."=".($this->isImage() ? $this->parent->idEncoded() : $this->idEncoded()); |
if($this->isImage()) $query[] = $this->config->url_image."=".$this->idEncoded(); |
if($startat) $query[] = $this->config->url_startat."=".$startat; |
if($action) $query[] = $this->config->url_action."=".$action; |
if($this->translator->language != $this->config->default_language) |
$query[] = $this->config->url_lang.'='.$this->translator->language; |
if(isset($GLOBALS["sg"]->template) && $GLOBALS["sg"]->template != $this->config->default_template) |
$query[] = $this->config->url_template.'='.$GLOBALS["sg"]->template; |
$ret = $this->config->index_file_url.implode(ini_get('arg_separator.output'), $query); |
} |
return $ret; |
} |
} |
?> |
/photogallery/includes/singapore.class.php |
---|
0,0 → 1,976 |
<?php |
/** |
* Main class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2006 Tamlyn Rhodes |
* @version $Id: singapore.class.php,v 1.75 2006/09/12 11:56:11 thepavian Exp $ |
*/ |
//define constants for regular expressions |
define('SG_REGEXP_PROTOCOLURL', '(?:http://|https://|ftp://|mailto:)(?:[a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,4}(?::[0-9]+)?(?:/[^ \n\r\"\'<]+)?'); |
define('SG_REGEXP_WWWURL', 'www\.(?:[a-zA-Z0-9\-]+\.)*[a-zA-Z]{2,4}(?:/[^ \n\r\"\'<]+)?'); |
define('SG_REGEXP_EMAILURL', '(?:[\w][\w\.\-]+)+@(?:[\w\-]+\.)+[a-zA-Z]{2,4}'); |
/** |
* Provides functions for handling galleries and images |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
*/ |
class Singapore |
{ |
/** |
* current script version |
* @var string |
*/ |
var $version = "0.10.1"; |
/** |
* instance of a {@link sgConfig} object representing the current |
* script configuration |
* @var sgConfig |
*/ |
var $config; |
/** |
* instance of the currently selected IO handler object |
* @var sgIO_csv |
*/ |
var $io; |
/** |
* instance of a {@link Translator} |
* @var Translator |
*/ |
var $translator; |
/** |
* instance of a {@link sgGallery} representing the current gallery |
* @var sgGallery |
*/ |
var $gallery; |
/** |
* reference to the currently selected {@link sgImage} object in the |
* $images array of {@link $gallery} |
* @var sgImage |
*/ |
var $image; |
/** |
* two character code of language currently in use |
* @var string |
*/ |
var $language = null; |
/** |
* name of template currently in use |
* @var string |
*/ |
var $template = null; |
/** |
* details of current user |
* @var sgUser |
*/ |
var $user = null; |
/** |
* name of action requested |
* @var string |
*/ |
var $action = null; |
/** |
* Constructor, does all init type stuff. This code is a total mess. |
* @param string the path to the base singapore directory |
*/ |
function Singapore($basePath = "") |
{ |
//import class definitions |
//io handler class included once config is loaded |
require_once $basePath."includes/translator.class.php"; |
require_once $basePath."includes/thumbnail.class.php"; |
require_once $basePath."includes/gallery.class.php"; |
require_once $basePath."includes/config.class.php"; |
require_once $basePath."includes/image.class.php"; |
require_once $basePath."includes/user.class.php"; |
//start execution timer |
$this->scriptStartTime = microtime(); |
//remove slashes |
if(get_magic_quotes_gpc()) |
$_REQUEST = array_map(array("Singapore","arraystripslashes"), $_REQUEST); |
//desanitize request |
$_REQUEST = array_map("htmlentities", $_REQUEST); |
//load config from singapore root directory |
$this->config =& sgConfig::getInstance(); |
$this->config->loadConfig($basePath."singapore.ini"); |
$this->config->loadConfig($basePath."secret.ini.php"); |
//if instantiated remotely... |
if(!empty($basePath)) { |
//...try to guess base path and relative url |
if(empty($this->config->base_path)) |
$this->config->base_path = $basePath; |
if(empty($this->config->base_url)) |
$this->config->base_url = $basePath; |
//...load local config if present |
//may over-ride guessed values above |
$this->config->loadConfig("singapore.local.ini"); |
} |
//set current gallery to root if not specified in url |
$galleryId = isset($_REQUEST[$this->config->url_gallery]) ? $_REQUEST[$this->config->url_gallery] : "."; |
//load config from gallery ini file (gallery.ini) if present |
$this->config->loadConfig($basePath.$this->config->pathto_galleries.$galleryId."/gallery.ini"); |
//set current template from request vars or config |
//first, preset template to default one |
$this->template = $this->config->default_template; |
//then check if requested template exists |
if(!empty($_REQUEST[$this->config->url_template])) { |
$templates = Singapore::getListing($this->config->base_path.$this->config->pathto_templates); |
foreach($templates->dirs as $single) { |
if($single == $_REQUEST[$this->config->url_template]) { |
$this->template = $single; |
break; |
} |
} |
} |
$this->config->pathto_current_template = $this->config->pathto_templates.$this->template.'/'; |
//load config from template ini file (template.ini) if present |
$this->config->loadConfig($basePath.$this->config->pathto_current_template."template.ini"); |
//set runtime values |
$this->config->pathto_logs = $this->config->pathto_data_dir."logs/"; |
$this->config->pathto_cache = $this->config->pathto_data_dir."cache/"; |
$this->config->pathto_admin_template = $this->config->pathto_templates.$this->config->admin_template_name."/"; |
//set current language from request vars or config |
if(!empty($_REQUEST[$this->config->url_lang])) |
$this->language = $_REQUEST[$this->config->url_lang]; |
else { |
$this->language = $this->config->default_language; |
if($this->config->detect_language) |
foreach($this->getBrowserLanguages() as $lang) |
if($lang=="en" || file_exists($basePath.$this->config->pathto_locale."singapore.".$lang.".pmo")) { |
$this->language = $lang; |
break; |
} |
} |
//read the language file |
$this->translator =& Translator::getInstance($this->language); |
$this->translator->readLanguageFile($this->config->base_path.$this->config->pathto_locale."singapore.".$this->language.".pmo"); |
//clear the UMASK |
umask(0); |
//include IO handler class and create instance |
require_once $basePath."includes/io_".$this->config->io_handler.".class.php"; |
$ioClassName = "sgIO_".$this->config->io_handler; |
$this->io = new $ioClassName($this->config); |
//load gallery and image info |
$this->selectGallery($galleryId); |
//set character set |
if(!empty($this->translator->languageStrings[0]["charset"])) |
$this->character_set = $this->translator->languageStrings[0]["charset"]; |
else |
$this->character_set = $this->config->default_charset; |
//set action to perform |
if(empty($_REQUEST["action"])) $this->action = "view"; |
else $this->action = $_REQUEST["action"]; |
} |
/** |
* Load gallery and image info |
* @param string the id of the gallery to load (optional) |
*/ |
function selectGallery($galleryId = "") |
{ |
if(empty($galleryId)) $galleryId = isset($_REQUEST[$this->config->url_gallery]) ? $_REQUEST[$this->config->url_gallery] : "."; |
//try to validate gallery id |
if(strlen($galleryId)>1 && $galleryId{1} != '/') $galleryId = './'.$galleryId; |
//detect back-references to avoid file-system walking |
if(strpos($galleryId,"../")!==false) $galleryId = "."; |
//find all ancestors to current gallery |
$this->ancestors = array(); |
$ancestorNames = explode("/", $galleryId); |
$numberOfAncestors = count($ancestorNames); |
//construct fully qualified gallery ids |
$ancestorIds[0] = "."; |
for($i=1; $i<$numberOfAncestors; $i++) |
$ancestorIds[$i] = $ancestorIds[$i-1]."/".$ancestorNames[$i]; |
//fetch galleries passing previous gallery as parent pointer |
for($i=0; $i<$numberOfAncestors; $i++) |
if(!$this->ancestors[$i] =& $this->io->getGallery( |
$ancestorIds[$i], $this->ancestors[$i-1], |
//only fetch children of bottom level gallery |
($i==$numberOfAncestors-1) ? 1 : 0 |
) |
) |
break; |
//need to remove bogus parent of root gallery created by previous step |
unset($this->ancestors[-1]); |
//set reference to current gallery |
$this->gallery = &$this->ancestors[count($this->ancestors)-1]; |
//check if gallery was successfully fetched |
if($this->gallery == null) { |
$this->gallery = new sgGallery($galleryId, $this->ancestors[0]); |
$this->gallery->name = $this->translator->_g("Gallery not found '%s'",htmlspecialchars($galleryId)); |
} |
//sort galleries and images |
$GLOBALS["sgSortOrder"] = $this->config->gallery_sort_order; |
if($this->config->gallery_sort_order!="x") usort($this->gallery->galleries, array("Singapore","multiSort")); |
$GLOBALS["sgSortOrder"] = $this->config->image_sort_order; |
if($this->config->image_sort_order!="x") usort($this->gallery->images, array("Singapore","multiSort")); |
unset($GLOBALS["sgSortOrder"]); |
//if startat is set then cast to int otherwise startat 0 |
$this->gallery->startat = isset($_REQUEST[$this->config->url_startat]) ? (int)$_REQUEST[$this->config->url_startat] : 0; |
$this->startat = $this->gallery->startat; //depreciated |
//select the image (if any) |
if(!empty($_REQUEST[$this->config->url_image])) |
$this->selectImage($_REQUEST[$this->config->url_image]); |
//load hit data |
if($this->config->track_views || $this->config->show_views) |
$this->io->getHits($this->gallery); |
//update and save hit data |
if($this->config->track_views) { |
if($this->isImagePage()) { |
$this->image->hits++; |
$this->image->lasthit = time(); |
} elseif($this->gallery->startat == 0) { |
$this->gallery->hits++; |
$this->gallery->lasthit = time(); |
} |
$this->io->putHits($this->gallery); |
} |
} |
/** |
* Selects an image from the current gallery |
* @param mixed either the filename of the image to select or the integer |
* index of its position in the images array |
* @return boolean true on success; false otherwise |
*/ |
function selectImage($image) |
{ |
if(is_string($image)) { |
foreach($this->gallery->images as $index => $img) |
if($img->id == $image) { |
$this->image =& $this->gallery->images[$index]; |
return true; |
} |
} elseif(is_int($image) && $image >= 0 && $image < count($this->gallery->images)) { |
$this->image =& $this->gallery->images[$image]; |
return true; |
} |
$this->image =& new sgImage("", $this->gallery); |
$this->image->name = $this->translator->_g("Image not found '%s'",htmlspecialchars($image)); |
return false; |
} |
/** |
* Obfuscates the given email address by replacing "." with "dot" and "@" with "at" |
* @param string email address to obfuscate |
* @param boolean override the obfuscate_email config setting (optional) |
* @return string obfuscated email address or HTML mailto link |
*/ |
function formatEmail($email, $forceObfuscate = false) |
{ |
if($this->config->obfuscate_email || $forceObfuscate) |
return strtr($email,array("@" => ' <b>'.$this->translator->_g("email|at").'</b> ', "." => ' <b>'.$this->translator->_g("email|dot").'</b> ')); |
else |
return "<a href=\"mailto:".$email."\">".$email."</a>"; |
} |
/** |
* Returns image name for image pages and gallery name for gallery pages. |
* If either of these is empty, returns gallery_name config option. |
* |
* @return string Title of current page |
*/ |
function pageTitle() |
{ |
$crumbArray = $this->crumbLineArray(); |
$ret = ""; |
for($i=count($crumbArray)-1;$i>0;$i--) |
$ret .= $crumbArray[$i]->nameForce()." < "; |
$ret .= $crumbArray[$i]->nameForce(); |
return $ret; |
} |
/** |
* @return bool true if this is an image page; false otherwise |
*/ |
function isImagePage() |
{ |
return !empty($this->image); |
} |
/** |
* @return bool true if this is a non-album gallery page; false otherwise |
*/ |
function isGalleryPage() |
{ |
return !empty($this->gallery) && $this->gallery->galleryCount()>0;; |
} |
/** |
* @return bool true if this is an album page; false otherwise |
*/ |
function isAlbumPage() |
{ |
return !$this->isGalleryPage() && !$this->isImagePage() && !empty($this->gallery); |
} |
/** |
* @return int the script execution time in seconds rounded to two decimal places |
*/ |
function scriptExecTime() |
{ |
$scriptStartTime = $this->scriptStartTime; |
$scriptEndTime = microtime(); |
list($usec, $sec) = explode(" ",$scriptStartTime); |
$scriptStartTime = (float)$usec + (float)$sec; |
list($usec, $sec) = explode(" ",$scriptEndTime); |
$scriptEndTime = (float)$usec + (float)$sec; |
$scriptExecTime = floor(($scriptEndTime - $scriptStartTime)*100)/100; |
return $scriptExecTime; |
} |
/** |
* Displays the script execution time if configured to do so |
* @returns string the script execution time |
*/ |
function scriptExecTimeText() |
{ |
if($this->config->show_execution_time) |
return $this->translator->_g("Page created in %s seconds",$this->scriptExecTime()); |
else |
return ""; |
} |
function poweredByText() |
{ |
return $this->translator->_g("Powered by").' <a href="http://www.sgal.org/">singapore</a>'; |
} |
function allRightsReserved() |
{ |
return $this->translator->_g("All rights reserved."); |
} |
function licenseText() |
{ |
return $this->translator->_g("Images may not be reproduced in any form without the express written permission of the copyright holder."); |
} |
function adminURL() |
{ |
return '<a href="'.$this->config->base_url.'admin.php">'; |
} |
function adminLink() |
{ |
return $this->adminURL().$this->translator->_g("Log in")."</a>"; |
} |
/** |
* Checks to see if the user is currently logged in to admin mode. Also resets |
* the login timeout to the current time. |
* @returns boolean true if the user is logged in; false otherwise |
* @static |
*/ |
function isLoggedIn() |
{ |
if( |
isset($this->user) && |
$_SESSION["sgUser"]["ip"] == $_SERVER["REMOTE_ADDR"] && |
(time() - $_SESSION["sgUser"]["loginTime"] < 600) |
) { |
//reset loginTime to current time |
$_SESSION["sgUser"]["loginTime"] = time(); |
return true; |
} |
return false; |
} |
function loadUser($username = null) |
{ |
if($username == null) |
if(isset($_SESSION["sgUser"])) |
$username = $_SESSION["sgUser"]["username"]; |
else |
return false; |
$users = $this->io->getUsers(); |
foreach($users as $user) |
if($user->username == $username) { |
$this->user = $user; |
return $user; |
} |
return false; |
} |
/** |
* Creates an array of objects each representing an item in the crumb line. |
* @return array the items of the crumb line |
*/ |
function crumbLineArray() |
{ |
$crumb = $this->ancestors; |
if($this->isImagePage()) $crumb[] = $this->image; |
return $crumb; |
} |
/** |
* @return string the complete crumb line with links |
*/ |
function crumbLineText() |
{ |
$crumbArray = $this->crumbLineArray(); |
$ret = ""; |
for($i=0;$i<count($crumbArray)-1;$i++) |
$ret .= $crumbArray[$i]->nameLink()." >\n"; |
$ret .= $crumbArray[$i]->nameForce(); |
return $ret; |
} |
function crumbLine() |
{ |
return $this->translator->_g("crumb line|You are here:")." ".$this->crumbLineText(); |
} |
/** |
* Generates the HTML code for imagemap_navigation |
* @return string imagemap HTML code |
*/ |
function imageMap() |
{ |
if(!$this->config->imagemap_navigation) return ""; |
$imageWidth = $this->image->width(); |
$imageHeight = $this->image->height(); |
$middleX = round($imageWidth/2); |
$middleY = round($imageHeight/2); |
$ret = "<map name=\"sgNavMap\" id=\"sgNavMap\">\n"; |
if($this->image->hasNext()) $ret .= '<area href="'.$this->image->nextURL().'" alt="'.$this->image->nextText().'" title="'.$this->image->nextText().'" shape="poly" '; |
else $ret .= '<area href="'.$this->image->parentURL().'" alt="'.$this->image->parentText().'" title="'.$this->image->parentText().'" shape="poly" '; |
$ret .= "coords=\"$middleX,$middleY,$imageWidth,$imageHeight,$imageWidth,0,$middleX,$middleY\" />\n"; |
if($this->image->hasPrev()) $ret .= '<area href="'.$this->image->prevURL().'" alt="'.$this->image->prevText().'" title="'.$this->image->prevText().'" shape="poly" '; |
else $ret .= '<area href="'.$this->image->parentURL().'" alt="'.$this->image->parentText().'" title="'.$this->image->parentText().'" shape="poly" '; |
$ret .= "coords=\"$middleX,$middleY,0,0,0,$imageHeight,$middleX,$middleY\" />\n"; |
$ret .= '<area href="'.$this->image->parentURL().'" alt="'.$this->image->parentText().'" title="'.$this->image->parentText().'" shape="poly" '; |
$ret .= "coords=\"$middleX,$middleY,0,0,$imageWidth,0,$middleX,$middleY\" />\n"; |
$ret .= '</map>'; |
return $ret; |
} |
/** |
* Generates the HTML code for the language select box |
* @return string select box HTML code |
*/ |
function languageFlipper() |
{ |
if(!$this->config->language_flipper) return ""; |
$languageCache = $this->config->base_path.$this->config->pathto_data_dir."languages.cache"; |
// Look for the language file |
if(!file_exists($languageCache)) |
return ""; |
// Open the file |
$fp = @fopen($languageCache, "r"); |
if (!$fp) return ""; |
// Read contents |
$str = ''; |
while (!feof($fp)) $str .= fread($fp, 1024); |
// Unserialize |
$availableLanguages = @unserialize($str); |
$ret = '<div class="sgLanguageFlipper">'; |
$ret .= '<form method="get" action="'.$_SERVER["PHP_SELF"]."\">\n"; |
//carry over current get vars |
foreach($_GET as $var => $val) |
$ret .= '<input type="hidden" name="'.$var.'" value="'.htmlspecialchars($val)."\" />\n"; |
$ret .= '<select name="'.$this->config->url_lang."\">\n"; |
$ret .= ' <option value="'.$this->config->default_language.'">'.$this->translator->_g("Select language...")."</option>\n"; |
foreach($availableLanguages as $code => $name) { |
$ret .= ' <option value="'.$code.'"'; |
if($code == $this->language && $this->language != $this->config->default_language) |
$ret .= 'selected="true" '; |
$ret .= '>'.htmlentities($name)."</option>\n"; |
} |
$ret .= "</select>\n"; |
$ret .= '<input type="submit" class="button" value="'.$this->translator->_g("Go")."\" />\n"; |
$ret .= "</form></div>\n"; |
return $ret; |
} |
/** |
* Generates the HTML code for the template select box |
* @return string select box HTML code |
*/ |
function templateFlipper() |
{ |
if(!$this->config->template_flipper) return ""; |
//get list of installed templates |
$templates = Singapore::getListing($this->config->base_path.$this->config->pathto_templates, "dirs"); |
$ret = '<div class="sgTemplateFlipper">'; |
$ret .= '<form method="get" action="'.$_SERVER["PHP_SELF"]."\">\n"; |
//carry over current get vars |
foreach($_GET as $var => $val) |
$ret .= '<input type="hidden" name="'.$var.'" value="'.htmlspecialchars($val)."\" />\n"; |
$ret .= '<select name="'.$this->config->url_template."\">\n"; |
$ret .= ' <option value="'.$this->config->default_template.'">'.$this->translator->_g("Select template...")."</option>\n"; |
foreach($templates->dirs as $name) |
//do not list admin template(s) |
if(strpos($name, "admin_")===false) { |
$ret .= ' <option value="'.$name.'"'; |
if($name == $this->template && $this->template != $this->config->default_template) |
$ret .= 'selected="true" '; |
$ret .= '>'.$name."</option>\n"; |
} |
$ret .= "</select>\n"; |
$ret .= '<input type="submit" class="button" value="'.$this->translator->_g("Go")."\" />\n"; |
$ret .= "</form></div>\n"; |
return $ret; |
} |
/** |
* @param string $seperator optional string to seperate the Gallery Tab Links |
* @return string |
*/ |
function galleryTab($seperator = " | ") |
{ |
$showing = $this->galleryTabShowing(); |
return Singapore::conditional($this->galleryTabLinks(), $showing.$seperator."%s", $showing); |
} |
/** |
* @return string |
*/ |
function galleryTabShowing() |
{ |
if($this->isAlbumPage()) { |
$total = $this->gallery->imageCount(); |
$perPage = $this->config->thumb_number_album; |
} else { |
$total = $this->gallery->galleryCount(); |
$perPage = $this->config->thumb_number_gallery; |
} |
if($this->gallery->startat+$perPage > $total) |
$last = $total; |
else |
$last = $this->gallery->startat+$perPage; |
return $this->translator->_g("Showing %s-%s of %s",($this->gallery->startat+1),$last,$total); |
} |
/** |
* @return string |
*/ |
function galleryTabLinks() |
{ |
$ret = ""; |
if($this->hasPrevPage()) |
$ret .= $this->prevPageLink()." "; |
//This is for compatibility with old templates |
//it detects if compatibility mode is on using method_exists() |
if(!$this->gallery->isRoot() && method_exists($this, 'galleryName')) |
$ret .= $this->gallery->parentLink(); |
if($this->hasNextPage()) |
$ret .= " ".$this->nextPageLink(); |
return $ret; |
} |
function navigationLinks() { |
$ret = "<link rel=\"Top\" title=\"".$this->config->gallery_name."\" href=\"".$this->ancestors[0]->URL()."\" />\n"; |
if($this->isImagePage()) { |
$ret .= "<link rel=\"Up\" title=\"".$this->image->parent->name()."\" href=\"".$this->image->parent->URL()."\" />\n"; |
if ($this->image->hasPrev()) { |
$first= $this->image->firstImage(); |
$prev = $this->image->prevImage(); |
$ret .= "<link rel=\"First\" title=\"".$first->name()."\" href=\"".$first->URL()."\" />\n"; |
$ret .= "<link rel=\"Prev\" title=\"".$prev->name()."\" href=\"".$prev->URL()."\" />\n"; |
} |
if ($this->image->hasNext()) { |
$next = $this->image->nextImage(); |
$last = $this->image->lastImage(); |
$ret .= "<link rel=\"Next\" title=\"".$next->name()."\" href=\"".$next->URL()."\" />\n"; |
$ret .= "<link rel=\"Last\" title=\"".$last->name()."\" href=\"".$last->URL()."\" />\n"; |
//prefetch next image |
$ret .= "<link rel=\"Prefetch\" href=\"".$next->imageURL()."\" />\n"; |
} |
} else { |
if(!$this->gallery->isRoot()) |
$ret .= "<link rel=\"Up\" title=\"".$this->gallery->parent->name()."\" href=\"".$this->gallery->parent->URL()."\" />\n"; |
if($this->hasPrevPage()) { |
$ret .= "<link rel=\"Prev\" title=\"".$this->translator->_g("gallery|Previous")."\" href=\"".$this->prevPageURL()."\" />\n"; |
$ret .= "<link rel=\"First\" title=\"".$this->translator->_g("gallery|First")."\" href=\"".$this->firstPageURL()."\" />\n"; |
} |
if($this->hasNextPage()) { |
$ret .= "<link rel=\"Next\" title=\"".$this->translator->_g("gallery|Next")."\" href=\"".$this->nextPageURL()."\" />\n"; |
$ret .= "<link rel=\"Last\" title=\"".$this->translator->_g("gallery|Last")."\" href=\"".$this->lastPageURL()."\" />\n"; |
} |
} |
return $ret; |
} |
/** |
* @return int the number of 'pages' or 'screen-fulls' |
*/ |
function galleryPageCount() { |
if($this->isAlbumPage()) |
return intval($this->gallery->imageCount()/$this->config->thumb_number_album)+1; |
else |
return intval($this->gallery->galleryCount()/$this->config->thumb_number_gallery)+1; |
} |
/** |
* @return int |
*/ |
function lastPageIndex() { |
if($this->isAlbumPage()) |
return ($this->galleryPageCount()-1)* |
($this->isAlbumPage()?$this->config->thumb_number_album:$this->config->thumb_number_gallery); |
} |
/** |
* @return bool true if there is at least one more page |
*/ |
function hasNextPage() { |
if($this->isAlbumPage()) |
return count($this->gallery->images)>$this->startat+$this->config->thumb_number_album; |
elseif($this->isGalleryPage()) |
return count($this->gallery->galleries)>$this->startat+$this->config->thumb_number_gallery; |
elseif($this->isImagePage()) |
return isset($this->gallery->images[$this->image->index+1]); |
} |
/** |
* @return bool true if there is at least one previous page |
*/ |
function hasPrevPage() { |
if($this->isAlbumPage() || $this->isGalleryPage()) |
return $this->startat > 0; |
elseif($this->isImagePage()) |
return isset($this->gallery->images[$this->image->index-1]); |
} |
function firstPageURL() { |
return $this->gallery->URL(0); |
} |
function firstPageLink() { |
return "<a href=\"".$this->firstPageURL()."\">".$this->translator->_g("First %s", $this->itemsPerPage())."</a>"; |
} |
/** |
* @return string the URL of the previous page |
*/ |
function prevPageURL() { |
return $this->gallery->URL($this->startat - $this->itemsPerPage()); |
} |
function prevPageLink() { |
return "<a href=\"".$this->prevPageURL()."\">".$this->translator->_g("Previous %s", $this->itemsPerPage())."</a>"; |
} |
/** |
* @return string the URL of the next page |
*/ |
function nextPageURL() { |
return $this->gallery->URL($this->startat + $this->itemsPerPage()); |
} |
function nextPageLink() { |
return "<a href=\"".$this->nextPageURL()."\">".$this->translator->_g("Next %s", $this->itemsPerPage())."</a>"; |
} |
function lastPageURL() { |
$perpage = $this->isAlbumPage() ? $this->config->thumb_number_album : $this->config->thumb_number_gallery; |
return $this->gallery->URL(floor($this->gallery->itemCount() / $perpage) * $perpage); |
} |
function lastPageLink() { |
return "<a href=\"".$this->lastPageURL()."\">".$this->translator->_g("Last %s", $this->itemsPerPage())."</a>"; |
} |
function itemsPerPage() |
{ |
return $this->isAlbumPage() ? $this->config->thumb_number_album : $this->config->thumb_number_gallery; |
} |
/** |
* @return string link for adding a comment to image |
*/ |
function imageCommentLink() |
{ |
return "<a href=\"". |
$this->formatURL($this->gallery->idEncoded(), $this->image->id, null, "addcomment"). |
"\">".$this->translator->_g("Add a comment")."</a>"; |
} |
/** |
* @return array array of sgImage objects |
*/ |
function &previewThumbnailsArray() |
{ |
$ret = array(); |
$index = $this->image->index(); |
$start = ceil($index - $this->config->thumb_number_preview/2); |
for($i = $start; $i < $start + $this->config->thumb_number_preview; $i++) |
if(isset($this->image->parent->images[$i])) |
$ret[$i] =& $this->image->parent->images[$i]; |
return $ret; |
} |
function previewThumbnails() |
{ |
$thumbs =& $this->previewThumbnailsArray(); |
$index = $this->image->index(); |
$ret = ""; |
foreach($thumbs as $key => $thumb) { |
$thumbClass = "sgThumbnailPreview"; |
if($key==$index-1) $thumbClass .= " sgThumbnailPreviewPrev"; |
elseif($key==$index) $thumbClass .= " sgThumbnailPreviewCurrent"; |
elseif($key==$index+1) $thumbClass .= " sgThumbnailPreviewNext"; |
$ret .= $thumb->thumbnailLink($thumbClass, "preview")."\n"; |
} |
return $ret; |
} |
////////////////////////////// |
//////ex-sgUtils methods////// |
////////////////////////////// |
/** |
* Callback function for sorting things |
* @static |
*/ |
function multiSort($a, $b) { |
switch($GLOBALS["sgSortOrder"]) { |
case "f" : |
case "p" : return strcmp($a->id, $b->id); //path |
case "F" : |
case "P" : return strcmp($b->id, $a->id); //path (reverse) |
case "n" : return strcmp($a->name, $b->name); //name |
case "N" : return strcmp($b->name, $a->name); //name (reverse) |
case "i" : return strcasecmp($a->name, $b->name); //case-insensitive name |
case "I" : return strcasecmp($b->name, $a->name); //case-insensitive name (reverse) |
case "a" : return strcmp($a->artist, $b->artist); //artist |
case "A" : return strcmp($b->artist, $a->artist); //artist (reverse) |
case "d" : return strcmp($a->date, $b->date); //date |
case "D" : return strcmp($b->date, $a->date); //date (reverse) |
case "l" : return strcmp($a->location, $b->location); //location |
case "L" : return strcmp($b->location, $a->location); //location (reverse) |
} |
} |
/** |
* Slightly pointless method |
*/ |
function conditional($conditional, $iftrue, $iffalse = null) |
{ |
if($conditional) return sprintf($iftrue, $conditional); |
elseif($iffalse != null) return sprintf($iffalse, $conditional); |
else return ""; |
} |
/** |
* Callback function for recursively stripping slashes |
* @static |
*/ |
function arraystripslashes($toStrip) |
{ |
if(is_array($toStrip)) |
return array_map(array("Singapore","arraystripslashes"), $toStrip); |
else |
return stripslashes($toStrip); |
} |
function thumbnailPath($gallery, $image, $width, $height, $forceSize, $mode = 1) |
{ |
$config =& sgConfig::getInstance(); |
switch($mode) { |
case 0 : |
return $config->pathto_data_dir."cache/".$width."x".$height.($forceSize?"f":"").strtr("-$gallery-$image",":/?\\","----"); |
case 1 : |
return $config->pathto_galleries.$gallery."/_thumbs/".$width."x".$height.($forceSize?"f":"").strtr("-$image",":/?\\","----"); |
} |
} |
/** |
* @param string relative or absolute path to directory |
* @param string regular expression of files to return (optional) |
* @param bool true to get hidden directories too |
* @returns stdClass|false a data object representing the directory and its contents |
* @static |
*/ |
function getListing($wd, $mask = null, $getHidden = false) |
{ |
$dir = new stdClass; |
$dir->path = realpath($wd)."/"; |
$dir->files = array(); |
$dir->dirs = array(); |
$dp = opendir($dir->path); |
if(!$dp) return false; |
while(false !== ($entry = readdir($dp))) |
if(is_dir($dir->path.$entry)) { |
if(($entry{0} != '.' && $entry{0} != '_') || $getHidden) |
$dir->dirs[] = $entry; |
} else { |
if($mask == null || preg_match("/\.($mask)$/i",$entry)) |
$dir->files[] = $entry; |
} |
sort($dir->files); |
sort($dir->dirs); |
closedir($dp); |
return $dir; |
} |
/** |
* Recursively deletes all directories and files in the specified directory. |
* USE WITH EXTREME CAUTION!! |
* @returns boolean true on success; false otherwise |
* @static |
*/ |
function rmdir_all($wd) |
{ |
if(!$dp = opendir($wd)) return false; |
$success = true; |
while(false !== ($entry = readdir($dp))) { |
if($entry == "." || $entry == "..") continue; |
if(is_dir("$wd/$entry")) $success &= Singapore::rmdir_all("$wd/$entry"); |
else $success &= unlink("$wd/$entry"); |
} |
closedir($dp); |
$success &= rmdir($wd); |
return $success; |
} |
/** |
* Returns an array of language codes specified in the Accept-Language HHTP |
* header field of the user's browser. q= components are ignored and removed. |
* hyphens (-) are converted to underscores (_). |
* @return array accepted language codes |
* @static |
*/ |
function getBrowserLanguages() |
{ |
$langs = array(); |
foreach(explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]) as $bit) |
if($pos = strpos($bit,";")) |
$langs[] = strtr(substr($bit,0,$pos),"-","_"); |
else |
$langs[] = strtr($bit,"-","_"); |
return $langs; |
} |
/** |
* Wrapper for mkdir() implementing the safe-mode hack |
*/ |
function mkdir($path) |
{ |
$config =& sgConfig::getInstance(); |
if($config->safe_mode_hack) { |
$connection = ftp_connect($config->ftp_server); |
// login to ftp server |
$result = ftp_login($connection, $config->ftp_user, $config->ftp_pass); |
// check if connection was made |
if ((!$connection) || (!$result)) |
return false; |
ftp_chdir($connection, $config->ftp_base_path); // go to destination dir |
if(!ftp_mkdir($connection, $path)) // create directory |
return false; |
ftp_site($connection, "CHMOD ".$config->directory_mode." ".$path); |
ftp_close($connection); // close connection |
return true; |
} else |
return mkdir($path, octdec($config->directory_mode)); |
} |
/** |
* Tests if $child is within or is the same path as $parent. |
* |
* @param string path to parent directory |
* @param string path to child directory or file |
* @param bool set false to prevent canonicalisation of paths (optional) |
* @return bool true if $child is contained within or is $parent |
*/ |
function isSubPath($parent, $child, $canonicalise = true) |
{ |
$parentPath = $canonicalise ? realpath($parent) : $parent; |
$childPath = $canonicalise ? realpath($child) : $child; |
return $parentPath && $childPath && substr($childPath,0,strlen($parentPath)) == $parentPath; |
} |
function isInGroup($groups1,$groups2) |
{ |
return (bool) array_intersect(explode(" ",$groups1),explode(" ",$groups2)); |
} |
} |
?> |
/photogallery/includes/thumbnail.class.php |
---|
0,0 → 1,228 |
<?php |
/** |
* Thumbnail class. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: thumbnail.class.php,v 1.13 2006/06/24 20:33:00 tamlyn Exp $ |
*/ |
/** |
* Creates and manages image thumbnails |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003-2005 Tamlyn Rhodes |
*/ |
class sgThumbnail |
{ |
var $config; |
var $maxWidth = 0; |
var $maxHeight = 0; |
var $thumbWidth = 0; |
var $thumbHeight = 0; |
var $cropWidth = 0; |
var $cropHeight = 0; |
var $forceSize = false; |
var $imagePath = ""; |
var $thumbPath = ""; |
function sgThumbnail(&$img, $type) |
{ |
$this->config =& sgConfig::getInstance(); |
$this->image =& $img; |
$widthVar = "thumb_width_".$type; |
$heightVar = "thumb_height_".$type; |
$cropVar = "thumb_crop_".$type; |
$this->maxWidth = $this->config->$widthVar; |
$this->maxHeight = $this->config->$heightVar; |
if(isset($this->config->$cropVar)) |
$this->forceSize = $this->config->$cropVar; |
if($this->image == null) return; |
$this->imagePath = $this->image->realPath(); |
$this->thumbPath = $this->config->base_path.Singapore::thumbnailPath($this->image->parent->id, $this->image->id, $this->maxWidth, $this->maxHeight, $this->forceSize); |
$this->thumbURL = $this->config->base_url .Singapore::thumbnailPath($this->image->parent->id, $this->image->id, $this->maxWidth, $this->maxHeight, $this->forceSize); |
//security check: make sure requested file is in galleries directory |
if(!Singapore::isSubPath($this->config->base_path.$this->config->pathto_galleries, $this->imagePath) && !$this->image->isRemote()) |
return; |
//security check: make sure $image has a valid extension |
if(!$this->image->isRemote() && !preg_match("/.+\.(".$this->config->recognised_extensions.")$/i",$this->image->id)) |
return; |
$this->calculateDimensions(); |
//link straight to image if it smaller than required size |
if($this->image->width <= $this->thumbWidth && $this->image->height <= $this->thumbHeight) { |
$this->thumbURL = $this->image->realURL(); |
return; |
} |
$imageModified = @filemtime($this->imagePath); |
$thumbModified = @filemtime($this->thumbPath); |
if($imageModified > $thumbModified || !$thumbModified) |
$this->buildThumbnail(); |
} |
/** Accessor methods */ |
function width() { return $this->thumbWidth; } |
function height() { return $this->thumbHeight; } |
function URL() { return $this->thumbURL; } |
/** Private methods */ |
/** |
* Calculates thumbnail dimensions. |
*/ |
function calculateDimensions() |
{ |
//if aspect ratio is to be constrained set crop size |
if($this->forceSize) { |
$newAspect = $this->maxWidth/$this->maxHeight; |
$oldAspect = $this->image->realWidth()/$this->image->realHeight(); |
if($newAspect > $oldAspect) { |
$this->cropWidth = $this->image->realWidth(); |
$this->cropHeight = round($this->image->realHeight()*($oldAspect/$newAspect)); |
} else { |
$this->cropWidth = round($this->image->realWidth()*($newAspect/$oldAspect)); |
$this->cropHeight = $this->image->realHeight(); |
} |
//else crop size is image size |
} else { |
$this->cropWidth = $this->image->realWidth(); |
$this->cropHeight = $this->image->realHeight(); |
} |
if($this->cropHeight > $this->maxHeight && ($this->cropWidth <= $this->maxWidth |
|| ($this->cropWidth > $this->maxWidth && round($this->cropHeight/$this->cropWidth * $this->maxWidth) > $this->maxHeight))) { |
$this->thumbWidth = round($this->cropWidth/$this->cropHeight * $this->maxHeight); |
$this->thumbHeight = $this->maxHeight; |
} elseif($this->cropWidth > $this->maxWidth) { |
$this->thumbWidth = $this->maxWidth; |
$this->thumbHeight = round($this->cropHeight/$this->cropWidth * $this->maxWidth); |
} else { |
$this->thumbWidth = $this->image->realWidth(); |
$this->thumbHeight = $this->image->realHeight(); |
} |
} |
function buildThumbnail() { |
//set cropping offset |
$cropX = floor(($this->image->width-$this->cropWidth)/2); |
$cropY = floor(($this->image->height-$this->cropHeight)/2); |
//check thumbs directory exists and create it if not |
if(!file_exists(dirname($this->thumbPath))) |
Singapore::mkdir(dirname($this->thumbPath)); |
//if file is remote then copy locally first |
if($this->image->isRemote()) { |
$ip = @fopen($this->imagePath, "rb"); |
$tp = @fopen($this->thumbPath, "wb"); |
if($ip && $tp) { |
while(fwrite($tp,fread($ip, 4095))); |
fclose($tp); |
fclose($ip); |
$this->imagePath = $this->thumbPath; |
} |
} |
switch($this->config->thumbnail_software) { |
case "im" : //use ImageMagick v5.x |
$cmd = '"'.$this->config->pathto_convert.'"'; |
if($this->forceSize) $cmd .= " -crop {$this->cropWidth}x{$this->cropHeight}+{$this->cropX}+{$this->cropY}"; |
$cmd .= " -geometry {$this->thumbWidth}x{$this->thumbHeight}"; |
if($this->image->type == 2) $cmd .= " -quality ".$this->config->thumbnail_quality; |
if($this->config->progressive_thumbs) $cmd .= " -interlace Plane"; |
if($this->config->remove_jpeg_profile) $cmd .= ' +profile "*"'; |
$cmd .= ' '.escapeshellarg($this->imagePath).' '.escapeshellarg($this->thumbPath); |
exec($cmd); |
break; |
case "im6" : //use ImageMagick v6.x |
$cmd = '"'.$this->config->pathto_convert.'"'; |
$cmd .= ' '.escapeshellarg($this->imagePath); |
if($this->config->progressive_thumbs) $cmd .= " -interlace Plane"; |
if($this->image->type == 2) $cmd .= " -quality ".$this->config->thumbnail_quality; |
if($this->forceSize) $cmd .= " -crop {$this->cropWidth}x{$this->cropHeight}+{$this->cropX}+{$this->cropY}"; |
$cmd .= " -resize {$this->thumbWidth}x{$this->thumbHeight}"; |
if($this->config->remove_jpeg_profile) $cmd .= ' +profile "*"'; |
$cmd .= ' '.escapeshellarg($this->thumbPath); |
exec($cmd); |
break; |
case "gd2" : |
case "gd1" : |
default : //use GD by default |
//read in image as appropriate type |
switch($this->image->type) { |
case 1 : $image = ImageCreateFromGIF($this->imagePath); break; |
case 3 : $image = ImageCreateFromPNG($this->imagePath); break; |
case 2 : |
default: $image = ImageCreateFromJPEG($this->imagePath); break; |
} |
if($image) { |
switch($this->config->thumbnail_software) { |
case "gd2" : |
//create blank truecolor image |
$thumb = ImageCreateTrueColor($this->thumbWidth,$this->thumbHeight); |
//resize image with resampling |
ImageCopyResampled( |
$thumb, $image, |
0, 0, $cropX, $cropY, |
$this->thumbWidth, $this->thumbHeight, $this->cropWidth, $this->cropHeight); |
break; |
case "gd1" : |
default : |
//create blank 256 color image |
$thumb = ImageCreate($this->thumbWidth,$this->thumbHeight); |
//resize image |
ImageCopyResized( |
$thumb, $image, |
0, 0, $cropX, $cropY, |
$this->thumbWidth, $this->thumbHeight, $this->cropWidth, $this->cropHeight); |
break; |
} |
} /*else { |
$thumb = ImageCreate($this->thumbWidth, $this->thumbHeight); |
$bg = ImageColorAllocate($thumb, 255, 255, 255); |
$text = ImageColorAllocate($thumb, 255, 0, 0); |
ImageString($thumb, 1, 0, 0, "Cannot load source image", $text); |
}*/ |
//set image interlacing |
@ImageInterlace($thumb, $this->config->progressive_thumbs); |
//output image of appropriate type |
switch($this->image->type) { |
case 1 : |
//GIF images are saved as PNG |
case 3 : |
ImagePNG($thumb, $this->thumbPath); |
break; |
case 2 : |
default: |
ImageJPEG($thumb, $this->thumbPath, $this->config->thumbnail_quality); |
break; |
} |
@ImageDestroy($image); |
@ImageDestroy($thumb); |
} |
//set file permissions on newly created thumbnail |
@chmod($this->thumbPath, octdec($this->config->file_mode)); |
} |
} |
?> |
/photogallery/includes/translator.class.php |
---|
0,0 → 1,160 |
<?php |
/** |
* Translation class. |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003-2005 Tamlyn Rhodes |
* @version $Id: translator.class.php,v 1.5 2006/02/06 18:47:57 tamlyn Exp $ |
*/ |
/** |
* Provides functions for translating strings using GNU Gettext PO files |
* @package singapore |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
*/ |
class Translator |
{ |
/** |
* Array of language strings in the form |
* "english string" => "foreign string" |
* @private |
* @var array |
*/ |
var $languageStrings = array(); |
var $language = "en"; |
/** |
* Constructor |
* @param string language code |
* @private |
*/ |
function Translator($language) |
{ |
$this->language = $language; |
} |
/** |
* Implements a version of the Singleton design pattern by always returning |
* a reference to the same Translator object for each language. If no |
* language is specified then the first loaded Translator is returned. |
* @param string language code (optional) |
* @static |
*/ |
function &getInstance($language = 0) |
{ |
static $instances = array(); |
$key = empty($instances) ? 0 : $language; |
if(!isset($instances[$key])) |
//note that the new object is NOT assigned by reference as |
//references are not stored in static variables (don't ask me...) |
$instances[$key] = new Translator($language); |
return $instances[$key]; |
} |
/** |
* Reads a language file and saves the strings in an array. |
* Note that the language code is used in the filename for the |
* datafile, and is case sensitive. |
* |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @param string file to load |
* @return bool success |
*/ |
function readLanguageFile($languageFile) |
{ |
// Look for the language file |
if(!file_exists($languageFile)) |
return false; |
// Open the file |
$fp = @fopen($languageFile, "r"); |
if (!$fp) return false; |
// Read contents |
$str = ''; |
while (!feof($fp)) $str .= fread($fp, 1024); |
// Unserialize |
$newStrings = @unserialize($str); |
//Append new strings to current languageStrings array |
$this->languageStrings = array_merge($this->languageStrings, $newStrings); |
// Return successful |
return (bool) $newStrings; |
} |
/** |
* Returns a translated string, or the same if no language is chosen. |
* You can pass more arguments to use for replacement within the |
* string - just like sprintf(). It also removes anything before |
* the first | in the text to translate. This is used to distinguish |
* strings with different meanings, but with the same spelling. |
* Examples: |
* _g("Text"); |
* _g("Use a %s to drink %s", _g("glass"), "water"); |
* |
* @author Joel Sjögren <joel dot sjogren at nonea dot se> |
* @param string text to translate |
* @return string translated string |
*/ |
function _g ($text) |
{ |
// String exists and is not empty? |
if(!empty($this->languageStrings[$text])) { |
$text = $this->languageStrings[$text]; |
} else { |
$text = preg_replace("/^[^\|]*\|/", "", $text); |
} |
// More arguments were passed? sprintf() them... |
if (func_num_args() > 1) { |
$args = func_get_args(); |
array_shift($args); |
//preg_match_all("/%((\d+\\\$)|.)/", str_replace("%%", "", $text), $m); |
//while (count($args) < count($m[0])) $args[] = ''; |
$text = vsprintf($text, $args); |
} |
return $text; |
} |
/** |
* Plural form of _g(). |
* |
* @param string singular form of text to translate |
* @param string plural form of text to translate |
* @param string number |
* @return string translated string |
*/ |
function _ng ($msgid1, $msgid2, $n) |
{ |
//calculate which plural to use |
if(!empty($this->languageStrings[0]["plural"])) |
eval($this->languageStrings[0]["plural"]); |
else |
$plural = $n==1?0:1; |
// String exists and is not empty? |
if (!empty($this->languageStrings[$msgid1][$plural])) { |
$text = $this->languageStrings[$msgid1][$plural]; |
} else { |
$text = preg_replace("/^[^\|]*\|/", "", ($n == 1 ? $msgid1 : $msgid2)); |
} |
if (func_num_args() > 3) { |
$args = func_get_args(); |
array_shift($args); |
array_shift($args); |
return vsprintf($text, $args); |
} |
return sprintf($text, $n); |
} |
} |
?> |
/photogallery/includes/user.class.php |
---|
0,0 → 1,121 |
<?php |
/** |
* User class. |
* |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
* @version $Id: user.class.php,v 1.5 2006/03/14 19:38:54 tamlyn Exp $ |
*/ |
/** |
* Class used to represent a user. |
* @package singapore |
* @author Tamlyn Rhodes <tam at zenology dot co dot uk> |
* @copyright (c)2003, 2004 Tamlyn Rhodes |
*/ |
class sgUser |
{ |
/** |
* Username of user. Special cases are 'guest' and 'admin'. |
* @var string |
*/ |
var $username = ""; |
/** |
* MD5 hash of password |
* @var string |
*/ |
var $userpass = "5f4dcc3b5aa765d61d8327deb882cf99"; |
/** |
* Bit-field of permissions |
* @var int |
*/ |
var $permissions = 0; |
/** |
* Space-separated list of groups of which the user is a member |
* @var string |
*/ |
var $groups = ""; |
/** |
* Email address of user |
* @var string |
*/ |
var $email = ""; |
/** |
* The name or title of the user |
* @var string |
*/ |
var $fullname = ""; |
/** |
*Description of user account |
* @var string |
*/ |
var $description = ""; |
/** |
* Statistics (what's this? I don't know!) |
* @var string |
*/ |
var $stats = ""; |
/** |
* Constructor ensures username and userpass have values |
*/ |
function sgUser($username, $userpass) |
{ |
$this->username = $username; |
$this->userpass = $userpass; |
} |
/** |
* Checks if currently logged in user is an administrator. |
* |
* @return bool true on success; false otherwise |
*/ |
function isAdmin() |
{ |
return $this->permissions & SG_ADMIN; |
} |
/** |
* Checks if currently logged in user is a guest. |
* |
* @return bool true on success; false otherwise |
*/ |
function isGuest() |
{ |
return $this->username == "guest"; |
} |
/** |
* Checks if this user is the owner of the specified item. |
* |
* @param sgItem the item to check |
* @return bool true if this user is the owner; false otherwise |
*/ |
function isOwner($item) |
{ |
return $item->owner == $this->username; |
} |
/** |
* Checks if this user is a member of the group(s) supplied |
* |
* @return bool true on success; false otherwise |
*/ |
function isInGroup($groups) |
{ |
return (bool) array_intersect(explode(" ",$groups),explode(" ",$this->groups)); |
} |
} |
?> |
/photogallery/docs/Advanced.html |
---|
0,0 → 1,200 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore - Advanced features</title> |
<link rel="stylesheet" type="text/css" href="docstyle.css" /> |
</head> |
<body> |
<h1>singapore - Advanced features</h1> |
<ul> |
<li><a href="#iifn">Info in filename</a></li> |
<li><a href="#override">Overriding settings</a></li> |
<li><a href="#hiding">Hiding galleries</a></li> |
<li><a href="#modrewrite">Using Apache mod_rewrite</a></li> |
<li><a href="#including">Including singapore into another page</a></li> |
<li><a href="#popup">Opening images in a popup</a></li> |
<li><a href="Readme.html">General readme</a></li> |
<li><a href="Development.html">Developer documentation</a></li> |
<li><a href="Translation.html">Translating singapore</a></li> |
</ul> |
<h2><a name="iifn">Info in file name</a></h2> |
<p>If singapore doesn't find a metadata file in a gallery it will try to |
extract some sensible information from the image file and directory names as |
follows:</p> |
<p>Underscores (_) are converted to spaces and the file extension is discarded |
by removing all characters after the last . (dot) in the filename. If a filename or |
directory name contains the sequence '<code>_-_</code>' (underscore hyphen underscore) |
or '<code> - </code>' (space hyphen space) then the name will be split on this |
separator. The first half will be interpreted as the artist name and the second |
half will be interpreted as the gallery or image name depending on context. If |
a separator is not found then the file or directory name is interpreted as the |
image or gallery name, respectively.</p> |
<p>For example <code>Holiday_Snaps/Bob_Fenderson_-_Pretty_picture_of_Sunset.jpg</code> |
will be translated into an image called "Pretty picture of Sunset" by "Bob |
Fenderson" in a gallery called "Holiday Snaps".</p> |
<h2><a name="override">Overriding settings</a></h2> |
<p>All configuration options may be overridden on a per-gallery and/or |
per-template basis. This means that a particular gallery may use, for example, |
a different template or language to the rest of the site. Also, templates may |
introduce their own configuration settings if they so wish.</p> |
<p>Gallery config options are stored in files named <code>gallery.ini</code> in |
the chosen gallery directory. Settings are not inherited by subgalleries; they |
affect only the current gallery and its images.</p> |
<p>Template config options are stored in files named <code>template.ini</code> |
in the chosen template directory. Some of these settings are not present in the |
default config file; they are only found in the template config file.</p> |
<p>Settings are loaded in this order: default settings (<code>singapore.ini</code>) |
> gallery settings (<code>gallery.ini</code>) > template settings |
(<code>template.ini</code>). This may be changed in the future to allow gallery |
settings to override template settings.</p> |
<p>Note that there is no restriction on which options may be overridden. |
Overriding some settings may lead to unpredictable operation (e.g. changing |
<code>pathto_galleries</code> in <code>gallery.ini</code>).</p> |
<h2><a name="hiding">Hiding galleries</a></h2> |
<p>Any gallery (except the root gallery) may be hidden from the listing view |
by prefixing the directory name with a dot (<code>.</code>). However it is still |
accessible by using its exact URL. For example consider the following directory |
structure:</p> |
<pre> |
galleries/ |
|- my_pretty_pictures/ |
| |- trees/ |
| `- flowers/ |
|- .a_hidden_gallery/ |
| |- some_embarrassing_pictures/ |
| `- .this_is_also_hidden/ |
`- some_other_things/ |
</pre> |
<p>A user browsing the root gallery (e.g. <code>www.example.com/?gallery=.</code>) |
will see <code>my_pretty_pictures</code> and <code>some_other_things</code>; |
<code>.a_hidden_gallery</code> and all its contents will be hidden from view. If, |
however, the user is supplied with the exact URL (e.g. <code>www.example.com/?gallery=./.a_hidden_gallery</code>) |
they will be able to see the contents as usual (in this case only |
<code>some_embarrassing_pictures</code> because <code>.this_is_also_hidden</code> |
is hidden as above).</p> |
<p>Since a user could guess the exact URL or discover it by some other means, |
this feature is not to be used for concealing sensitive information.</p> |
<p>NOTE: see the <a href="#modrewrite">mod_rewrite</a> section for instructions |
on renaming files starting with a . on Windows.</a></p> |
<h2><a name="modrewrite">Using Apache mod_rewrite</a></h2> |
<p>Firstly you need to ensure that mod_rewrite is available. You must be running |
<a href="http://httpd.apache.org/">Apache</a>, have mod-rewrite installed and |
enabled and furthermore be allowed to override Apache configuration directives |
on a per-directory basis with the use of .htaccess files.</p> |
<p>If you don't know the answer to the above then probably the easiest way to |
find out is to try the following instructions.</p> |
<p>First copy <code>tools/mod_rewrite.htaccess</code> to the singapore base |
directory and rename it to simply <code>.htaccess</code>. Note: Windows shines |
here as a Totally Idiotic Operating System® as it will not let you type |
filenames starting with a . kindly saying "You must type a filename". The only |
way that I know of to get around this totally pointless message is to drop into |
the command line and use <code>ren</code> to rename it. Aaaaaaaarrrrgggghhhh!</p> |
<p>Moving swiftly on...</p> |
<p>You now need to edit singapore.ini and turn on <code>use_mod_rerwite</code>. |
You also need to specify the <code>base_url</code> option. Set this to the full |
web absolute path to your installation (e.g. the bit after the .com, .org or |
whatever). For example if your gallery is accessed by typing |
www.example.com/singapore/ then the <code>base_url</code> is |
<code>/singapore/</code>.</p> |
<p>Lastly you need to edit the .htaccess file. On each of the two lines starting |
<code>RewriteRule</code>, about half way along the line there is a |
<code>/singapore/</code>. Change this to whatever you put as the <code>base_url</code> |
above.</p> |
<h3>If it doesn't work</h3> |
<p>If you get <em>404 File Not Found</em> errors then either mod_rewrite or .htaccess |
files are not enabled. If you get singapore <em>Gallery not found</em> errors |
then there might be a problem with the rewrite rules. If you get unstyled |
singapore pages with no images then then your base_path is probably wrong. If do |
get images but the pages are still unstyled then your template probably needs |
adapting to use the base_url config option. See the default template for an |
example. If you still can't work out what's wrong then just give up :P</p> |
<h2><a name="including">Including singapore into another page</a></h2> |
<p>Since v0.9.10 it has been possible to include singapore into your web design |
using external.php. Just place this code where you want singapore to appear: |
<code><?php include("path/to/singapore/external.php");?></code> (supplying |
the correct relative or absolute path to singapore instead of |
'/path/to/singapore'). There are, however, a few things that need to be noted:</p> |
<ul> |
<li>You will almost certainly need to edit your chosen template in order that |
the HTML generated is still valid. For example you do not want two <html> |
start tags, two <head> sections etc. Alternatively you can use the |
<em>external</em> template (available to download from the website) which is |
the default template with the unnecessary (X)HTML removed.</li> |
<li>If the file into which you are including singapore is named something |
other than index.php or it requires additional GET variables (such as page etc.) |
then you will need to change index_file_url to reflect this. For example if |
the page you are including singapore into is <code>site.php?page=gallery</code> |
you will need to change index_file_url to <code>site.php?page=gallery&amp;</code></li> |
<li>If you want to keep both the included singapore installation and the |
original simultaneously functional then you can place a file named |
<code>singapore.local.ini</code> in the same directory as the including file. |
If found, this file will be loaded after singapore.ini but before gallery.ini |
and template.ini. It can thus be used to provide local settings such as index_file_url |
mentioned above. Note that base_file and base_url are automatically calculated |
and should not need to be specified.</li> |
<li>If there is any content on the including page <em>before</em> external.php is |
included then singapore will not be able to send any headers which will |
prevent you from using languages with non-default character sets. The |
recommended solution is to turn on output buffering before any content is |
output and do not flush it until after external.php is included. Essentially |
a call to <code>ob_start()</code> at the beginning of the including file is |
all that is needed. <a href="http://uk.php.net/manual/en/ref.outcontrol.php">About |
output control</a>.</li> |
<li>Currently mod_rewrite doesn't work with such included installations of singapore.</li> |
</ul> |
<h2><a name="popup">Opening images in a popup</a></h2> |
<p>Firstly I must say how much I disapprove of popups. If someone wants to open |
something in a new window THEY WILL DO IT THEMSELVES! Why do you think so many |
people have popup blockers? POPUPS ARE BAD! However I have been asked how to |
make singapore open images in popup windows so often that I finally yielded and |
wrote a little bit of JavaScript to do it neatly.</p> |
<p>Open album.tpl.php in the directory of your current template (e.g. |
templates/default/album.tpl.php) and replace <code>$sg->gallery->images[$index]->thumbnailLink()</code> |
with <code>$sg->gallery->images[$index]->thumbnailPopupLink()</code>. But don't do it. It's bad.<p> |
<p>Evil I tell you...</p> |
<p><em>$Date: 2006/08/06 13:50:20 $</em></p> |
</body> |
</html> |
/photogallery/docs/Development.html |
---|
0,0 → 1,114 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore - Development</title> |
<link rel="stylesheet" type="text/css" href="docstyle.css" /> |
</head> |
<body> |
<h1>singapore - Development</h1> |
<p>The information in this file is for people who wish to contribute to |
singapore, modify it or understand how it works.</p> |
<ul> |
<li><a href="#csvformat">CSV database format</a></li> |
<li><a href="Readme.html">General readme</a></li> |
<li><a href="Advanced.html">Advanced features</a></li> |
<li><a href="Translation.html">Translating singapore</a></li> |
</ul> |
<h2><a name="csvformat">CSV database format</a></h2> |
<p>If you choose to use metadata files then each gallery must |
contain a CSV (comma separated values) file called metadata.csv |
containing the information about images in the gallery and the gallery itself. |
CSV files can be edited manually (in a text editor such as Notepad) |
or using a spreadsheet application (such as MS Excel). Care must be taken when using |
Excel to save using commas as the separator character and not tabs or semi-colons.</p> |
<p>The first line of each file stores human-readable descriptions of the fields |
and is ignored by singapore. The second line stores information about this |
gallery:</p> |
<pre> |
field 0 |
the filename of the image used to represent the gallery in the gallery list |
field 1 |
(not used) |
field 2 |
the owner of the gallery |
field 3 |
space-separated list of usergroups |
field 4 |
gallery permission flags |
field 5 |
space-separated list of categories the gallery belongs in (not used) |
field 6 |
gallery name/title |
field 7 |
artist name (optional) |
field 8 |
artist email (optional) |
field 9 |
copyright holder (optional) |
field 10 |
description of the gallery (optional) |
field 11 |
short summary of the gallery (optional) |
field 12 |
human-readable date (optional) |
field 13 onwards |
(not used) |
</pre> |
<p>Each of the following lines (3 - ...) represents an image in the gallery. |
The format is as follows:</p> |
<pre> |
field 0 |
the filename of the image |
field 1 |
the filename of the thumbnail image |
field 2 |
the owner of the image |
field 3 |
space-separated list of usergroups |
field 4 |
image permission flags |
field 5 |
space-separated list of categories the image belongs in (not used) |
field 6 |
image name/title |
field 7 |
artist name (optional) |
field 8 |
artist email (optional) |
field 9 |
copyright holder (optional) |
field 10 |
description of the image (optional) |
field 11 |
location that the image was taken/made/represents (optional) |
field 12 |
date taken/made (optional) |
field 13 |
make and model of camera used (optional) |
field 14 |
make and model of lens used (optional) |
field 15 |
make and type of film used (optional) |
field 16 |
darkroom manipulation (optional) |
field 17 |
digital manipulation (optional) |
</pre> |
<p><em>$Date: 2004/10/15 18:53:36 $</em></p> |
</body> |
</html> |
/photogallery/docs/License.txt |
---|
0,0 → 1,340 |
GNU GENERAL PUBLIC LICENSE |
Version 2, June 1991 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Everyone is permitted to copy and distribute verbatim copies |
of this license document, but changing it is not allowed. |
Preamble |
The licenses for most software are designed to take away your |
freedom to share and change it. By contrast, the GNU General Public |
License is intended to guarantee your freedom to share and change free |
software--to make sure the software is free for all its users. This |
General Public License applies to most of the Free Software |
Foundation's software and to any other program whose authors commit to |
using it. (Some other Free Software Foundation software is covered by |
the GNU Library General Public License instead.) You can apply it to |
your programs, too. |
When we speak of free software, we are referring to freedom, not |
price. Our General Public Licenses are designed to make sure that you |
have the freedom to distribute copies of free software (and charge for |
this service if you wish), that you receive source code or can get it |
if you want it, that you can change the software or use pieces of it |
in new free programs; and that you know you can do these things. |
To protect your rights, we need to make restrictions that forbid |
anyone to deny you these rights or to ask you to surrender the rights. |
These restrictions translate to certain responsibilities for you if you |
distribute copies of the software, or if you modify it. |
For example, if you distribute copies of such a program, whether |
gratis or for a fee, you must give the recipients all the rights that |
you have. You must make sure that they, too, receive or can get the |
source code. And you must show them these terms so they know their |
rights. |
We protect your rights with two steps: (1) copyright the software, and |
(2) offer you this license which gives you legal permission to copy, |
distribute and/or modify the software. |
Also, for each author's protection and ours, we want to make certain |
that everyone understands that there is no warranty for this free |
software. If the software is modified by someone else and passed on, we |
want its recipients to know that what they have is not the original, so |
that any problems introduced by others will not reflect on the original |
authors' reputations. |
Finally, any free program is threatened constantly by software |
patents. We wish to avoid the danger that redistributors of a free |
program will individually obtain patent licenses, in effect making the |
program proprietary. To prevent this, we have made it clear that any |
patent must be licensed for everyone's free use or not licensed at all. |
The precise terms and conditions for copying, distribution and |
modification follow. |
GNU GENERAL PUBLIC LICENSE |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
0. This License applies to any program or other work which contains |
a notice placed by the copyright holder saying it may be distributed |
under the terms of this General Public License. The "Program", below, |
refers to any such program or work, and a "work based on the Program" |
means either the Program or any derivative work under copyright law: |
that is to say, a work containing the Program or a portion of it, |
either verbatim or with modifications and/or translated into another |
language. (Hereinafter, translation is included without limitation in |
the term "modification".) Each licensee is addressed as "you". |
Activities other than copying, distribution and modification are not |
covered by this License; they are outside its scope. The act of |
running the Program is not restricted, and the output from the Program |
is covered only if its contents constitute a work based on the |
Program (independent of having been made by running the Program). |
Whether that is true depends on what the Program does. |
1. You may copy and distribute verbatim copies of the Program's |
source code as you receive it, in any medium, provided that you |
conspicuously and appropriately publish on each copy an appropriate |
copyright notice and disclaimer of warranty; keep intact all the |
notices that refer to this License and to the absence of any warranty; |
and give any other recipients of the Program a copy of this License |
along with the Program. |
You may charge a fee for the physical act of transferring a copy, and |
you may at your option offer warranty protection in exchange for a fee. |
2. You may modify your copy or copies of the Program or any portion |
of it, thus forming a work based on the Program, and copy and |
distribute such modifications or work under the terms of Section 1 |
above, provided that you also meet all of these conditions: |
a) You must cause the modified files to carry prominent notices |
stating that you changed the files and the date of any change. |
b) You must cause any work that you distribute or publish, that in |
whole or in part contains or is derived from the Program or any |
part thereof, to be licensed as a whole at no charge to all third |
parties under the terms of this License. |
c) If the modified program normally reads commands interactively |
when run, you must cause it, when started running for such |
interactive use in the most ordinary way, to print or display an |
announcement including an appropriate copyright notice and a |
notice that there is no warranty (or else, saying that you provide |
a warranty) and that users may redistribute the program under |
these conditions, and telling the user how to view a copy of this |
License. (Exception: if the Program itself is interactive but |
does not normally print such an announcement, your work based on |
the Program is not required to print an announcement.) |
These requirements apply to the modified work as a whole. If |
identifiable sections of that work are not derived from the Program, |
and can be reasonably considered independent and separate works in |
themselves, then this License, and its terms, do not apply to those |
sections when you distribute them as separate works. But when you |
distribute the same sections as part of a whole which is a work based |
on the Program, the distribution of the whole must be on the terms of |
this License, whose permissions for other licensees extend to the |
entire whole, and thus to each and every part regardless of who wrote it. |
Thus, it is not the intent of this section to claim rights or contest |
your rights to work written entirely by you; rather, the intent is to |
exercise the right to control the distribution of derivative or |
collective works based on the Program. |
In addition, mere aggregation of another work not based on the Program |
with the Program (or with a work based on the Program) on a volume of |
a storage or distribution medium does not bring the other work under |
the scope of this License. |
3. You may copy and distribute the Program (or a work based on it, |
under Section 2) in object code or executable form under the terms of |
Sections 1 and 2 above provided that you also do one of the following: |
a) Accompany it with the complete corresponding machine-readable |
source code, which must be distributed under the terms of Sections |
1 and 2 above on a medium customarily used for software interchange; or, |
b) Accompany it with a written offer, valid for at least three |
years, to give any third party, for a charge no more than your |
cost of physically performing source distribution, a complete |
machine-readable copy of the corresponding source code, to be |
distributed under the terms of Sections 1 and 2 above on a medium |
customarily used for software interchange; or, |
c) Accompany it with the information you received as to the offer |
to distribute corresponding source code. (This alternative is |
allowed only for noncommercial distribution and only if you |
received the program in object code or executable form with such |
an offer, in accord with Subsection b above.) |
The source code for a work means the preferred form of the work for |
making modifications to it. For an executable work, complete source |
code means all the source code for all modules it contains, plus any |
associated interface definition files, plus the scripts used to |
control compilation and installation of the executable. However, as a |
special exception, the source code distributed need not include |
anything that is normally distributed (in either source or binary |
form) with the major components (compiler, kernel, and so on) of the |
operating system on which the executable runs, unless that component |
itself accompanies the executable. |
If distribution of executable or object code is made by offering |
access to copy from a designated place, then offering equivalent |
access to copy the source code from the same place counts as |
distribution of the source code, even though third parties are not |
compelled to copy the source along with the object code. |
4. You may not copy, modify, sublicense, or distribute the Program |
except as expressly provided under this License. Any attempt |
otherwise to copy, modify, sublicense or distribute the Program is |
void, and will automatically terminate your rights under this License. |
However, parties who have received copies, or rights, from you under |
this License will not have their licenses terminated so long as such |
parties remain in full compliance. |
5. You are not required to accept this License, since you have not |
signed it. However, nothing else grants you permission to modify or |
distribute the Program or its derivative works. These actions are |
prohibited by law if you do not accept this License. Therefore, by |
modifying or distributing the Program (or any work based on the |
Program), you indicate your acceptance of this License to do so, and |
all its terms and conditions for copying, distributing or modifying |
the Program or works based on it. |
6. Each time you redistribute the Program (or any work based on the |
Program), the recipient automatically receives a license from the |
original licensor to copy, distribute or modify the Program subject to |
these terms and conditions. You may not impose any further |
restrictions on the recipients' exercise of the rights granted herein. |
You are not responsible for enforcing compliance by third parties to |
this License. |
7. If, as a consequence of a court judgment or allegation of patent |
infringement or for any other reason (not limited to patent issues), |
conditions are imposed on you (whether by court order, agreement or |
otherwise) that contradict the conditions of this License, they do not |
excuse you from the conditions of this License. If you cannot |
distribute so as to satisfy simultaneously your obligations under this |
License and any other pertinent obligations, then as a consequence you |
may not distribute the Program at all. For example, if a patent |
license would not permit royalty-free redistribution of the Program by |
all those who receive copies directly or indirectly through you, then |
the only way you could satisfy both it and this License would be to |
refrain entirely from distribution of the Program. |
If any portion of this section is held invalid or unenforceable under |
any particular circumstance, the balance of the section is intended to |
apply and the section as a whole is intended to apply in other |
circumstances. |
It is not the purpose of this section to induce you to infringe any |
patents or other property right claims or to contest validity of any |
such claims; this section has the sole purpose of protecting the |
integrity of the free software distribution system, which is |
implemented by public license practices. Many people have made |
generous contributions to the wide range of software distributed |
through that system in reliance on consistent application of that |
system; it is up to the author/donor to decide if he or she is willing |
to distribute software through any other system and a licensee cannot |
impose that choice. |
This section is intended to make thoroughly clear what is believed to |
be a consequence of the rest of this License. |
8. If the distribution and/or use of the Program is restricted in |
certain countries either by patents or by copyrighted interfaces, the |
original copyright holder who places the Program under this License |
may add an explicit geographical distribution limitation excluding |
those countries, so that distribution is permitted only in or among |
countries not thus excluded. In such case, this License incorporates |
the limitation as if written in the body of this License. |
9. The Free Software Foundation may publish revised and/or new versions |
of the General Public License from time to time. Such new versions will |
be similar in spirit to the present version, but may differ in detail to |
address new problems or concerns. |
Each version is given a distinguishing version number. If the Program |
specifies a version number of this License which applies to it and "any |
later version", you have the option of following the terms and conditions |
either of that version or of any later version published by the Free |
Software Foundation. If the Program does not specify a version number of |
this License, you may choose any version ever published by the Free Software |
Foundation. |
10. If you wish to incorporate parts of the Program into other free |
programs whose distribution conditions are different, write to the author |
to ask for permission. For software which is copyrighted by the Free |
Software Foundation, write to the Free Software Foundation; we sometimes |
make exceptions for this. Our decision will be guided by the two goals |
of preserving the free status of all derivatives of our free software and |
of promoting the sharing and reuse of software generally. |
NO WARRANTY |
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
REPAIR OR CORRECTION. |
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGES. |
END OF TERMS AND CONDITIONS |
How to Apply These Terms to Your New Programs |
If you develop a new program, and you want it to be of the greatest |
possible use to the public, the best way to achieve this is to make it |
free software which everyone can redistribute and change under these terms. |
To do so, attach the following notices to the program. It is safest |
to attach them to the start of each source file to most effectively |
convey the exclusion of warranty; and each file should have at least |
the "copyright" line and a pointer to where the full notice is found. |
<one line to give the program's name and a brief idea of what it does.> |
Copyright (C) <year> <name of author> |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Also add information on how to contact you by electronic and paper mail. |
If the program is interactive, make it output a short notice like this |
when it starts in an interactive mode: |
Gnomovision version 69, Copyright (C) year name of author |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
This is free software, and you are welcome to redistribute it |
under certain conditions; type `show c' for details. |
The hypothetical commands `show w' and `show c' should show the appropriate |
parts of the General Public License. Of course, the commands you use may |
be called something other than `show w' and `show c'; they could even be |
mouse-clicks or menu items--whatever suits your program. |
You should also get your employer (if you work as a programmer) or your |
school, if any, to sign a "copyright disclaimer" for the program, if |
necessary. Here is a sample; alter the names: |
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
<signature of Ty Coon>, 1 April 1989 |
Ty Coon, President of Vice |
This General Public License does not permit incorporating your program into |
proprietary programs. If your program is a subroutine library, you may |
consider it more useful to permit linking proprietary applications with the |
library. If this is what you want to do, use the GNU Library General |
Public License instead of this License. |
/photogallery/docs/Readme.html |
---|
0,0 → 1,599 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore - Readme</title> |
<link rel="stylesheet" type="text/css" href="docstyle.css" /> |
</head> |
<body> |
<h1>singapore v0.10.1 - Readme</h1> |
<ul> |
<li><a href="#release">Release notes</a></li> |
<li><a href="#history">Version history</a></li> |
<li><a href="#license">License information</a></li> |
<li><a href="#install">Installation</a></li> |
<li><a href="#upgrade">Upgrading</a></li> |
<li><a href="#managing">Gallery management</a></li> |
<li><a href="#permissions">Help with file permissions</a></li> |
<li><a href="#adminpermissions">The deal with admin permissions</a></li> |
<li><a href="#users">Managing users</a></li> |
<li><a href="#nomenclature">Naming of parts (glossary)</a></li> |
<li><a href="Advanced.html">Advanced features</a></li> |
<li><a href="Development.html">Developer documentation</a></li> |
<li><a href="Translation.html">Translating singapore</a></li> |
</ul> |
<h2><a name="license">Licensing information</a></h2> |
<pre> |
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ |
* <a href="http://www.sgal.org/">singapore</a> - Copyright 2002-6 Tamlyn Rhodes <tam@zenology.co.uk> * |
* * |
* singapore is free software; you can redistribute it and/or modify * |
* it under the terms of the <a href="License.txt">GNU General Public License</a> as published * |
* by the Free Software Foundation; either version 2 of the License, * |
* or (at your option) any later version. * |
* * |
* singapore is distributed in the hope that it will be useful, * |
* but WITHOUT ANY WARRANTY; without even the implied warranty * |
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * |
* See the GNU General Public License for more details. * |
* * |
* You should have received a copy of the GNU General Public License * |
* along with this; if not, write to the Free Software Foundation, * |
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * |
\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
</pre> |
<p>You are kindly requested to display a link such as the following on all |
pages generated by singapore. However in cases where this is not desirable, |
a project donation of 20USD is considered a suitable alternative.</p> |
<p class="boxed">Powered by <a href="http://www.sgal.org/">singapore</a></p> |
<h2><a name="release">Release notes</a></h2> |
<p>This is a recommended update as it addresses a critical bug in the |
template handling that could allow an attacker to view the contents of system |
files on the web server. Several other less severe bugs have been fixed |
including acces control settings inheritance in the admin which should now |
work correctly. The latest version of the 'modern' template is also included.</p> |
<h2><a name="install">Installation</a></h2> |
<ol> |
<li>Extract all the files in the archive, conserving the directory hierarchy.</li> |
<li>If you wish to change any path settings or use one of the SQL backends, |
make the necessary changes to <code>singapore.ini</code>. If you don't know |
why you might want to do this then you don't need to do it.</li> |
<li>Upload everything to your web server.</li> |
<li>Set file permissions. The directories that need to be made writable are: |
<ul> |
<li><code>data/</code> and all subdirectories and files</li> |
<li><code>galleries/</code> and all subdirectories and files</li> |
</ul> |
<a href="#permissions">Help with file permissions</a>. |
</li> |
<li>Point your browser to the <code>install/</code> directory and follow the instructions.</li> |
<li>Delete the <code>install/</code> directory to prevent unauthorised access.</li> |
<li>Log into the admin section and change the password. The username is |
<code>admin</code> and the default password is <code>password</code>.</li> |
<li>You're ready to roll! <a href="#managing">More info on how to roll...</a></li> |
</ol> |
<p>Optional but recommended:</p> |
<ul> |
<li>Have a browse through <code>singapore.ini</code> and look at the |
available options. Each option has comments explaining its function. For most |
purposes the default values will be fine but you may be able to tweak them |
to your benefit. See also <a href="Advanced.html#override">overriding default |
settings</a>.</li> |
<li>Make your own header image (<code>templates/default/images/header.gif</code>) |
with the name of your site.<br /> |
-or-<br /> |
Edit the default style sheet (<code>templates/default/main.css</code>) |
to integrate it with your site.<br /> |
-or-<br /> |
Browse the pre-existing templates available for singapore on the |
<a href="http://www.sgal.org/wiki/files/templates">templates</a> page. |
-or-<br /> |
Create your own template by editing an existing one. There is currently no |
documentation on this topic but anyone with a basic grasp of PHP should be |
able to work it out. Visit the |
<a href="http://www.sgal.org/forum/viewforum.php?id=2">templates forum</a> |
for help and advice.</li> |
</ul> |
<h2><a name="upgrade">Upgrading</a></h2> |
<p>Always back-up first!</p> |
<p>A patch is also available for people wishing only to fix the security problem.</p> |
<p>Upgrading is usually just a matter of unzipping the new version over the old. |
Your galleries, images, metadata will not be affected but the |
admin password will be reset and the root ini file (singapore.ini) will be |
overwritten. The location of log files and thumbnail cache has changed in this |
version. See the forum for |
<a href="http://www.sgal.org/forum/viewtopic.php?id=1267">instructions on |
copying your old logs over to their new location</a>. |
You can keep your old users.csv.php file. |
When new configuration options are added you will need to either add these |
to your old singapore.ini or re-edit the new singapore.ini in order to keep your |
personal settings. You may want to use a file difference utility such as |
<a href="http://winmerge.sourceforge.net">WinMerge</a> to merge the differences.</p> |
<p>The default templates will also be overwritten in an upgrade. For this reason |
it is advisable to copy the default template to a new directory when making |
customisations.</p> |
<h2><a name="uninstall">Uninstallation</a></h2> |
<p>Server generated content may be owned by the web server and it may therefore |
not be possible to delete these files via ftp. Use the |
<a href="../tools/cleanup.php">cleanup script</a> to make all server-generated |
files world writable. This should allow you to delete them like any other file.</p> |
<h2><a name="managing">Managing your galleries</a></h2> |
<p>If using the <a href="Advanced.html#iifn">info in file name</a> system then |
all management can be done |
directly on the files using, for example, an ftp client. To create new galleries |
simply create a new subdirectory of <code>galleries/</code>. To add, move or delete |
images in a gallery simply add, move or delete the image files in the |
appropriate directory.</p> |
<p>If you use the admin mode to edit your galleries or images it will |
automatically create the relevant metadata files. If these files are deleted |
singapore will revert to using <em>info in file name</em>. The username is |
<code>admin</code> and the default password is <code>password</code>.</p> |
<p>Galleries may contain <em>either</em> images or further galleries. This |
means that if you create one or more child galleries in a gallery that already |
contains images, these images will be 'hidden'. Removing these child galleries |
will make the images visible again. Galleries containing only images are called |
albums.</p> |
<h3>Bulk image uploading</h3> |
<p class="note">NOTE: this feature is experimental. It works on some servers but |
does not on others (including the sf.net servers) and I don't know why. It may |
or may not work for you.</p> |
<p>You may upload several images at the same time by first storing them in a |
PKWARE compatible ZIP file. Most archiving utilities are able to produce such |
files also sometimes referred to as <em>compressed folders</em> on Windows. You |
need an unzipping utility on your server to use this feature. Most Linux/Unix |
machines come with the free <em>unzip</em> utility by Info-Zip preinstalled but |
precompiled binaries for nearly all operating systems ever conceived can be |
found on the <a href="http://www.info-zip.org/">Info-Zip website</a>. <!--A Win32 |
version is also available here: |
<a href="http://singapore.sourceforge.net/binaries/singapore-unzip-Win32.zip">http://singapore.sourceforge.net/binaries/singapore-unzip-Win32.zip</a>.--> |
Simply place the executable in your PATH or in the singapore root directory.</p> |
<p>Upload the archive using the 'new image' option in the singapore admin and |
select 'Upload multiple files'</p> |
<p>If the archive contains only images, these will be added to the current |
gallery just as if they had been uploaded individually. If an archive contains |
subdirectories, these will be copied into the current gallery. Any images in |
the archive root directory will be imported as above. This mechanism |
may be used to upload complete directory structures including metadata.csv |
and gallery.ini files. If the archive root directory contains no images and a |
single directory, singapore will navigate into this directory and proceed to |
import the contents into the current gallery as though they were in the root |
directory.</p> |
<p>NOTE: There is a maximum size of file that PHP will allow you to upload. |
This defaults to 2MB and cannot be changed by singapore. Consult the PHP manual |
or you server's administrator for more information.</p> |
<h2><a name="permissions">Help with file permissions</a></h2> |
<p>How to make a file writable is dependent on your operating system and |
web server setup and can seem quite daunting for a beginner. One option that |
will work on nearly all Unix/Linux servers is to chmod the relevant |
files/directories to 777 (consult your FTP software documentation for help on |
using the chmod command). However this option is not considered very secure as |
anyone who has write access the web server (such as the owners of other web |
sites hosted on the same computer) can potentially write to or delete these |
directories. There may be a better way to make your files writable by your |
server but this is something you must take up with your server administrator.</p> |
<h2><a name="adminpermissions">The deal with admin permissions</a></h2> |
<p>First thing to point out is that singapore admin permissions are not related |
to unix/windows filesystem permissions. If you get a "permission denied" message |
from php about a certain file, that's the filesystem permissions discussed in a |
<a href="#permissions">separate section</a>. For the purposes of this section an |
'object' is anything that can have admin permissions associated with it; i.e. an |
image or a gallery.</p> |
<p>There are two types of users: administrators and users. Administrators can do |
everything and are not bound by permission settings. Only administrators may |
create and edit users and change ownership of objects. Ownership is set at the |
time of creation of the object to the user creating the object. The owner of an |
object may do anything to it except change the owner. Only the owner or an |
administrator may alter the permissions of an object, including changing its |
group(s).</p> |
<p>There are four kinds of action that may be either allowed or disallowed: |
read, edit, add and delete. Read permissions allow an object to be viewed. Edit |
permissions allow a user to edit (i.e. change) aspects of the object. Add |
permissions allow a user to add sub objects (i.e. images and subgalleries). This |
is obviously meaningless when applied to images but it may be used later to |
allow image comments. Finally Delete permissions allow a user to delete the |
object concerned (and any sub objects).</p> |
<p>These four permissions come in two flavours: group and world. World |
permissions apply to all users so if, for example, a gallery has the world add |
permission set then any user can add objects to it. The groups system is |
slightly less intuitive but very powerful. A user may belong to any number of |
groups. These groups are simply alphanumeric names separated by spaces. An |
object may also belong to any number of groups. If a user belongs to at least |
one group to which the object concerned also belongs then the group permissions |
are considered. For example a user has this for their groups field "team23 |
photographers friends" and an image belongs to the following groups "friends |
family" and has the group delete permission set then that user may delete the |
object since both belong to the group 'friends'.</p> |
<p>Permissions are NOT inherited from parent objects.</p> |
<p class="note">NOTE: read permissions are not currently enforced, a future |
version will prevent anyone from seeing objects that do not have sufficient read |
permissions. Note also that there is no mechanism to set image permissions this |
will be amended in a later release. Finally, since there is no database |
concurrency handling, odd things might happen if two users are making changes |
to the same gallery or image simultaneously.</p> |
<h2><a name="users">Managing users</a></h2> |
<p>As mentioned above there are two types of users: administrators and users. |
Administrators can do everything and are not bound by permission settings. Only |
administrators may create and edit users. Administrators may also edit existing |
users' details including changing their passwords though, of course, they cannot |
view their existing passwords.</p> |
<p>Users may also be suspended. This preserves all the user's details but |
prevents them from loggin in until their account is unsuspended by an |
administrator.</p> |
<p>There are two built-in accounts that cannot be deleted. The "admin" account |
is an administrator. The "guest" account is special. It is like a user account |
except that guests have no password, cannot change their details and cannot own |
objects. This means guests can only affect objects with the appropriate world |
permissions set. Any object created by a guest is owned by the special user |
"__nobody__" and has full read, edit, add and delete permissions for both world |
and group. You may disable guest access to your gallery by suspending the guest |
user.</p> |
<h2><a name="nomenclature">Naming of parts</a></h2> |
<dl> |
<dt>Installation</dt> |
<dd>an installation of singapore is contained within a website. It is usually |
in its own separate directory and contains one gallery: the root gallery.</dd> |
<dt>Root gallery</dt> |
<dd>There is only one root gallery and it is not contained within any other |
galleries. It is located directly in the directory specified by the |
<code>pathto_galleries</code> option. It is usually referred to in URLs with a |
single dot (as in <code>?gallery=.</code>).</dd> |
<dt>Gallery</dt> |
<dd>a gallery is contained within another gallery (except the root gallery |
which is contained in an installation). Galleries may contain more galleries |
and also images.</dd> |
<dt>Album</dt> |
<dd>an album is a special case of gallery that contains exactly zero |
galleries and zero or more images. In other words a gallery is called an |
album when it does not have any child galleries. So an album is a gallery |
but a gallery is not an album in much the same way that a kitchen is a room |
but a room is not a kitchen.</dd> |
<dt>Image</dt> |
<dd>an image is contained within an album or a gallery. Due to the way |
singapore operates, images will only be displayed if they are in albums since |
any images in non-album galleries will be hidden.</dd> |
<dt>Child gallery (also known as subgallery)</dt> |
<dd>this is a relative term. A child gallery is one contained within the |
gallery currently being viewed or edited. There may be zero or more.</dd> |
<dt>Parent gallery</dt> |
<dd>this is a relative term. The parent gallery is the one which contains the |
gallery currently being viewed or edited. There is always exactly one (except |
in the case of the root gallery which has no parent).</dd> |
</dl> |
<h2><a name="history">Version history</a></h2> |
<pre>Key to symbols: |
+ added |
- removed |
* fixed |
o changed |
</pre> |
<p>A complete and up-to-date CVS changelog is |
<a href="http://www.sgal.org/cvsdemo/ChangeLog">available online</a>.</p> |
<h3>0.10.1 - 2006-09-20</h3> |
<pre> |
* fixed template security issue |
+ access control settings are inherited by child galleries |
* fixed image hits total |
o updated modern template (see separate changelog) |
</pre> |
<h3>0.10.0 - 2006-05-17</h3> |
<pre> |
o code is now more object oriented and easier to understand |
+ added safe_mode hack using FTP |
+ can move & copy galleries in admin |
+ can batch delete images and galleries in admin |
o thumbnails and logs stored in each gallery |
+ thumbnails created on page load and statically linked |
+ ancestor metadata is parsed for crumb line |
o removed leading ./ from gallery id in urls |
+ next and previous gallery links |
+ 'up' links to correct page of parent gallery |
* base_path and base_url are no longer overwritten by external.php |
* fixed eastern european characters in data fields |
* fixed new lines in summary field |
* fixed image resizing bug when image size equals maxsize |
* fixed imagemagick v6.x support |
* fixed session.auto_start bug (aka login loop) |
* fixed XSS vulnerability in template & language flippers |
+ added sort by date field to galleries |
o rewritten hit logging code |
o added explicit chmod's instead of relying on umask |
o new admin error handling in preparetion for our new admin backend |
</pre> |
<h3>0.9.11 - 2004-12-15</h3> |
<pre> |
+ added SQL abstraction backend with support for MySQL and SQLite |
o changed IO class hierarchy |
o streamlined install process |
+ separated editprofile from edituser |
* fixed multiple vulnerabilities (thanks to SIG^2) |
+ added allow_dir_upload config option |
</pre> |
<h3>0.9.10 - 2004-10-20</h3> |
<pre> |
+ implemented full multi-user support with permissions |
+ reindex metadata feature in admin for importing ftp'd images |
+ language and template are now user-selectable on-the-fly |
+ language may be auto-detected from user agent headers |
+ summary field now used instead of description field |
o introduced new streamlined admin template with quicklinks |
o tidied up css classes and annotated the default stylesheet |
* fixed md5 dictionary attack vulnerability by hiding user account details |
* fixed security issue with back-references in arguments to thumb.php |
o made thumb.php reject files with extensions not in recognised_extensions |
o changed base_file config option to index_file_url |
o changed language config option to default_language |
o changed template_name config option to default_template |
+ new external.php file for integrating singapore into existing layouts |
</pre> |
<h3>0.9.9b - 2004-08-08</h3> |
<pre> |
* fixed image size calculation (again) |
</pre> |
<h3>0.9.9a - 2004-06-11</h3> |
<pre> |
* fixed multi-page galleries bug in templates |
* fixed XHTML compliance |
* fixed image size calculation |
* possibly other things |
</pre> |
<h3>0.9.9 - 2004-05-15</h3> |
<pre> |
+ added multi-image upload using ZIP files |
+ added fixed size and aspect ratio thumbnail creation |
* fixed umask functionality (thanks to afuhrmann) |
+ added navigation by clickable image map |
+ added upload_overwrite config option |
o moved url generation into separate function(s) (acsissman) |
+ enabled use of mod_rewrite with appropriate .htaccess (acsissman) |
+ added progressive jpeg option (thanks to joeforker) |
o moved i18n functions into separate class |
* made site navigation links xhtml compatible |
* fixed special characters in filenames under ImageMagick *again*? |
o introduced consistent 'gallery>album>image' naming scheme |
o GD2 used as default thumbnail_software (GD1 support unaffected) |
</pre> |
<h3>0.9.8 - 2004-01-06</h3> |
<pre> |
+ automatic recognition of most URLs in 'description' field |
+ do not process directories starting with dot (.) |
+ enabled navigation bar in supporting browsers (e.g. mozilla, opera) |
o made 'artist - name' iifn parsing optional |
* fixed bizarre sort order in admin mode |
* use htmlspecialchars instead of htmlentities |
* fixed using special chars in filenames when magic_quotes_gpc is on (again) |
* fixed code that produced 'Notice' level errors with PHP 5 |
</pre> |
<h3>0.9.7 - 2003-11-17</h3> |
<pre> |
+ added forced image resizing to fixed size |
+ added rudimentary image and gallery sort ordering |
* fixed multi-page galleries listings |
* fixed zero-width thumbnails for failed uploads |
+ added a few functions useful for templates |
+ added .jpe extension |
o changed details array format |
+ added basePath parameter to allow removed instantiation of singapore class |
o fixed some untranslated strings in admin mode |
* maybe fixed using special chars in filenames when magic_quotes_gpc is on |
+ added back-reference check to prevent file-system walking |
o merged __g functionality into _g and _ng |
</pre> |
<h3>0.9.6 - 2003-08-15</h3> |
<pre> |
o code entirely reorganised and largely re-written into classes |
+ multilanguage (i18n) support |
o interface is template driven |
+ per-gallery and per-template configuration files |
+ nested gallery support (unlimited depth) |
+ crumb line for easier navigation |
* all image and gallery names are now urlencoded |
+ many new config options |
</pre> |
<h3>0.9.5 - 2003-05-31</h3> |
<pre> |
* fixed GD2 support in thumb.php (0.9.4a always used GD1) |
- removed secret string option |
+ added config options for admin session name (allows multiple installs on same server), |
path to convert (ImageMagick), remove jpeg profile (ImageMagick), |
character encoding & site name (page title) |
o execution_timer off by default and default galleries per page set to 10 |
+ thumb.php always uses fopen on remote files (now works on windows) |
+ more checks in test.php including ImageMagick support and bugfix #743954 (upload_tmp_dir) |
</pre> |
<h3>0.9.4a - 2003-05-16</h3> |
<pre> |
+ added PNG and GIF support under GD (GIF only with compatible versions of GD) |
+ added PNG, GIF, TIFF, BMP, and support from pretty much every |
other file type under ImageMagick |
+ more checks in test.php |
* fixed image counting in iifn mode |
* fixed show_image_name_in_thumbnail_view |
+ images link back to correct page of gallery (second link) |
</pre> |
<h3>0.9.4 - 2003-05-13</h3> |
<pre> |
o changed config to ini file + global config object |
o changed directory structure (moved documentation into docs/, moved writable files into data/) |
+ gallery (thumbnail) view shows more information |
+ gallery (thumbnail) view can show image name under thumbnail (off by default) |
+ gallery (list) view shows number of images in gallery |
+ implemented random thumbnail image in gallery (list) view |
+ added test.php and setup.php (not very useful yet) |
* fixed handling of gallery_thumb_number config option |
* password change bug |
* remote file thumbnail generation with ImageMagick |
</pre> |
<h3>0.9.3 - 2003-05-10</h3> |
<pre> |
+ web admin can add and delete images and galleries |
+ added GD 2 and ImageMagic thumbnail generation support |
* does not generate any E_NOTICE errors anymore |
+ added config option for generated thumbnail JPEG quality |
* handles extended characters in gallery and image names (Piotr) |
* fixed 'images link back to correct page of gallery' |
+ added directory_mode and file_mode options |
* track_views and show_views now work independently |
o admin bar now visible everywhere when logged in |
</pre> |
<h3>0.9.2 - 2003-04-27</h3> |
<pre> |
* fixed non-expiration of admin sessions in some cases |
+ added purge cached thumbnails option |
+ new 'XP' theme |
* fixed hit logging functions |
+ added image hit log viewing in admin mode |
+ images link back to correct page of gallery |
o optimised config.php |
* fixed some css issues |
</pre> |
<h3>0.9.1 - 2003-04-23</h3> |
<pre> |
o changed database format |
+ added visible database fields for artist email, darkroom manipulation and |
digital manipulation |
+ added invisible (control) database fields for thumbnail, owner, groups and categories |
o put header and footer code into separate files |
+ implemented limited themeing support |
+ added config options for custom paths to cache, galleries, logs, themes, |
header, footer and custom css |
o improved navigation in admin mode |
+ added optional script execution timer |
* fixed proliferation of newlines in 'desc' field |
* fixed wrongly escaped characters when saving info |
</pre> |
<h3>0.9a - 2003-04-13</h3> |
<pre> |
+ added much better documentation |
</pre> |
<h3>0.9 - 2003-03-30</h3> |
<pre> |
+ admin section (allows editing image and gallery info) |
+ nicer gallery list layout |
+ filename parser for if no metadata file found |
o split into separate include files for io operations, ui generation etc |
* fixed some css issues |
+ lots of other little things |
</pre> |
<h3>0.0 (unnumbered version) - 2003-03-29</h3> |
<pre> |
o first release under GPL |
+ everything |
</pre> |
<p><em>$Date: 2006/05/18 16:14:20 $</em></p> |
</body> |
</html> |
/photogallery/docs/Translation.html |
---|
0,0 → 1,526 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore - Translation</title> |
<link rel="stylesheet" type="text/css" href="docstyle.css" /> |
</head> |
<body> |
<h1>singapore - Translation</h1> |
<ul> |
<li><a href="#intro">Introduction</a></li> |
<li><a href="#requirements">Requirements</a></li> |
<li><a href="#update">Updating a translation</a></li> |
<li><a href="#new">Starting a new translation</a></li> |
<li><a href="#header">Filling in the header section</a></li> |
<li><a href="#plurals">Plural forms</a></li> |
<li><a href="#links">Useful links</a></li> |
<li><a href="Readme.html">General readme</a></li> |
<li><a href="Advanced.html">Advanced features</a></li> |
<li><a href="Development.html">Developer documentation</a></li> |
</ul> |
<h2><a name="intro">Introduction</a></h2> |
<p>Thank you for taking an interest in open source development! |
Translating singapore is a matter of editing a single file and |
then running a script on it. What could be simpler?</p> |
<p>Language strings are stored in standard GNU Gettext PO (portable object) |
files which means you can (at least in theory <a href="#foot1" name="note1"><sup>1</sup></a>) |
use all currently available PO editors such as |
<a href="http://poedit.sourceforge.net/">poEdit</a> to make your |
translations.</p> |
<p>For added convenience strings for each language are split into two sections: |
one for normal gallery operation and another for strings that are only used in |
admin mode. This means that admin strings are not needlessly loaded for every |
page and also that translators have the choice of only translating the standard |
strings or going the whole way and translating the admin strings too.</p> |
<p>It is a good idea for all translators and potential translators to join the |
<a href="http://lists.sourceforge.net/lists/listinfo/singapore-devel">development |
mailing list</a>. Use this, the |
<a href="http://singapore.sourceforge.net/forum/viewforum.php?f=6">internationalisation forum</a> |
and the |
<a href="http://sourceforge.net/tracker/?atid=611769&group_id=77687">translations tracker</a> |
to interact with other translators and developers.</p> |
<p class="boxed"><a href="#note1" name="foot1">1</a>The reason for the "in theory" |
is that many PO editors do not support the plural forms that singapore makes use |
of - even though they are defined and supported by GNU Gettext. poEdit does |
support plural forms since v1.3 and is highly recommended. Alternatively it is |
just as easy to use a standard text editor to make your translations.</p> |
<h2><a name="requirements">Requirements</a></h2> |
<p>No further software is required for using the multilanguage capabilities of |
singapore. However the extract and merge tools use xgettext and msgmerge |
respectively. Both these programs are part of GNU Gettext which is already |
installed on most Linux distributions. A package of the relevant gettext |
binaries for Windows is available here: |
<a href="http://singapore.sourceforge.net/binaries/singapore-gettext-Win32.zip">http://singapore.sourceforge.net/binaries/singapore-gettext-Win32.zip</a>. |
The path to xgettext is stored in <code>tools/extract.php</code> and the path to |
msgmerge is stored in <code>tools/merge.php</code>. However if the gettext programs |
are in your PATH or in the <code>tools/</code> directory itself then you do not |
need to edit anything.</p> |
<h2><a name="update">Updating a translation</a></h2> |
<p>Each singapore release requires the language files to be updated slightly. |
First make sure you have the latest available translation (the |
<a href="http://sourceforge.net/tracker/?atid=611769&group_id=77687">translations tracker</a> |
is a good place to check for this). Now you need to merge in the new untranslated |
strings and remove the obsolete ones (this may have already been done |
but there's no harm in doing it again). Place the old PO file in the locale |
directory of an installation of the latest version of singapore and use the |
<a href="../tools/merge.php">merge</a> script provided.</p> |
<p>Now proceed translating the strings as described below. Finally, attach the |
updated PO file to the appropriate tracker item making sure to state which |
version of singapore it is for.</p> |
<h2><a name="new">Starting a new translation</a></h2> |
<p>The very first thing to do is submit a tracker item on the |
<a href="http://sourceforge.net/tracker/?atid=611769&group_id=77687">translations tracker</a> |
to inform people of your intentions so that two or more people do not needlessly |
spend time translating the same files for the same language. Once you have |
completed your translations you can attach the files to the tracker item.</p> |
<p>All language files are kept in a single directory (<code>locale/</code> by |
default). They are named as follows:</p> |
<ul> |
<li><code>singapore.pot</code> - |
untranslated standard language strings template in PO format</li> |
<li><code>singapore.admin.pot</code> - |
untranslated admin language strings template in PO format</li> |
<li><code>singapore.<em>LANG</em>.po</code> - |
translated standard language strings in PO format</li> |
<li><code>singapore.admin.<em>LANG</em>.po</code> - |
translated admin language strings in PO format</li> |
<li><code>singapore.<em>LANG</em>.pmo</code> - |
translated standard strings as compiled PHP serialized object</li> |
<li><code>singapore.admin.<em>LANG</em>.pmo</code> - |
translated admin strings as compiled PHP serialized object</li> |
</ul> |
<p>where <code><em>LANG</em></code> represents the ISO639 language code of the chosen |
language (e.g. <code>de</code> for German, <code>en</code> for English, |
<code>en-gb</code> for English (United Kingdom)). A more comprehensive list of |
language codes may be found here: |
<a href="http://www.rickbull.co.uk/tutorials/HTML/Useful%20Information/language_codes.php">http://www.rickbull.co.uk/tutorials/HTML/Useful%20Information/language_codes.php</a></p> |
<p>Start by copying a PO template file (<code>singapore.pot</code> if you |
are translating the standard strings or <code>singapore.admin.pot</code> if you |
are translating the admin strings) and naming it appropriately for your language |
as described above. Now open the file in your chosen PO editor or a plain text |
editor and set about translating the strings.</p> |
<p>You also need to fill in certain parts of the <a href="#header">PO file |
header</a>. You may do this at any stage of the translation.</p> |
<p>NOTES:</p> |
<ol> |
<li>Strings in the form "crumb line|You are here:"<br /> |
In these cases the text up to and including the vertical bar, |, should NOT |
be included in the translation. They are simply hints for the translator.</li> |
<li>Strings in the form "Showing %s-%s of %s"<br /> |
In these cases each %s will be replaced at runtime by a number or string in |
order from left to right according to the rules of <code>printf()</code>. |
Essentially each %s is a placeholder and so needs to be present at the |
appropriate place in the translated string.<br /> |
However some languages may require the order of the arguments to be changed. |
For example if instead of "Showing 1-10 of 15" you want to say |
"Out of 15 objects 1-10 are shown" then you must use the argument swapping |
syntax of <code>printf()</code>. More details on this may be found here: |
<a href="http://www.php.net/sprintf">http://www.php.net/sprintf</a></li> |
<li>Strings with plurals<br /> |
You must correctly specify the <a href="#plurals">Plural-forms</a> header field |
in order to make use of plural forms. Put each plural in its own |
<code>msgstr[<em>x</em>]</code> where x is a number between 0 (inclusive) and |
the nplurals number you specified in the header (see examples below).</li> |
<li>Using a text-editor<br /> |
When translating an entry you must leave the English language strings |
(those on lines starting <code>msgid</code>) untouched and insert the |
translated strings between the double-quotes on the following lines (those |
starting <code>msgstr</code> or <code>msgstr[<em>x</em>]</code> in the case of |
plurals).</li> |
<li>Obsolete entries<br /> |
When updating a PO file, obsolete entries (i.e. those strings which appeared |
in the previous version but do not in the current version) are placed at the |
end of the PO file and prepended by <code>#~</code>. There is no need to |
translate these entries as they are ignored by the compiler.</li> |
</ol> |
<p>Once you have translated all the strings and filled in the header, you need |
to compile the PO file into a PHP serialized object file for use with |
singapore. Do this using the <a href="../tools/compile.php">compile</a> script |
provided in the <code>tools/</code> directory of the singapore distribution.</p> |
<p>And that's it!</p> |
<p>Now go and attach your translated PO file(s) to the tracker item you created |
before starting the translation so that everyone else can make use of it.</p> |
<h2>Examples</h2> |
<p>The following string |
<pre class="boxed"> |
# File: ../includes/singapore.class.php, line: 247 |
#, c-format |
msgid "Page created in %s seconds" |
msgstr "" |
</pre> |
when translated into French becomes |
<pre class="boxed"> |
# File: ../includes/singapore.class.php, line: 247 |
#, c-format |
msgid "Page created in %s seconds" |
msgstr "Page créée en %s secondes" |
</pre> |
and the following string |
<pre class="boxed"> |
# File: ../includes/admin.class.php, line: 173 |
msgid "admin bar|Edit image" |
msgstr "" |
</pre> |
when translated into Italian becomes |
<pre class="boxed"> |
# File: ../includes/admin.class.php, line: 173 |
msgid "admin bar|Edit image" |
msgstr "Modifica l'immagine" |
</pre> |
and the following string |
<pre class="boxed"> |
# File: ../includes/singapore.class.php, line: 530 |
#, c-format |
msgid "%s gallery" |
msgid_plural "%s galleries" |
msgstr[0] "" |
</pre> |
when translated into Spanish becomes |
<pre class="boxed"> |
# File: ../includes/singapore.class.php, line: 530 |
#, c-format |
msgid "%s gallery" |
msgid_plural "%s galleries" |
msgstr[0] "%s galería" |
msgstr[1] "%s galerías" |
</pre> |
</p> |
<h2><a name="header">Filling in the header section</a></h2> |
<p class="note">NOTE: This section is mainly copied from the |
<a href="http://www.gnu.org/manual/gettext/html_chapter/gettext_5.html#SEC35">section 5.2</a> |
of the GNU Gettext manual.</p> |
<p>The initial comments "SOME DESCRIPTIVE TITLE", "YEAR" and |
"FIRST AUTHOR <EMAIL@ADDRESS>, YEAR" ought to be replaced by |
sensible information.</p> |
<h3>The following fields must be filled in correctly:</h3> |
<dl> |
<dt>Content-Type</dt> |
<dd>Replace <samp>ISO-8859-1</samp> with the |
character encoding used for your language, in your locale, or |
UTF-8. This field is needed for correct operation of the |
<code>msgmerge</code> program, as well |
as for users whose locale's character encoding differs from yours. |
<p>The following encodings are frequently used for the corresponding |
languages.</p> |
<ul> |
<li><code>ISO-8859-1</code> for Afrikaans, Albanian, Basque, |
Catalan, Dutch, English, Estonian, Faroese, Finnish, French, |
Galician, German, Greenlandic, Icelandic, Indonesian, Irish, |
Italian, Malay, Norwegian, Portuguese, Spanish, Swedish,</li> |
<li><code>ISO-8859-2</code> for Croatian, Czech, Hungarian, |
Polish, Romanian, Serbian, Slovak, Slovenian,</li> |
<li><code>ISO-8859-3</code> for Maltese,</li> |
<li><code>ISO-8859-5</code> for Macedonian, Serbian,</li> |
<li><code>ISO-8859-6</code> for Arabic,</li> |
<li><code>ISO-8859-7</code> for Greek,</li> |
<li><code>ISO-8859-8</code> for Hebrew,</li> |
<li><code>ISO-8859-9</code> for Turkish,</li> |
<li><code>ISO-8859-13</code> for Latvian, Lithuanian,</li> |
<li><code>ISO-8859-15</code> for Basque, Catalan, Dutch, English, |
Finnish, French, Galician, German, Irish, Italian, Portuguese, |
Spanish, Swedish,</li> |
<li><code>KOI8-R</code> for Russian,</li> |
<li><code>KOI8-U</code> for Ukrainian,</li> |
<li><code>CP1251</code> for Bulgarian, Byelorussian,</li> |
<li><code>GB2312</code>, <code>GBK</code>, <code>GB18030</code> |
for simplified writing of Chinese,</li> |
<li><code>BIG5</code>, <code>BIG5-HKSCS</code> for traditional |
writing of Chinese,</li> |
<li><code>EUC-JP</code> for Japanese,</li> |
<li><code>EUC-KR</code> for Korean,</li> |
<li><code>TIS-620</code> for Thai,</li> |
<li><code>UTF-8</code> for any language, including those listed |
above.</li> |
</ul> |
<p>The character encoding name can be written in either upper or |
lower case. Usually upper case is preferred.</p> |
</dd> |
<dt>Plural-Forms</dt> |
<dd>See the <a href="#plurals">plural forms</a> section.</dd> |
</dl> |
<h3>The following fields should be filled in:</h3> |
<dl> |
<dt>Project-Id-Version</dt> |
<dd>This is the name and version of the package.</dd> |
<dt>Last-Translator</dt> |
<dd>Fill in your name and email address (without double |
quotes).</dd> |
<dt>Language-Team</dt> |
<dd>Fill in the English name of the language followed by the native name |
of the language in brackets. E.g. <i>"Language-Team: German (Deutsch)\n"</i><br /> |
Note this is different from the GNU specification but is required in order |
for the language flipper function to work. |
</dd> |
</dl> |
<h3>The following fields may be left alone:</h3> |
<dl> |
<dt>POT-Creation-Date</dt> |
<dd>This has already been filled in by <code>xgettext</code>.</dd> |
<dt>PO-Revision-Date</dt> |
<dd>You don't need to fill this in. It should be filled by the editor when |
you save the file.</dd> |
<dt>Content-Transfer-Encoding</dt> |
<dd>Set this to <code>8bit</code>.</dd> |
</dl> |
<h2><a name="plurals">Plural forms</a></h2> |
<p class="note">NOTE: This section is mainly copied from the |
<a href="http://www.gnu.org/manual/gettext/html_chapter/gettext_10.html#SEC150">section 10.2.5</a> |
of the GNU Gettext manual.</p> |
<p>The Plural-forms field in the PO header is used to calculate which plural |
form of a word to use. In English there are only two plural forms but other |
languages have only one or as many as four.</p> |
<p>Please check the list below to see if your language is listed. If it is |
then use the corresponding string. If not then you can either write it yourself |
(details below and in the gettext manual) or email a member of the team |
describing how your langauge works (e.g. (not real) 0 car, 1-2 cars, 3 caren, 5+ carii) |
and we will write one for you. |
<dl> |
<dt>Only one form:</dt> |
<dd>Some languages only require one single form. There is no |
distinction between the singular and plural form. An appropriate |
header entry would look like this: |
<pre>Plural-Forms: nplurals=1; plural=0;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Finno-Ugric family</dt> |
<dd>Hungarian</dd> |
<dt>Asian family</dt> |
<dd>Japanese, Korean</dd> |
<dt>Turkic/Altaic family</dt> |
<dd>Turkish</dd> |
</dl> |
</dd> |
<dt>Two forms, singular used for one only</dt> |
<dd>This is the form used in most existing programs since it is |
what English is using. A header entry would look like this: |
<pre>Plural-Forms: nplurals=2; plural=n==1 ? 0 : 1;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Germanic family</dt> |
<dd>Danish, Dutch, English, German, Norwegian, Swedish</dd> |
<dt>Finno-Ugric family</dt> |
<dd>Estonian, Finnish</dd> |
<dt>Latin/Greek family</dt> |
<dd>Greek</dd> |
<dt>Semitic family</dt> |
<dd>Hebrew</dd> |
<dt>Romanic family</dt> |
<dd>Italian, Portuguese, Spanish</dd> |
<dt>Artificial</dt> |
<dd>Esperanto</dd> |
</dl> |
</dd> |
<dt>Two forms, singular used for zero and one</dt> |
<dd>Exceptional case in the language family. The header entry would be: |
<pre>Plural-Forms: nplurals=2; plural=n>1;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Romanic family</dt> |
<dd>French, Brazilian Portuguese</dd> |
</dl> |
</dd> |
<dt>Three forms, special case for zero</dt> |
<dd>The header entry would be: |
<pre>Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Baltic family</dt> |
<dd>Latvian</dd> |
</dl> |
</dd> |
<dt>Three forms, special cases for one and two</dt> |
<dd>The header entry would be: |
<pre>Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Celtic</dt> |
<dd>Gaeilge (Irish)</dd> |
</dl> |
</dd> |
<dt>Three forms, special case for numbers ending in 1[2-9]</dt> |
<dd>The header entry would look like this: |
<pre>Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Baltic family</dt> |
<dd>Lithuanian</dd> |
</dl> |
</dd> |
<dt>Three forms, special cases for numbers ending in 1 and 2, 3, |
4, except those ending in 1[1-4]</dt> |
<dd>The header entry would look like this: |
<pre>Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Slavic family</dt> |
<dd>Croatian, Czech, Russian, Slovak, Ukrainian</dd> |
</dl> |
</dd> |
<dt>Three forms, special case for one and some numbers ending in |
2, 3, or 4</dt> |
<dd>The header entry would look like this: |
<pre>Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Slavic family</dt> |
<dd>Polish</dd> |
</dl> |
</dd> |
<dt>Four forms, special case for one and all numbers ending in |
02, 03, or 04</dt> |
<dd>The header entry would look like this: |
<pre>Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;</pre> |
<p>Languages with this property include:</p> |
<dl> |
<dt>Slavic family</dt> |
<dd>Slovenian</dd> |
</dl> |
</dd> |
</dl> |
<h3>How the Plural-forms header works:</h3> |
<p>The <code>nplurals</code> value must be a decimal number which |
specifies how many different plural forms exist for this |
language. The string following <code>plural</code> is an |
expression which is using the C language syntax. Exceptions are |
that no negative numbers are allowed, numbers must be decimal, |
and the only variable allowed is <code>n</code>. This expression |
will be evaluated whenever one of the plural functions is called. |
The numeric value passed to |
these functions is then substituted for all uses of the variable |
<code>n</code> in the expression. The resulting value then must |
be greater or equal to zero and smaller than the value given as |
the value of <code>nplurals</code>.</p> |
<h2><a name="links">Useful links</a></h2> |
<ul> |
<li><a href="http://singapore.sourceforge.net/forum/viewforum.php?f=6">singapore i18n forum</a></li> |
<li><a href="http://www.gnu.org/software/gettext/">GNU Gettext homepage</a></li> |
<li><a href="http://www.gnu.org/manual/gettext/">GNU Gettext manual</a> - lots |
of technical information about the PO format</li> |
<li><a href="http://poedit.sourceforge.net/">poEdit</a> - an open source cross-platform PO editor</li> |
<li><a href="http://www.gtranslator.org/">gTranslator</a> - a PO editor for GNOME</li> |
<li><a href="http://i18n.kde.org/tools/kbabel/">KBabel</a> - a PO editor for KDE</li> |
</ul> |
<p><em>$Date: 2004/11/01 08:17:33 $</em></p> |
</body> |
</html> |
/photogallery/docs/docstyle.css |
---|
0,0 → 1,106 |
body { |
margin: 1em; |
font: small sans-serif; |
color: #000; |
background-color: #fff; |
} |
p, td, th, li, dd, dt { |
font: small sans-serif; |
} |
h1, h2, h3, h4{ |
color: #f60; |
} |
h1, h2 { |
font-size: medium; |
border-bottom: 1px solid #ccc; |
letter-spacing: 0.3em; |
text-transform: uppercase; |
} |
code, pre { |
color: #444; |
} |
p, td, th, li, dt, h3, h4, pre { |
margin-left: 2em; |
} |
dd { |
margin-left: 3em; |
} |
dt { |
margin-top: 0.5em; |
} |
a:link { |
color: #09f; |
text-decoration: underline; |
} |
a:visited { |
color: #05a; |
text-decoration: underline; |
} |
a:hover { |
text-decoration: none; |
} |
input, textarea, select, .inputbox { |
border: 1px solid #f60; |
color: #000; |
background-color: #fff; |
} |
input.radio { |
border: none; |
background-color: #fff; |
} |
input.button { |
font-weight: bold; |
border: 1px outset #fff; |
color: #fff; |
background-color: #f60; |
} |
ul.things > li { |
margin-top: 0.75em; |
} |
.note { |
color: #d00; |
} |
.error { |
color: #f00; |
} |
.boxed, .note, #progressBox { |
border: 1px dashed #ccc; |
padding: 0.5em; |
} |
#progressBox { |
float: right; |
background-color: inherit; |
} |
#progressBox li.currentStep { |
color: #f60; |
font-size: medium; |
} |
#progressBox p, #progressBox li, #progressBox ol { |
font-weight: bold; |
margin: 0em; |
} |
a.button { |
margin-top: 2em; |
display: block; |
} |
/photogallery/docs/index.html |
---|
0,0 → 1,27 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<title>singapore documentation</title> |
<link rel="stylesheet" type="text/css" href="docstyle.css" /> |
</head> |
<body> |
<h1>singapore documentation</h1> |
<ul> |
<li><a href="Readme.html">General readme including installation instructions</a></li> |
<li><a href="Advanced.html">Advanced features and how to use them</a></li> |
<li><a href="Translation.html">Translating singapore</a></li> |
<li><a href="Development.html">Developer documentation</a></li> |
<li><a href="http://singapore.sourceforge.net/">Home page</a></li> |
<li><a href="http://singapore.sourceforge.net/forum/">Support forum</a></li> |
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=77687&package_id=78646">Download latest version</a></li> |
</ul> |
<p><a href="../">Return</a> to singapore.</p> |
</body> |
</html> |
/photogallery/data/index.php |
---|
0,0 → 1,0 |
<?php header("Location: ../") ?> |
/photogallery/data/languages.cache |
---|
0,0 → 1,0 |
a:32:{s:2:"bg";s:9:"Bulgarian";s:2:"ca";s:16:"Catalan (Català)";s:2:"cs";s:5:"Czech";s:7:"cs_utf8";s:13:"Czech (UTF-8)";s:2:"da";s:14:"Danish (Dansk)";s:2:"de";s:16:"German (Deutsch)";s:2:"en";s:7:"English";s:2:"es";s:17:"Spanish (Español)";s:2:"et";s:16:"Estonian (Eesti)";s:2:"fr";s:17:"French (Français)";s:2:"hr";s:19:"Croatian (Hrvatski)";s:2:"hu";s:18:"Hungarian (Magyar)";s:2:"is";s:21:"Icelandic (Ãslenska)";s:2:"it";s:18:"Italian (Italiano)";s:2:"ja";s:17:"Japanese (EUC-JP)";s:7:"ja_utf8";s:16:"Japanese (UTF-8)";s:2:"ko";s:15:"Korean (EUC-KR)";s:2:"nl";s:18:"Dutch (Nederlands)";s:5:"no_nb";s:24:"Norwegian (Norsk bokmål)";s:2:"pl";s:15:"Polish (Polski)";s:5:"pt_br";s:19:"Portuguese (Brazil)";s:2:"ro";s:17:"Romanian (Romåna)";s:2:"ru";s:16:"Russian (KOI8-R)";s:2:"sk";s:19:"Slovak (Sloveský) ";s:2:"sl";s:21:"Slovenian (Slovensko)";s:2:"sv";s:17:"Swedish (Svenska)";s:2:"tr";s:16:"Turkish (Türkçe)";s:2:"vi";s:18:"Vietnamese (UTF-8)";s:5:"zh_cn";s:27:"Simplified Chinese (GB2312)";s:10:"zh_cn_utf8";s:26:"Simplified Chinese (UTF-8)";s:5:"zh_tw";s:26:"Traditional Chinese (Big5)";s:10:"zh_tw_utf8";s:27:"Traditional Chinese (UTF-8)";} |
/photogallery/data/users.csv.php |
---|
0,0 → 1,3 |
<?php die("The contents of this file are hidden"); ?>username,md5(pass),permissions,group(s),email,name,description,stats |
admin,5f4dcc3b5aa765d61d8327deb882cf99,1024,"","","Administrator","Default administrator account","" |
guest,5f4dcc3b5aa765d61d8327deb882cf99,2048,"","","Guest","Restricted use account for guests who do not have a user account","" |