diff --git a/inc/page.php b/inc/page.php
index ff2a24a..1e858c2 100644
--- a/inc/page.php
+++ b/inc/page.php
@@ -4,14 +4,18 @@ class Page {
public function __construct($name, $header = true) {
ini_set('mbstring.internal_encoding', 'UTF-8');
ini_set('default_charset', 'utf-8');
+ require_once './inc/settings.php';
+ $settings = new Settings();
+ setlocale(LC_ALL, $settings->lang);
+ require_once './lang/'.$settings->lang.'.php';
+ $lang = new Lang();
+ $this->lang = $lang;
header('Content-Type: text/html; charset=UTF-8');
$this->time = microtime(true);
if ($header) {
require_once './inc/header.php';
}
- require_once './inc/settings.php';
- $settings = new Settings();
$this->conn = $settings->conn;
$this->settings = $settings;
$this->uuid_name_cache = array();
@@ -32,15 +36,15 @@ class Page {
$this->set_info($info);
$this->permanent = array(
- 'ban' => 'Permanent Ban',
- 'mute' => 'Permanent Mute',
- 'warn' => 'Permanent',
+ 'ban' => $this->lang->page_perm_ban,
+ 'mute' => $this->lang->page_perm_mute,
+ 'warn' => $this->lang->page_perm_warn,
'kick' => null,
);
$this->expired = array(
- 'ban' => '(Unbanned)',
- 'mute' => '(Unmuted)',
- 'warn' => '(Expired)',
+ 'ban' => $this->lang->page_expire_ban,
+ 'mute' => $this->lang->page_expire_mute,
+ 'warn' => $this->lang->page_expire_warn,
'kick' => null,
);
@@ -60,28 +64,28 @@ class Page {
return array(
"type" => "ban",
"table" => $settings->table['bans'],
- "title" => "Bans",
+ "title" => $this->lang->page_title_ban,
);
case "mute":
case "mutes":
return array(
"type" => "mute",
"table" => $settings->table['mutes'],
- "title" => "Mutes",
+ "title" => $this->lang->page_title_mute,
);
case "warn":
case "warnings":
return array(
"type" => "warn",
"table" => $settings->table['warnings'],
- "title" => "Warnings",
+ "title" => $this->lang->page_title_warn,
);
case "kick":
case "kicks":
return array(
"type" => "kick",
"table" => $settings->table['kicks'],
- "title" => "Kicks",
+ "title" => $this->lang->page_title_kick,
);
default:
return array(
@@ -257,7 +261,7 @@ class Page {
* @return string
*/
function millis_to_date($millis) {
- return date($this->settings->date_format, $millis / 1000);
+ return strftime($this->settings->date_format, $millis / 1000);
}
function active($row, $field = 'active') {
@@ -323,7 +327,7 @@ class Page {
echo '
@@ -362,7 +366,7 @@ class Page {
if ($next_active) {
$pager_next = "
$pager_next";
}
- $pager_count = "
";
+ $pager_count = '
'.$this->lang->page_page.' '.$cur.'/'.$pages.'
';
echo "$pager_prev $pager_next $pager_count";
}
diff --git a/inc/settings.php b/inc/settings.php
index 5685f9f..ce4895d 100644
--- a/inc/settings.php
+++ b/inc/settings.php
@@ -4,6 +4,9 @@ final class Settings {
public static $TRUE = "1", $FALSE = "0";
public function __construct($connect = true) {
+ // Server lang, use standard abbreviations
+ $this->lang = 'en_US'
+
// Server name, shown on the main page and on the header
$this->name = 'LiteBans';
diff --git a/index.php b/index.php
index 00dcfdd..1970d9d 100644
--- a/index.php
+++ b/index.php
@@ -6,9 +6,9 @@ $page->print_title();
?>
-
Welcome to settings->name; ?>'s Ban List.
+
lang->index_welcome1; echo $page->settings->name; echo $page->lang->index_welcome2; ?>
-
Here is where all of our punishments are listed.
+
print_footer(false); ?>
diff --git a/info.php b/info.php
index a914c48..7b482a1 100644
--- a/info.php
+++ b/info.php
@@ -54,11 +54,11 @@ class BanInfo extends Info {
function basic_info($row, $player_name) {
$page = $this->page;
return array(
- 'Banned Player' => $this->punished_avatar($player_name, $row),
- 'Banned By' => $this->moderator_avatar($row),
- 'Ban Reason' => $page->clean($row['reason']),
- 'Ban Placed' => $page->millis_to_date($row['time']),
- 'Expires' => $page->expiry($row),
+ $page->lang->info_banned_player => $this->punished_avatar($player_name, $row),
+ $page->lang->info_banned_by => $this->moderator_avatar($row),
+ $page->lang->info_banned_reason => $page->clean($row['reason']),
+ $page->lang->info_banned_when => $page->millis_to_date($row['time']),
+ $page->lang->info_banned_expiry => $page->expiry($row),
);
}
}
@@ -67,28 +67,28 @@ class MuteInfo extends Info {
function basic_info($row, $player_name) {
$page = $this->page;
return array(
- 'Muted Player' => $this->punished_avatar($player_name, $row),
- 'Muted By' => $this->moderator_avatar($row),
- 'Mute Reason' => $page->clean($row['reason']),
- 'Mute Placed' => $page->millis_to_date($row['time']),
- 'Expires' => $page->expiry($row),
+ $page->lang->info_muted_player => $this->punished_avatar($player_name, $row),
+ $page->lang->info_muted_by => $this->moderator_avatar($row),
+ $page->lang->info_muted_reason => $page->clean($row['reason']),
+ $page->lang->info_muted_when => $page->millis_to_date($row['time']),
+ $page->lang->info_muted_expiry => $page->expiry($row),
);
}
}
class WarnInfo extends Info {
function name() {
- return "Warning";
+ return $page->lang->info_warn_name;
}
function basic_info($row, $player_name) {
$page = $this->page;
return array(
- 'Warned Player' => $this->punished_avatar($player_name, $row),
- 'Warned By' => $this->moderator_avatar($row),
- 'Warning Reason' => $page->clean($row['reason']),
- 'Warning Placed' => $page->millis_to_date($row['time']),
- 'Expires' => $page->expiry($row),
+ $page->lang->info_warn_player => $this->punished_avatar($player_name, $row),
+ $page->lang->info_warn_by => $this->moderator_avatar($row),
+ $page->lang->info_warn_reason => $page->clean($row['reason']),
+ $page->lang->info_warn_when => $page->millis_to_date($row['time']),
+ $page->lang->info_warn_expiry => $page->expiry($row),
);
}
}
@@ -97,10 +97,10 @@ class KickInfo extends Info {
function basic_info($row, $player_name) {
$page = $this->page;
return array(
- 'Kicked Player' => $this->punished_avatar($player_name, $row),
- 'Kicked By' => $this->moderator_avatar($row),
- 'Kick Reason' => $page->clean($row['reason']),
- 'Kick Date' => $page->millis_to_date($row['time']),
+ $page->lang->info_kick_player => $this->punished_avatar($player_name, $row),
+ $page->lang->info_kick_by => $this->moderator_avatar($row),
+ $page->lang->info_kick_reason => $page->clean($row['reason']),
+ $page->lang->info_kick_when => $page->millis_to_date($row['time']),
);
}
}
@@ -110,15 +110,15 @@ if ((substr($_SERVER['SCRIPT_NAME'], -strlen("info.php"))) !== "info.php") {
return;
}
-isset($_GET['type'], $_GET['id']) && is_string($_GET['type']) && is_string($_GET['id']) or die("Missing arguments (type, id).");
+isset($_GET['type'], $_GET['id']) && is_string($_GET['type']) && is_string($_GET['id']) or die($page->lang->info_error_missingarg);
$type = $_GET['type'];
$id = $_GET['id'];
$page = new Page($type);
-($page->type !== null) or die("Unknown page type requested.");
+($page->type !== null) or die($page->lang->info_error_unknown);
-filter_var($id, FILTER_VALIDATE_INT) or die("Invalid ID.");
+filter_var($id, FILTER_VALIDATE_INT) or die($page->lang->info_error_invalidid);
$id = (int)$id;
@@ -130,11 +130,11 @@ $query = "SELECT $sel FROM $table WHERE id=? LIMIT 1";
$st = $page->conn->prepare($query);
if ($st->execute(array($id))) {
- ($row = $st->fetch()) or die("Error: $type not found in database.");
+ ($row = $st->fetch()) or die($page->lang->info_error_notfound1.$type.$page->lang->info_error_notfound2);
$player_name = $page->get_name($row['uuid']);
- ($player_name !== null) or die("Error: Player name not found.");
+ ($player_name !== null) or die($page->lang->info_error_notplayer);
$info = Info::create($row, $page, $type);
diff --git a/kicks.php b/kicks.php
index 0ffe9c7..8a176c3 100644
--- a/kicks.php
+++ b/kicks.php
@@ -16,10 +16,10 @@ while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
if ($player_name === null) continue;
$page->print_table_rows($row, array(
- 'Name' => $page->get_avatar($player_name, $row['uuid']),
- 'Kicked By' => $page->get_avatar($page->get_banner_name($row), $row['banned_by_uuid']),
- 'Reason' => $page->clean($row['reason']),
- 'Date' => $page->millis_to_date($row['time']),
+ $page->lang->kicks_player => $page->get_avatar($player_name, $row['uuid']),
+ $page->lang->kicks_by => $page->get_avatar($page->get_banner_name($row), $row['banned_by_uuid']),
+ $page->lang->kicks_reason => $page->clean($row['reason']),
+ $page->lang->kicks_when => $page->millis_to_date($row['time']),
));
}
$page->table_end();
diff --git a/lang/cs_CZ.utf8.php b/lang/cs_CZ.utf8.php
new file mode 100644
index 0000000..a584b74
--- /dev/null
+++ b/lang/cs_CZ.utf8.php
@@ -0,0 +1,90 @@
+index_welcome1 = 'Vítej na ';
+ $this->index_welcome2 = '.';
+ $this->index_allsins = 'Zde nalezneš vypsány všechny své tresty.';
+ $this->header_index = 'Úvod';
+ $this->header_bans = 'Bany';
+ $this->header_mutes = 'Umlčení';
+ $this->header_warnings = 'Varování';
+ $this->header_kicks = 'Vyhození';
+ $this->page_perm_ban = 'Trvalý ban';
+ $this->page_perm_mute = 'Umlčen navždy';
+ $this->page_perm_warn = 'Trvalé varování';
+ $this->page_expire_ban = '(Odbanován)';
+ $this->page_expire_mute = '(Odmlčen)';
+ $this->page_expire_warn = '(Vypršel)';
+ $this->page_title_ban = 'Bany';
+ $this->page_title_mute = 'Umlčení';
+ $this->page_title_warn = 'Varování';
+ $this->page_title_kick = 'Vyhození';
+ $this->page_check_user = "Hráč";
+ $this->page_check_submit = "Ověřit";
+ $this->page_page = "Strana";
+ $this->check_invalid = "Neplatné zadání";
+ $this->check_notjoin = "u nás ještě nebyl";
+ $this->history_missinguuid = "Chybějící argument (uuid)";
+ $this->history_playernotfound = "Hráč nenalezen v databázi";
+ $this->history_recentby = "Nedávné tresty od ";
+ $this->history_recentfor = "Nedávne tresty pro ";
+ $this->history_tabletype = "Typ";
+ $this->history_tableplayer = "Hráč";
+ $this->history_tablemoderator = "Admin";
+ $this->history_tablereason = "Důvod";
+ $this->history_tabledate = "Datum";
+ $this->history_tableexpires = "Vyprší";
+ $this->history_nopunishments = "Nenalezeny žádné tresty";
+ $this->history_returnto = "Vrátit se na";
+ $this->info_banned_player = "Zabanovaný hráč";
+ $this->info_banned_by = "Zabanován kým";
+ $this->info_banned_reason = "Důvod banu";
+ $this->info_banned_when = "Zabanován do";
+ $this->info_banned_expiry = "Zabanován do kdy";
+ $this->info_muted_player = "Umlčený hráč";
+ $this->info_muted_by = "Umlčen kým";
+ $this->info_muted_reason = "Důvod umlčení";
+ $this->info_muted_when = "Umlčen kdy";
+ $this->info_muted_expiry = "Umlčen do kdy";
+ $this->info_warn_name = "Varování";
+ $this->info_warn_player = "Varovaný hráč";
+ $this->info_warn_by = "Varován kým";
+ $this->info_warn_reason = "Důvod varování";
+ $this->info_warn_when = "Varován kdy";
+ $this->info_warn_expiry = "Varování vyprší";
+ $this->info_kick_player = "Vyhozený hráč";
+ $this->info_kick_by = "Vyhozen kým";
+ $this->info_kick_reason = "Důvod vyhození";
+ $this->info_kick_when = "Vyhozen kdy";
+ $this->info_error_missingarg = "Neplatné argumenty (typ, id)";
+ $this->info_error_unknown = "Vyžádána neznámá stránka";
+ $this->info_error_invalidid = "Neplatné ID";
+ $this->info_error_notfound1 = "Chyba: ";
+ $this->info_error_notfound2 = " nenalezen v databázi";
+ $this->info_error_notplayer = "Chyba: Jméno hráče nenalezeno";
+ $this->bans_player = "Jméno";
+ $this->bans_by = "Zabanován kým";
+ $this->bans_reason = "Důvod banu";
+ $this->bans_when = "Zabanován kdy";
+ $this->bans_expiry = "Zabanován do kdy";
+ $this->kicks_player = "Jméno";
+ $this->kicks_by = "Vyhozen kým";
+ $this->kicks_reason = "Důvod vyhození";
+ $this->kicks_when = "Vyhozen kdy";
+ $this->mutes_player = "Jméno";
+ $this->mutes_by = "Umlčen kým";
+ $this->mutes_reason = "Důvod umlčení";
+ $this->mutes_when = "Umlčen kdy";
+ $this->mutes_expiry = "Umlčen do kdy";
+ $this->warns_player = "Jméno";
+ $this->warns_by = "Varován kým";
+ $this->warns_reason = "Důvod varování";
+ $this->warns_when = "Varován kdy";
+ $this->warns_receive = "Varování doručeno";
+ $this->warns_yes = "Ano";
+ $this->warns_no = "Ne";
+ }
+}
+?>
diff --git a/lang/en_US.php b/lang/en_US.php
new file mode 100644
index 0000000..1396e17
--- /dev/null
+++ b/lang/en_US.php
@@ -0,0 +1,90 @@
+index_welcome1 = 'Welcome to ';
+ $this->index_welcome2 = '\'s Ban List.';
+ $this->index_allsins = 'Here is where all of our punishments are listed.';
+ $this->header_index = 'Home';
+ $this->header_bans = 'Bans';
+ $this->header_mutes = 'Mutes';
+ $this->header_warnings = 'Warnings';
+ $this->header_kicks = 'Kicks';
+ $this->page_perm_ban = 'Permanent Ban';
+ $this->page_perm_mute = 'Permanent Mute';
+ $this->page_perm_warn = 'Permanent';
+ $this->page_expire_ban = '(Unbanned)';
+ $this->page_expire_mute = '(Unmuted)';
+ $this->page_expire_warn = '(Expired)';
+ $this->page_title_ban = 'Bans';
+ $this->page_title_mute = 'Mutes';
+ $this->page_title_warn = 'Warnings';
+ $this->page_title_kick = 'Kicks';
+ $this->page_check_user = "Player";
+ $this->page_check_submit = "Check";
+ $this->page_page = "Page";
+ $this->check_invalid = "Invalid name.";
+ $this->check_notjoin = "has not joined before.";
+ $this->history_missinguuid = "Missing arguments (uuid).";
+ $this->history_playernotfound = "Player not found in database.";
+ $this->history_recentby = "Recent Punishments by ";
+ $this->history_recentfor = "Recent Punishments for ";
+ $this->history_tabletype = "Type";
+ $this->history_tableplayer = "Player";
+ $this->history_tablemoderator = "Moderator";
+ $this->history_tablereason = "Reason";
+ $this->history_tabledate = "Date";
+ $this->history_tableexpires = "Expires";
+ $this->history_nopunishments = "No punishments found.";
+ $this->history_returnto = "Return to";
+ $this->info_banned_player = "Banned Player";
+ $this->info_banned_by = "Banned By";
+ $this->info_banned_reason = "Ban Reason";
+ $this->info_banned_when = "Ban Placed";
+ $this->info_banned_expiry = "Expires";
+ $this->info_muted_player = "Muted Player";
+ $this->info_muted_by = "Muted By";
+ $this->info_muted_reason = "Mute Reason";
+ $this->info_muted_when = "Mute Placed";
+ $this->info_muted_expiry = "Expires";
+ $this->info_warn_name = "Warning";
+ $this->info_warn_player = "Warned Player";
+ $this->info_warn_by = "Warned By";
+ $this->info_warn_reason = "Warning Reason";
+ $this->info_warn_when = "Warning Placed";
+ $this->info_warn_expiry = "Expires";
+ $this->info_kick_player = "Kicked Player";
+ $this->info_kick_by = "Kicked By";
+ $this->info_kick_reason = "Kick Reason";
+ $this->info_kick_when = "Kick Date";
+ $this->info_error_missingarg = "Missing arguments (type, id).";
+ $this->info_error_unknown = "Unknown page type requested.";
+ $this->info_error_invalidid = "Invalid ID";
+ $this->info_error_notfound1 = "Error: ";
+ $this->info_error_notfound2 = " not found in database.";
+ $this->info_error_notplayer = "Error: Player name not found.";
+ $this->bans_player = "Name";
+ $this->bans_by = "Banned By";
+ $this->bans_reason = "Reason";
+ $this->bans_when = "Banned On";
+ $this->bans_expiry = "Banned Until";
+ $this->kicks_player = "Name";
+ $this->kicks_by = "Kicked By";
+ $this->kicks_reason = "Reason";
+ $this->kicks_when = "Date";
+ $this->mutes_player = "Nameo";
+ $this->mutes_by = "Muted By";
+ $this->mutes_reason = "Reason";
+ $this->mutes_when = "Muted On";
+ $this->mutes_expiry = "Muted Until";
+ $this->warns_player = "Name";
+ $this->warns_by = "Varován kým";
+ $this->warns_reason = "Reason";
+ $this->warns_when = "Warned Until";
+ $this->warns_receive = "Received Warning";
+ $this->warns_yes = "Yes";
+ $this->warns_no = "No";
+ }
+}
+?>
diff --git a/mutes.php b/mutes.php
index 8eae54e..fe08f90 100644
--- a/mutes.php
+++ b/mutes.php
@@ -16,11 +16,11 @@ while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
if ($player_name === null) continue;
$page->print_table_rows($row, array(
- 'Name' => $page->get_avatar($player_name, $row['uuid']),
- 'Muted By' => $page->get_avatar($page->get_banner_name($row), $row['banned_by_uuid']),
- 'Reason' => $page->clean($row['reason']),
- 'Muted On' => $page->millis_to_date($row['time']),
- 'Muted Until' => $page->expiry($row),
+ $page->lang->mutes_player => $page->get_avatar($player_name, $row['uuid']),
+ $page->lang->mutes_by => $page->get_avatar($page->get_banner_name($row), $row['banned_by_uuid']),
+ $page->lang->mutes_reason => $page->clean($row['reason']),
+ $page->lang->mutes_when => $page->millis_to_date($row['time']),
+ $page->lang->mutes_expiry => $page->expiry($row),
));
}
$page->table_end();
diff --git a/warnings.php b/warnings.php
index fbab429..084e846 100644
--- a/warnings.php
+++ b/warnings.php
@@ -16,11 +16,11 @@ while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
if ($player_name === null) continue;
$page->print_table_rows($row, array(
- 'Name' => $page->get_avatar($player_name, $row['uuid']),
- 'Warned By' => $page->get_avatar($page->get_banner_name($row), $row['banned_by_uuid']),
- 'Reason' => $page->clean($row['reason']),
- 'Warned Until' => $page->expiry($row),
- 'Received Warning' => (($page->active($row, 'warned') === true) ? "Yes" : "No"),
+ $page->lang->warns_player => $page->get_avatar($player_name, $row['uuid']),
+ $page->lang->warns_by => $page->get_avatar($page->get_banner_name($row), $row['banned_by_uuid']),
+ $page->lang->warns_reason => $page->clean($row['reason']),
+ $page->lang->warns_when => $page->expiry($row),
+ $page->lang->warns_receive => (($page->active($row, 'warned') === true) ? $page->lang->warns_yes : $page->lang->warns_no),
));
}
$page->table_end();