1
0
mirror of https://github.com/vichan-devel/vichan.git synced 2024-11-28 17:31:00 +01:00

Merge vichan-devel

This commit is contained in:
8chan 2014-05-05 15:04:41 +00:00
commit 86ae70770c
19 changed files with 3458 additions and 2577 deletions

View File

@ -103,6 +103,21 @@ Wanting to have vichan in your language? You can contribute your translations at
https://www.transifex.com/projects/p/tinyboard-vichan-devel/
Oekaki
------
vichan makes use of [wPaint](https://github.com/websanova/wPaint) for oekaki. After you pull the repository, however, you will need to download wPaint separately using git's `submodule` feature. Use the following commands:
```
git submodule init
git submodule update
```
To enable oekaki, add all the scripts listed in `js/oekaki.js` to your `instance-config.php`.
WebM support
------------
Read `inc/lib/webm/README.md` for information about enabling webm.
License
--------
See [LICENSE.md](http://github.com/vichan-devel/vichan/blob/master/LICENSE.md).

View File

@ -538,7 +538,7 @@
$config['user_flag'] = false;
// List of user_flag the user can choose. Flags must be placed in the directory set by $config['uri_flags']
$config['user_flags'] = [];
$config['user_flags'] = array();
/* example: 
$config['user_flags'] = array (
'nz' => 'Nazi',
@ -1528,6 +1528,23 @@
// // ...
// };
// You can also enable themes (like ukko) in mod panel like this:
// require_once("templates/themes/ukko/theme.php");
//
// $config['mod']['custom_pages']['/\*/'] = function() {
// global $mod;
//
// $ukko = new ukko();
// $ukko->settings = array();
// $ukko->settings['uri'] = '*';
// $ukko->settings['title'] = 'derp';
// $ukko->settings['subtitle'] = 'derpity';
// $ukko->settings['thread_limit'] = 15;
// $ukko->settings['exclude'] = '';
//
// echo $ukko->build($mod);
// };
// Example: Add links to dashboard (will all be in a new "Other" category).
// $config['mod']['dashboard_links']['Something'] = '?/something';

View File

@ -82,7 +82,7 @@ function error($message, $priority = true, $debug_stuff = false) {
if (defined('STDIN')) {
// Running from CLI
echo('Error: ' . $message . "\n");
debug_print_backtrace();
debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
die();
}

View File

@ -204,7 +204,7 @@ function loadConfig() {
if (!isset($config['user_flag']))
$config['user_flag'] = false;
if (!isset($config['user_flags']))
$config['user_flags'] = [];
$config['user_flags'] = array();
if ($config['root_file']) {
chdir($config['root_file']);

View File

@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
"PO-Revision-Date: 2014-04-25 23:26+0000\n"
"PO-Revision-Date: 2014-04-30 18:20+0000\n"
"Last-Translator: neniu <katnoj1@gmail.com>\n"
"Language-Team: Esperanto (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/eo/)\n"
"MIME-Version: 1.0\n"
@ -303,7 +303,7 @@ msgstr "Nova Respondo"
msgid ""
"All trademarks, copyrights, comments, and images on this page are owned by "
"and are the responsibility of their respective parties."
msgstr "Ĉiuj registritaj markoj, kopirajtoj, komentoj, kaj bildoj en ĉi tiu paĝo alpartenas al kaj estas la respondeco de siaj respektivaj partioj. "
msgstr "Ĉiuj registritaj markoj, kopirajtoj, komentoj, kaj bildoj en ĉi tiu paĝo alpartenas al, kaj estas la respondeco de siaj respektivaj partioj. "
#. * ====================
#. * Error messages
@ -311,7 +311,7 @@ msgstr "Ĉiuj registritaj markoj, kopirajtoj, komentoj, kaj bildoj en ĉi tiu pa
#. Error messages
#: ../../../../inc/config.php:866
msgid "Lurk some more before posting."
msgstr "Gvatu iom plu antaŭ afiŝando."
msgstr "Gvatu iom plu antaŭ afiŝi."
#. * ====================
#. * Error messages
@ -368,7 +368,7 @@ msgstr "La servilo malsukcesis prilabori vian alŝuton."
#: ../../../../inc/config.php:970 ../../../../inc/config.php:972
#: ../../../../inc/config.php:974 ../../../../inc/config.php:990
msgid "Unsupported image format."
msgstr "Malsubtenita bildotipo."
msgstr "Nesubtenita bildotipo."
#: ../../../../inc/config.php:875 ../../../../inc/config.php:980
#: ../../../../inc/config.php:971 ../../../../inc/config.php:973
@ -1221,7 +1221,7 @@ msgstr "Nomo"
#: ../../../../templates/cache/cf/63/151e140d85df674832f4ede3f3e7811b97d4efa91cac6086ca7e8ce65d25.php:91
#: ../../../../templates/cache/d1/2d/e4ea563232b42da227befa9cf03fef935e472b1268221e2399d8d6af1cd5.php:47
msgid "Email"
msgstr "Retpoŝto"
msgstr "Retpoŝtadreso"
#. line 23
#. line 46
@ -2136,7 +2136,7 @@ msgstr "Malpermesoj"
msgid ""
"(Search is case-insensitive and based on keywords. To match exact phrases, "
"use \"quotes\". Use an asterisk (*) for wildcard.)"
msgstr ""
msgstr "(Serĉo estas uskleca-indiferenta kajbazita je ŝlosilvortoj. Por kongrui frazojn, uzu \"citaĵmarkojn\". Uzu steleton (*) por wildcard.)"
#: ../../../../templates/cache/ba/55/2553cc018aecf7d29a62331aec4bedc71b646817c7e4c4e7d1a885263676.php:25
msgid "There are no active bans."
@ -2200,19 +2200,19 @@ msgstr "Neniom da raportoj."
#: ../../../../post.php:802 ../../../../post.php:811 ../../../../post.php:825
msgid "That ban doesn't exist or is not for you."
msgstr ""
msgstr "Tiu malpermeso ne ekzistas aŭ ne estas via."
#: ../../../../post.php:806 ../../../../post.php:815 ../../../../post.php:829
msgid "You cannot appeal a ban of this length."
msgstr ""
msgstr "Vi ne povas apelacii kontraŭ malpermeso de tiu daŭro."
#: ../../../../post.php:813 ../../../../post.php:822 ../../../../post.php:836
msgid "You cannot appeal this ban again."
msgstr ""
msgstr "Vi ne povas apelacii kontraŭ ĉi tiu malpermeso denove."
#: ../../../../post.php:818 ../../../../post.php:827 ../../../../post.php:841
msgid "There is already a pending appeal for this ban."
msgstr ""
msgstr "Jam pritraktatas apelacio por ĉi tiu malpermeso."
#: ../../../../inc/image.php:24 ../../../../inc/image.php:62
msgid "Unsupported file format: "
@ -2238,30 +2238,30 @@ msgstr "Vi estas malpermesita! ;_;"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:52
msgid "You were banned from"
msgstr ""
msgstr "Vi malpermesiĝis de"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:58
msgid "You have been banned from"
msgstr ""
msgstr "Vi malpermesiĝis de"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:82
msgid "for the following reason:"
msgstr ""
msgstr "pro la jena kialo:"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:88
msgid "for an unspecified reason."
msgstr ""
msgstr "pro nespecifita kialo."
#. line 32
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:110
msgid "Your ban was filed on"
msgstr ""
msgstr "Via malpermeso fajlis je"
#. line 51
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:123
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:156
msgid "has since expired. Refresh the page to continue."
msgstr ""
msgstr "jam finiĝis. Refreŝigu la paĝon por daŭri."
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:129
msgid "expires"
@ -2269,7 +2269,7 @@ msgstr "finiĝas"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:133
msgid "from now, which is on"
msgstr ""
msgstr "ekde nun, kiu estas je"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:183
msgid "will not expire"
@ -2283,16 +2283,16 @@ msgstr "Via IP adreso estas"
#. line 86
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:215
msgid "You were banned for the following post on"
msgstr ""
msgstr "Vi fariĝis malpermesita pro la jena afiŝo je"
#. line 95
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:239
msgid "You submitted an appeal for this ban on"
msgstr ""
msgstr "Vi sendis apelacion por ĉi tiu malpermeso je"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:245
msgid "It is still pending"
msgstr ""
msgstr "Ĝi jam pritraktatas."
#. line 101
#. line 112
@ -2311,18 +2311,18 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:257
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:289
msgid "You appealed this ban on"
msgstr ""
msgstr "Vi apelaciis ĉi tiun malpermeson je"
#. line 103
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:265
msgid "and it was denied. You may not appeal this ban again."
msgstr ""
msgstr "kaj ĝi estas forneiita.. Vi ne povas apelacii ĉi tiun malpermeson denove."
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:272
msgid ""
"You have submitted the maximum number of ban appeals allowed. You may not "
"appeal this ban again."
msgstr ""
msgstr "Vi sendis la maksimuman kiomon de apelacioj akcepteblaj. Vi ne povas apelacii ĉi tiun malpermeson denove."
#. line 114
#. line 121
@ -2341,7 +2341,7 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:297
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:318
msgid "and it was denied."
msgstr ""
msgstr "kaj malakceptiĝis."
#. line 116
#. line 123
@ -2360,16 +2360,16 @@ msgstr ""
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:302
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:323
msgid "You may appeal this ban again. Please enter your reasoning below."
msgstr ""
msgstr "Vi povas apelacii ĉi tiun malpermeson denove. Bonvolu enskribi viajn kialojn suben."
#. line 119
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:310
msgid "You last appealed this ban on"
msgstr ""
msgstr "Vi laste apelaciis ĉi tiun malpermeson je"
#: ../../../../templates/cache/b7/ae/f9663c9ca58d1e218de29e04d0fa229f6263f4e68b613ce608bc023897a2.php:332
msgid "You may appeal this ban. Please enter your reasoning below."
msgstr ""
msgstr "Vi povas apelacii ĉi tiun malpermeson. Bonvolu enskribi viajn kialojn suben."
#. line 4
#. line 16
@ -2435,12 +2435,12 @@ msgstr "Fadeno ID"
#. line 14
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:51
msgid "Leave shadow thread"
msgstr ""
msgstr "Restigi ombran fadenon"
#. line 18
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:58
msgid "locks thread; replies to it with a link."
msgstr ""
msgstr "fermas fadenon; respondas al ĝi kun ligilo."
#. line 22
#: ../../../../templates/cache/32/3a/d7e02cef5846ec4f1f423bb0ad2d3c307845d29f70da3f8a90a41f873e7d.php:65
@ -2478,7 +2478,7 @@ msgstr "Klaku por iri al"
msgid ""
"You are probably seeing this message because Javascript being disabled. This"
" is a necessary security measure to prevent CSRF attacks."
msgstr ""
msgstr "Vi probable vidas ĉi tiun mesaĝon ĉar Ĝajavaskripto estas malŝaltita. Nepras por sekurigi kontraŭ CSRF atakoj."
#. line 7
#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:44
@ -2491,11 +2491,11 @@ msgstr "Raportita de"
#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:73
msgid "Discard abuse report"
msgstr ""
msgstr "Forigi raporton pri misuzo"
#: ../../../../templates/cache/3a/62/f804928dbcf285e3d5d8d7ae31b1e3a7c78264f270efa9650d31f69c7897.php:93
msgid "Discard all abuse reports by this IP address"
msgstr ""
msgstr "Forigi ĉiom da la raportoj pri misuzo de ĉi tiu IP adreso"
#. line 4
#: ../../../../templates/cache/f9/e9/d592e3c89e2f76520cf989aa8359d3d143d8fa4996ff1d97b3be51f87a05.php:27

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
l10n = {"Style: ":"Stils:","File":"Fails","hide":"pasl\u0113pt","show":"par\u0101d\u012bt","Show locked threads":"R\u0101d\u012bt sl\u0113gtos pavedienus","Hide locked threads":"Sl\u0113pt sl\u0113gtos pavedienus","URL":"URL","Select":"Izv\u0113l\u0113ties","hidden":"pasl\u0113pts","Show images":"R\u0101d\u012bt att\u0113lus","Hide images":"Pasl\u0113pt att\u0113lus","Password":"Parole","Delete file only":"Dz\u0113st tikai failu","Delete":"Dz\u0113st","Reason":"Iemesls","Report":"Zi\u0146ot","Click reply to view.":"Nospiest uz atbildes, lai apskat\u012btu","Click to expand":"Nospiest, lai izv\u0113rstu","Hide expanded replies":"Pasl\u0113pt izv\u0113rst\u0101s atbildes","Brush size":"Otas izm\u0113rs","Set text":"Uzst\u0101d\u012bt tekstu","Clear":"Not\u012br\u012bt","Save":"Saglab\u0101t","Load":"Iel\u0101d\u0113t","Toggle eraser":"P\u0101rsl\u0113gt dz\u0113\u0161anu","Get color":"Ieg\u016bt kr\u0101su","Fill":"Aizpild\u012bt","enabled":"iesl\u0113gts","disabled":"izsl\u0113gts"};

View File

@ -0,0 +1,570 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# diggydoc <aigryz@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: vichan\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-21 21:04+0200\n"
"PO-Revision-Date: 2014-04-30 21:37+0000\n"
"Last-Translator: diggydoc <aigryz@gmail.com>\n"
"Language-Team: Latvian (Latvia) (http://www.transifex.com/projects/p/tinyboard-vichan-devel/language/lv_LV/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lv_LV\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#: ../../../../js/style-select.js:40 ../../../../js/style-select.js:41
msgid "Style: "
msgstr "Stils:"
#: ../../../../js/hide-images.js:50 ../../../../js/upload-selection.js:51
#: ../../../../js/quick-post-controls.js:30 ../../../../js/hide-images.js:51
#: ../../../../js/quick-post-controls.js:32
#: ../../../../js/upload-selection.js:61
msgid "File"
msgstr "Fails"
#: ../../../../js/hide-images.js:50 ../../../../js/hide-images.js:51
msgid "hide"
msgstr "paslēpt"
#: ../../../../js/hide-images.js:56 ../../../../js/hide-images.js:57
msgid "show"
msgstr "parādīt"
#: ../../../../js/toggle-locked-threads.js:39
#: ../../../../js/toggle-locked-threads.js:54
#: ../../../../js/toggle-locked-threads.js:40
#: ../../../../js/toggle-locked-threads.js:55
#: ../../../../js/toggle-locked-threads.js:41
#: ../../../../js/toggle-locked-threads.js:56
msgid "Show locked threads"
msgstr "Rādīt slēgtos pavedienus"
#: ../../../../js/toggle-locked-threads.js:39
#: ../../../../js/toggle-locked-threads.js:54
#: ../../../../js/toggle-locked-threads.js:40
#: ../../../../js/toggle-locked-threads.js:55
#: ../../../../js/toggle-locked-threads.js:41
#: ../../../../js/toggle-locked-threads.js:56
msgid "Hide locked threads"
msgstr "Slēpt slēgtos pavedienus"
#: ../../../../js/upload-selection.js:32 ../../../../js/upload-selection.js:45
msgid "URL"
msgstr "URL"
#: ../../../../js/upload-selection.js:50 ../../../../js/upload-selection.js:60
msgid "Select"
msgstr "Izvēlēties"
#: ../../../../js/upload-selection.js:53 ../../../../js/upload-selection.js:63
msgid "Remote"
msgstr ""
#: ../../../../js/upload-selection.js:56 ../../../../js/upload-selection.js:66
msgid "Embed"
msgstr ""
#: ../../../../js/upload-selection.js:59 ../../../../js/upload-selection.js:69
msgid "Oekaki"
msgstr ""
#: ../../../../js/toggle-images.js:41 ../../../../js/toggle-images.js:42
msgid "hidden"
msgstr "paslēpts"
#: ../../../../js/toggle-images.js:57 ../../../../js/toggle-images.js:70
#: ../../../../js/toggle-images.js:58 ../../../../js/toggle-images.js:71
msgid "Show images"
msgstr "Rādīt attēlus"
#: ../../../../js/toggle-images.js:57 ../../../../js/toggle-images.js:70
#: ../../../../js/toggle-images.js:58 ../../../../js/toggle-images.js:71
msgid "Hide images"
msgstr "Paslēpt attēlus"
#: ../../../../js/quick-post-controls.js:27
#: ../../../../js/quick-post-controls.js:29
msgid "Password"
msgstr "Parole"
#: ../../../../js/quick-post-controls.js:29
#: ../../../../js/quick-post-controls.js:31
msgid "Delete file only"
msgstr "Dzēst tikai failu"
#: ../../../../js/quick-post-controls.js:31
#: ../../../../js/quick-post-controls.js:33
msgid "Delete"
msgstr "Dzēst"
#: ../../../../js/quick-post-controls.js:35
#: ../../../../js/quick-post-controls.js:37
msgid "Reason"
msgstr "Iemesls"
#: ../../../../js/quick-post-controls.js:37
#: ../../../../js/quick-post-controls.js:39
msgid "Report"
msgstr "Ziņot"
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click reply to view."
msgstr "Nospiest uz atbildes, lai apskatītu"
#: ../../../../js/expand.js:20 ../../../../js/expand.js:22
msgid "Click to expand"
msgstr "Nospiest, lai izvērstu"
#: ../../../../js/expand.js:44 ../../../../js/expand.js:46
msgid "Hide expanded replies"
msgstr "Paslēpt izvērstās atbildes"
#: ../../../../js/oekaki.js:10
msgid "Brush size"
msgstr "Otas izmērs"
#: ../../../../js/oekaki.js:10
msgid "Set text"
msgstr "Uzstādīt tekstu"
#: ../../../../js/oekaki.js:10
msgid "Clear"
msgstr "Notīrīt"
#: ../../../../js/oekaki.js:10
msgid "Save"
msgstr "Saglabāt"
#: ../../../../js/oekaki.js:10
msgid "Load"
msgstr "Ielādēt"
#: ../../../../js/oekaki.js:11
msgid "Toggle eraser"
msgstr "Pārslēgt dzēšanu"
#: ../../../../js/oekaki.js:11
msgid "Get color"
msgstr "Iegūt krāsu"
#: ../../../../js/oekaki.js:11
msgid "Fill"
msgstr "Aizpildīt"
#: ../../../../js/oekaki.js:12
msgid "Use oekaki instead of file?"
msgstr ""
#: ../../../../js/oekaki.js:21
msgid "Edit in oekaki"
msgstr ""
#: ../../../../js/oekaki.js:152
msgid "Enter some text"
msgstr ""
#: ../../../../js/oekaki.js:153
msgid "Enter font or leave empty"
msgstr ""
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:69 ../../../../js/forced-anon.js:60
#: ../../../../js/forced-anon.js:66 ../../../../js/forced-anon.js:70
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
#: ../../../../js/forced-anon.js:71
msgid "Forced anonymity"
msgstr ""
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:65
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:66
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:67
msgid "enabled"
msgstr "ieslēgts"
#: ../../../../js/forced-anon.js:59 ../../../../js/forced-anon.js:69
#: ../../../../js/forced-anon.js:60 ../../../../js/forced-anon.js:70
#: ../../../../js/forced-anon.js:61 ../../../../js/forced-anon.js:71
msgid "disabled"
msgstr "izslēgts"
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sun"
msgstr ""
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Mon"
msgstr ""
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Tue"
msgstr ""
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Wed"
msgstr ""
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Thu"
msgstr ""
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Fri"
msgstr ""
#: ../../../../js/local-time.js:40 ../../../../js/local-time.js:41
#: ../../../../js/local-time.js:30
msgid "Sat"
msgstr ""
#: ../../../../js/catalog-link.js:21 ../../../../js/catalog-link.js:32
#: ../../../../js/catalog-link.js:40 ../../../../js/catalog-link.js:33
#: ../../../../js/catalog-link.js:44 ../../../../js/catalog-link.js:52
msgid "Catalog"
msgstr ""
#: ../../../../js/quick-reply.js:21 ../../../../js/quick-reply-old.js:21
#: ../../../../js/quick-reply-old.js:23
msgid "Submit"
msgstr ""
#: ../../../../js/quick-reply.js:31 ../../../../js/quick-reply-old.js:31
#: ../../../../js/quick-reply-old.js:33
msgid "Quick reply"
msgstr ""
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
#, python-brace-format
msgid "Posting mode: Replying to <small>&gt;&gt;{0}</small>"
msgstr ""
#: ../../../../js/quick-reply.js:33 ../../../../js/quick-reply-old.js:33
#: ../../../../js/quick-reply-old.js:35
msgid "Return"
msgstr ""
#: ../../../../js/expand-all-images.js:20
#: ../../../../js/expand-all-images.js:21
#: ../../../../js/expand-all-images.js:22
msgid "Expand all images"
msgstr ""
#: ../../../../templates/main.js:6
msgid "Hello!"
msgstr ""
#: ../../../../templates/main.js:18
#, python-brace-format
msgid "{0} users"
msgstr ""
#: ../../../../templates/themes/ukko/ukko.js:28
#: ../../../../templates/themes/ukko/ukko.js:39
#: ../../../../templates/themes/ukko/ukko.js:29
#: ../../../../templates/themes/ukko/ukko.js:40
msgid "(hide threads from this board)"
msgstr ""
#: ../../../../templates/themes/ukko/ukko.js:32
#: ../../../../templates/themes/ukko/ukko.js:44
#: ../../../../templates/themes/ukko/ukko.js:33
#: ../../../../templates/themes/ukko/ukko.js:45
msgid "(show threads from this board)"
msgstr ""
#: ../../../../templates/themes/ukko/ukko.js:57
#: ../../../../templates/themes/ukko/ukko.js:58
msgid "No more threads to display"
msgstr ""
#: ../../../../templates/themes/ukko/ukko.js:79
#: ../../../../templates/themes/ukko/ukko.js:80
msgid "Loading..."
msgstr ""
#: ../../../../js/download-original.js:32
#: ../../../../js/download-original.js:33
msgid "Save as original filename"
msgstr ""
#: ../../../../js/ajax-post-controls.js:43
msgid "Reported post(s)."
msgstr ""
#: ../../../../js/ajax-post-controls.js:53
msgid "An unknown error occured!"
msgstr ""
#: ../../../../js/ajax-post-controls.js:60
msgid "Something went wrong... An unknown error occured!"
msgstr ""
#: ../../../../js/ajax-post-controls.js:68
msgid "Working..."
msgstr ""
#: ../../../../js/ajax.js:42 ../../../../js/ajax.js:45
msgid "Posting... (#%)"
msgstr ""
#: ../../../../js/ajax.js:104 ../../../../js/ajax.js:109
msgid "Posted..."
msgstr ""
#: ../../../../js/ajax.js:106 ../../../../js/ajax.js:111
msgid "An unknown error occured when posting!"
msgstr ""
#: ../../../../js/ajax.js:130 ../../../../js/ajax.js:135
msgid "Posting..."
msgstr ""
#: ../../../../js/quick-reply.js:223 ../../../../js/quick-reply.js:224
#: ../../../../js/quick-reply.js:225
msgid "Upload URL"
msgstr ""
#: ../../../../js/quick-reply.js:266 ../../../../js/quick-reply.js:267
#: ../../../../js/quick-reply.js:268
msgid "Spoiler Image"
msgstr ""
#: ../../../../js/quick-reply.js:277 ../../../../js/quick-reply.js:278
#: ../../../../js/quick-reply.js:279
msgid "Comment"
msgstr ""
#: ../../../../js/quick-reply.js:285 ../../../../js/quick-reply.js:406
#: ../../../../js/quick-reply.js:286 ../../../../js/quick-reply.js:407
#: ../../../../js/quick-reply.js:287 ../../../../js/quick-reply.js:408
msgid "Quick Reply"
msgstr ""
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Stop watching this thread"
msgstr ""
#: ../../../../js/watch.js:249 ../../../../js/watch.js:250
#: ../../../../js/watch.js:288 ../../../../js/watch.js:289
#: ../../../../js/watch.js:330 ../../../../js/watch.js:331
msgid "Watch this thread"
msgstr ""
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
#: ../../../../js/watch.js:300 ../../../../js/watch.js:308
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Unpin this board"
msgstr ""
#: ../../../../js/watch.js:260 ../../../../js/watch.js:261
#: ../../../../js/watch.js:269 ../../../../js/watch.js:299
#: ../../../../js/watch.js:300 ../../../../js/watch.js:308
#: ../../../../js/watch.js:341 ../../../../js/watch.js:342
#: ../../../../js/watch.js:350
msgid "Pin this board"
msgstr ""
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
#: ../../../../js/watch.js:306 ../../../../js/watch.js:307
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Stop watching this board"
msgstr ""
#: ../../../../js/watch.js:262 ../../../../js/watch.js:267
#: ../../../../js/watch.js:268 ../../../../js/watch.js:301
#: ../../../../js/watch.js:306 ../../../../js/watch.js:307
#: ../../../../js/watch.js:343 ../../../../js/watch.js:348
#: ../../../../js/watch.js:349
msgid "Watch this board"
msgstr ""
#: ../../../../js/wpaint.js:113
msgid "Click on any image on this site to load it into oekaki applet"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Sunday"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Monday"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Tuesday"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Wednesday"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Thursday"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Friday"
msgstr ""
#: ../../../../js/local-time.js:29
msgid "Saturday"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "January"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "February"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "March"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "April"
msgstr ""
#: ../../../../js/local-time.js:31 ../../../../js/local-time.js:32
msgid "May"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "June"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "July"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "August"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "September"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "October"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "November"
msgstr ""
#: ../../../../js/local-time.js:31
msgid "December"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Jan"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Feb"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Mar"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Apr"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Jun"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Jul"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Aug"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Sep"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Oct"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Nov"
msgstr ""
#: ../../../../js/local-time.js:32
msgid "Dec"
msgstr ""
#: ../../../../js/local-time.js:33
msgid "AM"
msgstr ""
#: ../../../../js/local-time.js:34
msgid "PM"
msgstr ""
#: ../../../../js/local-time.js:35
msgid "am"
msgstr ""
#: ../../../../js/local-time.js:36
msgid "pm"
msgstr ""
#: ../../../../js/expand-video.js:45 ../../../../js/expand-video.js:48
msgid "Your browser does not support HTML5 video."
msgstr ""
#: ../../../../js/expand-video.js:189 ../../../../js/expand-video.js:192
msgid "[play once]"
msgstr ""
#: ../../../../js/expand-video.js:190 ../../../../js/expand-video.js:193
msgid "[loop]"
msgstr ""
#: ../../../../js/webm-settings.js:42
msgid "WebM Settings"
msgstr ""
#: ../../../../js/webm-settings.js:44
msgid "Expand videos inline"
msgstr ""
#: ../../../../js/webm-settings.js:45
msgid "Play videos on hover"
msgstr ""
#: ../../../../js/webm-settings.js:46
msgid "Default volume"
msgstr ""
#: ../../../../js/treeview.js:18
msgid "Tree view"
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
Subproject commit 2c272dffca0f3d7b7163bd82ba15629f54409278
Subproject commit 15bae4a9181ddb283c1cad0979c44cefd4f15a44

View File

@ -83,7 +83,7 @@ oekaki.init = function() {
stop: function(event,ui) {
$("#wpaintdiv").wPaint("resize");
},
alsoResize: "#wpaintdiv, #wpaintdiv canvas",
alsoResize: "#wpaintdiv",
});
$('#wpaintctr .ui-resizable-se').css({'height':'12px', 'width':'12px'});

View File

@ -20,12 +20,16 @@
{% for post in recent_posts %}
<div class="thread">
<a href="{{post.link}}">
{% if post.youtube %}
<img src="http://img.youtube.com/vi/{{ post.youtube }}/0.jpg" class="{{post.board}}" title="{{post.bump|date('%b %d %H:%M')}}">
{% elseif post.file %}
<img src="{{post.file}}" class="{{post.board}}" title="{{post.bump|date('%b %d %H:%M')}}">
</a>
{% endif %}
<span class="replies">
<strong>{% trans %}1 reply{% plural post.reply_count %}{{ count }} replies{% endtrans %}</strong><br/>
{{ post.body }}
</span>
</a>
</div>
{% endfor %}
</ul>

View File

@ -45,6 +45,11 @@
$post['link'] = $config['root'] . $board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], ($post['thread'] ? $post['thread'] : $post['id']));
$post['board_name'] = $board['name'];
$post['file'] = $config['uri_thumb'] . $post['thumb'];
if ($post['embed'] && preg_match('/^https?:\/\/(\w+\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9\-_]{10,11})(&.+)?$/i', $post['embed'], $matches)) {
$post['youtube'] = $matches[2];
}
$recent_posts[] = $post;
}

View File

@ -1,40 +1,41 @@
<?php
$theme = Array();
$theme = array();
// Theme name
$theme['name'] = 'Ukko';
$theme['name'] = 'Overboard (Ukko)';
// Description (you can use Tinyboard markup here)
$theme['description'] = 'Board with threads and messages from all boards';
$theme['version'] = 'v0.1';
$theme['version'] = 'v0.2';
// Theme configuration
$theme['config'] = Array();
$theme['config'] = array();
$theme['config'][] = Array(
$theme['config'][] = array(
'title' => 'Board name',
'name' => 'title',
'type' => 'text',
'default' => 'Ukko'
);
$theme['config'][] = Array(
$theme['config'][] = array(
'title' => 'Board URI',
'name' => 'uri',
'type' => 'text',
'default' => '*',
'comment' => '(ukko for example)'
);
$theme['config'][] = Array(
$theme['config'][] = array(
'title' => 'Subtitle',
'name' => 'subtitle',
'type' => 'text',
'comment' => '(%s = thread limit. for example "%s freshly bumped threads")'
);
$theme['config'][] = Array(
$theme['config'][] = array(
'title' => 'Excluded boards',
'name' => 'exclude',
'type' => 'text',
'comment' => '(space seperated)'
);
$theme['config'][] = Array(
$theme['config'][] = array(
'title' => 'Number of threads',
'name' => 'thread_limit',
'type' => 'text',

View File

@ -4,7 +4,9 @@
function ukko_build($action, $settings) {
$ukko = new ukko();
$ukko->settings = $settings;
$ukko->build();
file_write($settings['uri'] . '/index.html', $ukko->build());
file_write($settings['uri'] . '/ukko.js', Element('themes/ukko/ukko.js', array()));
}
class ukko {
@ -90,18 +92,19 @@
}
$body .= '<script> var overflow = ' . json_encode($overflow) . '</script>';
$body .= '<script type="text/javascript" src="ukko.js"></script>';
$body .= '<script type="text/javascript" src="/'.$this->settings['uri'].'/ukko.js"></script>';
$config['default_stylesheet'] = array('Yotsuba B', $config['stylesheets']['Yotsuba B']);
file_write($this->settings['uri'] . '/index.html', Element('index.html', array(
return Element('index.html', array(
'config' => $config,
'board' => $board,
'no_post_form' => true,
'body' => $body,
'boardlist' => createBoardlist($mod)
)));
file_write($this->settings['uri'] . '/ukko.js', Element('themes/ukko/ukko.js', array()));
'mod' => $mod,
'boardlist' => createBoardlist($mod),
));
}
};

View File

@ -58,7 +58,7 @@ $(document).ready(function() {
$('.pages').show().html(_("No more threads to display"));
}
while($(window).scrollTop() + $(window).height() + 1000 > $(document).height() && !loading && overflow.length > 0) {
var page = '../' + overflow[0].board + '/' + overflow[0].page;
var page = modRoot + overflow[0].board + '/' + overflow[0].page;
thread = $('div#thread_' + overflow[0].id + '[data-board="' + overflow[0].board + '"]');
if (thread.length > 0 && thread.attr("data-cached") !== 'yes') { // already present
overflow.shift();