kamishibai 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/LICENSE +29 -0
- data/README.md +91 -0
- data/bin/kamishibai +59 -0
- data/changelogs.txt +6 -0
- data/images/reading.jpg +0 -0
- data/images/settings.jpg +0 -0
- data/images/view_browse.jpg +0 -0
- data/images/view_dir.jpg +0 -0
- data/kamishibai.gemspec +31 -0
- data/lib/kamishibai.rb +35 -0
- data/lib/kamishibai/book.rb +97 -0
- data/lib/kamishibai/config.rb +90 -0
- data/lib/kamishibai/database.rb +330 -0
- data/lib/kamishibai/functions.rb +332 -0
- data/lib/kamishibai/patches.rb +58 -0
- data/lib/kamishibai/version.rb +7 -0
- data/lib/kamishibai/webserver.rb +502 -0
- data/lib/kamishibai/webserver_cmds.rb +26 -0
- data/lib/kamishibai/webserver_config.rb +91 -0
- data/lib/kamishibai/webserver_filemanager.rb +29 -0
- data/lib/kamishibai/webserver_tablet.rb +259 -0
- data/lib/kamishibai/workers.rb +39 -0
- data/public/css/browse.css +390 -0
- data/public/css/config.css +3 -0
- data/public/css/reader.css +119 -0
- data/public/css/styles.css +30 -0
- data/public/css/tablet_browse.css +247 -0
- data/public/css/tablet_reader.css +323 -0
- data/public/css/tablet_reader_input.css +191 -0
- data/public/images/ajax-loader.gif +0 -0
- data/public/images/delete.png +0 -0
- data/public/images/folder-mini-up.png +0 -0
- data/public/images/folder-mini.png +0 -0
- data/public/images/spinner.gif +0 -0
- data/public/images/trash-empty-mini.png +0 -0
- data/public/images/trash-full-mini.png +0 -0
- data/public/js/browse.js +391 -0
- data/public/js/config.js +190 -0
- data/public/js/reader.js +497 -0
- data/public/js/swipeview-k.js +478 -0
- data/public/js/tablet3.js +241 -0
- data/public/js/tablet3_browse.js +173 -0
- data/public/js/tablet3_reader.js +534 -0
- data/public/js/utilities.js +170 -0
- data/public/lang/k-cn.json +82 -0
- data/public/lang/k-en.json +82 -0
- data/public/lang/k-ja.json +82 -0
- data/public/vendor/css/bootstrap-slider.css +252 -0
- data/public/vendor/css/bootstrap-theme.css +476 -0
- data/public/vendor/css/bootstrap-theme.css.map +1 -0
- data/public/vendor/css/bootstrap-theme.min.css +5 -0
- data/public/vendor/css/bootstrap.css +6584 -0
- data/public/vendor/css/bootstrap.css.map +1 -0
- data/public/vendor/css/bootstrap.min.css +5 -0
- data/public/vendor/css/jquery-ui-1.10.0.custom.css +1614 -0
- data/public/vendor/css/jquery.mobile-1.3.1.min.css +3 -0
- data/public/vendor/css/jqueryFileTree.css +91 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.eot +0 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.svg +288 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.woff +0 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/public/vendor/images/application.png +0 -0
- data/public/vendor/images/code.png +0 -0
- data/public/vendor/images/css.png +0 -0
- data/public/vendor/images/db.png +0 -0
- data/public/vendor/images/dim.png +0 -0
- data/public/vendor/images/directory.png +0 -0
- data/public/vendor/images/doc.png +0 -0
- data/public/vendor/images/file.png +0 -0
- data/public/vendor/images/film.png +0 -0
- data/public/vendor/images/flash.png +0 -0
- data/public/vendor/images/folder_open.png +0 -0
- data/public/vendor/images/grey.png +0 -0
- data/public/vendor/images/html.png +0 -0
- data/public/vendor/images/icons-18-black.png +0 -0
- data/public/vendor/images/icons-18-white.png +0 -0
- data/public/vendor/images/icons-36-black.png +0 -0
- data/public/vendor/images/icons-36-white.png +0 -0
- data/public/vendor/images/java.png +0 -0
- data/public/vendor/images/linux.png +0 -0
- data/public/vendor/images/music.png +0 -0
- data/public/vendor/images/pdf.png +0 -0
- data/public/vendor/images/php.png +0 -0
- data/public/vendor/images/picture.png +0 -0
- data/public/vendor/images/ppt.png +0 -0
- data/public/vendor/images/psd.png +0 -0
- data/public/vendor/images/ruby.png +0 -0
- data/public/vendor/images/script.png +0 -0
- data/public/vendor/images/spinner.gif +0 -0
- data/public/vendor/images/txt.png +0 -0
- data/public/vendor/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/vendor/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/vendor/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/vendor/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_20_555555_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/vendor/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
- data/public/vendor/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/vendor/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
- data/public/vendor/images/ui-icons_217bc0_256x240.png +0 -0
- data/public/vendor/images/ui-icons_222222_256x240.png +0 -0
- data/public/vendor/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/vendor/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/vendor/images/ui-icons_454545_256x240.png +0 -0
- data/public/vendor/images/ui-icons_469bdd_256x240.png +0 -0
- data/public/vendor/images/ui-icons_4b8e0b_256x240.png +0 -0
- data/public/vendor/images/ui-icons_6da8d5_256x240.png +0 -0
- data/public/vendor/images/ui-icons_888888_256x240.png +0 -0
- data/public/vendor/images/ui-icons_a83300_256x240.png +0 -0
- data/public/vendor/images/ui-icons_cccccc_256x240.png +0 -0
- data/public/vendor/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/vendor/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/public/vendor/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/vendor/images/ui-icons_f9bd01_256x240.png +0 -0
- data/public/vendor/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/vendor/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/vendor/images/xls.png +0 -0
- data/public/vendor/images/zip.png +0 -0
- data/public/vendor/js/bootstrap-slider.js +1550 -0
- data/public/vendor/js/bootstrap.js +2317 -0
- data/public/vendor/js/bootstrap.min.js +7 -0
- data/public/vendor/js/jquery-2.1.4.js +9210 -0
- data/public/vendor/js/jquery-2.1.4.min.js +4 -0
- data/public/vendor/js/jquery-2.1.4.min.map +1 -0
- data/public/vendor/js/jquery-ui-1.10.2.custom.min.js +7 -0
- data/public/vendor/js/jquery.cookie.js +72 -0
- data/public/vendor/js/jquery.hammer.min.js +7 -0
- data/public/vendor/js/jquery.lazyload.min.js +15 -0
- data/public/vendor/js/jquery.localize.js +180 -0
- data/public/vendor/js/jquery.mobile-1.3.1.min.js +7 -0
- data/public/vendor/js/jquery.scrollTo-1.4.3.1.js +218 -0
- data/public/vendor/js/jqueryFileTree.js +95 -0
- data/public/vendor/js/swipeview.js +471 -0
- data/views/browse.haml +97 -0
- data/views/config.haml +115 -0
- data/views/layout.haml +12 -0
- data/views/login.haml +51 -0
- data/views/reader.haml +70 -0
- data/views/statistics.haml +108 -0
- data/views/tablet3.haml +80 -0
- metadata +334 -0
@@ -0,0 +1,170 @@
|
|
1
|
+
/*!
|
2
|
+
License: refer to LICENSE file
|
3
|
+
*/
|
4
|
+
|
5
|
+
// function to format the hash to object
|
6
|
+
// example: #book=abc.zip&page=7 -> $['book']='abc.zip', $['page']=7
|
7
|
+
function getHashParams() {
|
8
|
+
var hashParams = {};
|
9
|
+
var e,
|
10
|
+
a = /\+/g, // Regex for replacing addition symbol with a space
|
11
|
+
r = /([^&;=]+)=?([^&;]*)/g,
|
12
|
+
// d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
|
13
|
+
d = function (s) { return decodeURIComponent(s); },
|
14
|
+
q = window.location.hash.substring(1);
|
15
|
+
|
16
|
+
while (e = r.exec(q))
|
17
|
+
hashParams[d(e[1])] = d(e[2]);
|
18
|
+
|
19
|
+
return hashParams;
|
20
|
+
}
|
21
|
+
|
22
|
+
// return fully formatted hash
|
23
|
+
function fullhash(page) {
|
24
|
+
return 'book=' + getHashParams()['book'] + '&page=' + page;
|
25
|
+
}
|
26
|
+
|
27
|
+
// a queue that will make the browser run more responsively
|
28
|
+
// renamed $.queue to $.jobqueue, because of name conflict with scrollTo jquery plug-in
|
29
|
+
$.jobqueue = {
|
30
|
+
_timer: null,
|
31
|
+
_queue: [],
|
32
|
+
add: function(fn, context, time) {
|
33
|
+
var setTimer = function(time) {
|
34
|
+
$.jobqueue._timer = setTimeout(function() {
|
35
|
+
time = $.jobqueue.add();
|
36
|
+
if ($.jobqueue._queue.length) {
|
37
|
+
setTimer(time);
|
38
|
+
}
|
39
|
+
}, time || 2);
|
40
|
+
}
|
41
|
+
|
42
|
+
if (fn) {
|
43
|
+
$.jobqueue._queue.push([fn, context, time]);
|
44
|
+
if ($.jobqueue._queue.length == 1) {
|
45
|
+
setTimer(time);
|
46
|
+
}
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
|
50
|
+
var next = $.jobqueue._queue.shift();
|
51
|
+
if (!next) {
|
52
|
+
return 0;
|
53
|
+
}
|
54
|
+
next[0].call(next[1] || window);
|
55
|
+
return next[2];
|
56
|
+
},
|
57
|
+
clear: function() {
|
58
|
+
clearTimeout($.jobqueue._timer);
|
59
|
+
$.jobqueue._queue = [];
|
60
|
+
}
|
61
|
+
};
|
62
|
+
|
63
|
+
function reload_locale() {
|
64
|
+
// load the text localization for corresponding language i18n
|
65
|
+
var opts = { pathPrefix: "/lang" };
|
66
|
+
$("[data-localize]").localize("k", opts);
|
67
|
+
}
|
68
|
+
|
69
|
+
// set screen resolution on the session
|
70
|
+
function setScreenSize() {
|
71
|
+
$.post('/screen', { width: window.innerWidth, height: window.innerHeight }, function(json) {
|
72
|
+
if (json.outcome == 'success') {
|
73
|
+
// do something with the knowledge possibly?
|
74
|
+
} else {
|
75
|
+
alert('Unable to let server know what the screen resolution is!');
|
76
|
+
}
|
77
|
+
},'json');
|
78
|
+
}
|
79
|
+
|
80
|
+
function uport() {
|
81
|
+
// get the url port
|
82
|
+
var port = window.location.port || '80';
|
83
|
+
return port;
|
84
|
+
}
|
85
|
+
|
86
|
+
|
87
|
+
/*
|
88
|
+
full screen functions
|
89
|
+
*/
|
90
|
+
function goFullScreen(i) {
|
91
|
+
var elem;
|
92
|
+
|
93
|
+
// if out what i is
|
94
|
+
if (typeof i == 'object' || i instanceof Object) {
|
95
|
+
// i is a DOM element
|
96
|
+
elem = i;
|
97
|
+
}
|
98
|
+
else if (typeof i == 'string' || i instanceof String) {
|
99
|
+
// i is an ID of DOM element
|
100
|
+
elem = document.getElementById(i);
|
101
|
+
}
|
102
|
+
else {
|
103
|
+
alert('goFullScreen(): unknown i');
|
104
|
+
}
|
105
|
+
|
106
|
+
// go full screen
|
107
|
+
if (elem.mozRequestFullScreen) {
|
108
|
+
elem.mozRequestFullScreen();
|
109
|
+
}
|
110
|
+
else if (elem.webkitRequestFullScreen) {
|
111
|
+
elem.webkitRequestFullScreen();
|
112
|
+
}
|
113
|
+
else {
|
114
|
+
alert('cannot go full screen');
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
function exitFullScreen() {
|
119
|
+
if (document.mozCancelFullScreen) {
|
120
|
+
document.mozCancelFullScreen();
|
121
|
+
}
|
122
|
+
else if (document.webkitCancelFullScreen) {
|
123
|
+
document.webkitCancelFullScreen();
|
124
|
+
}
|
125
|
+
else {
|
126
|
+
alert('cannot exit full screen');
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
function toggleFullScreen(id) {
|
131
|
+
if (isFullScreen()) {
|
132
|
+
exitFullScreen();
|
133
|
+
}
|
134
|
+
else {
|
135
|
+
goFullScreen(id);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
function isFullScreen() {
|
140
|
+
if (typeof document.mozFullScreen != 'undefined') {
|
141
|
+
return document.mozFullScreen;
|
142
|
+
}
|
143
|
+
else if (typeof document.webkitIsFullScreen != 'undefined') {
|
144
|
+
return document.webkitIsFullScreen;
|
145
|
+
}
|
146
|
+
else if (screen.width == window.innerWidth && screen.height == window.innerHeight) {
|
147
|
+
return true;
|
148
|
+
}
|
149
|
+
else {
|
150
|
+
return false;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
function isImageCached(src) {
|
155
|
+
var image = new Image();
|
156
|
+
image.src = src;
|
157
|
+
|
158
|
+
return image.complete;
|
159
|
+
}
|
160
|
+
|
161
|
+
function updateBatteryLevel() {
|
162
|
+
if (navigator.battery) {
|
163
|
+
// firefox support
|
164
|
+
battery_level = Math.floor(navigator.battery.level * 100) + '%';
|
165
|
+
}
|
166
|
+
else if (navigator.getBattery()) {
|
167
|
+
// chrome support
|
168
|
+
navigator.getBattery().then(function(battery) { battery_level = Math.floor(battery.level * 100) + '%' });
|
169
|
+
}
|
170
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
{
|
2
|
+
"Kamishibai": "Kamishibai",
|
3
|
+
"yes": "是",
|
4
|
+
"no": "否",
|
5
|
+
"username": "用戶名",
|
6
|
+
"password": "密碼",
|
7
|
+
"cancel": "取消",
|
8
|
+
"save": "儲存",
|
9
|
+
"close": "關閉",
|
10
|
+
"orderby": "排序方式",
|
11
|
+
"filename": "檔案名",
|
12
|
+
"filesize": "檔案大小",
|
13
|
+
"filedate": "檔案日期",
|
14
|
+
"folder": "文件夾",
|
15
|
+
"folders": "文件夾",
|
16
|
+
"preferences": "設定",
|
17
|
+
"toggleFullScreen": "全屏切換",
|
18
|
+
|
19
|
+
"login": {
|
20
|
+
"header": "Kamishibai 登錄",
|
21
|
+
"LogIn": "登錄"
|
22
|
+
},
|
23
|
+
|
24
|
+
"browse":
|
25
|
+
{
|
26
|
+
"Path": "路徑",
|
27
|
+
"All": "全",
|
28
|
+
"New": "新",
|
29
|
+
"Reading": "閱讀中",
|
30
|
+
"Finished": "閱讀完",
|
31
|
+
"Author": "作者",
|
32
|
+
"Search": "搜索",
|
33
|
+
"Action": "動作",
|
34
|
+
"Bookmarks": "書籤",
|
35
|
+
"Menu": "菜單",
|
36
|
+
"SimpleMode": "簡單模式",
|
37
|
+
"Preferences": "設定",
|
38
|
+
"Restart": "重啟程序",
|
39
|
+
"RestartMsg": "重啟中。請稍候。",
|
40
|
+
"LogOut": "登出",
|
41
|
+
"Edit": "編輯",
|
42
|
+
"Delete": "刪除",
|
43
|
+
"DeleteDisable": "刪除結束"
|
44
|
+
},
|
45
|
+
|
46
|
+
"reader":
|
47
|
+
{
|
48
|
+
"Single": "單頁(s)",
|
49
|
+
"Double": "雙頁",
|
50
|
+
"ReadToLeft": "L←R (e)",
|
51
|
+
"ReadToRight": "L→R",
|
52
|
+
"Normal": "norm<u>a</u>l",
|
53
|
+
"Full": "full",
|
54
|
+
"NoBlackBar": "no <u>b</u>lack bar",
|
55
|
+
"BlackBar": "black bar",
|
56
|
+
"Even": "e<u>v</u>en",
|
57
|
+
"Odd": "odd",
|
58
|
+
"Home": "Home (␛)",
|
59
|
+
"Close": "Close (↵)"
|
60
|
+
},
|
61
|
+
|
62
|
+
"config":
|
63
|
+
{
|
64
|
+
"Browse": "瀏覽",
|
65
|
+
"SaveFolders": "Save Folders",
|
66
|
+
"Path": "Path",
|
67
|
+
"AddFolder": "Add Folder",
|
68
|
+
"RemoveFolder": "X",
|
69
|
+
"Action": "Action",
|
70
|
+
"Books": "Books",
|
71
|
+
"Port": "Port",
|
72
|
+
"NewBookDays": "新書(天)",
|
73
|
+
"ResizeImage": "Resize Image",
|
74
|
+
"ImageQuality": "Image Quality (%)",
|
75
|
+
"SavePreferences": "Save Preferences",
|
76
|
+
"alertPort": "端口只能在1025和65535之間",
|
77
|
+
"alertImageQuality": "Image quality can only be between 0 and 100",
|
78
|
+
"Saving": "Saving",
|
79
|
+
"SavingMsg": "Saving preferences/folders...",
|
80
|
+
"Statistics": "統計"
|
81
|
+
}
|
82
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
{
|
2
|
+
"Kamishibai": "Kamishibai",
|
3
|
+
"yes": "yes",
|
4
|
+
"no": "no",
|
5
|
+
"username": "Username",
|
6
|
+
"password": "Password",
|
7
|
+
"cancel": "Cancel",
|
8
|
+
"save": "Save",
|
9
|
+
"close": "Close",
|
10
|
+
"orderby": "Order By",
|
11
|
+
"filename": "Name",
|
12
|
+
"filesize": "Size",
|
13
|
+
"filedate": "Date",
|
14
|
+
"folder": "Folder",
|
15
|
+
"folders": "Folders",
|
16
|
+
"preferences": "Preferences",
|
17
|
+
"toggleFullScreen": "Toggle Full Screen",
|
18
|
+
|
19
|
+
"login": {
|
20
|
+
"header": "Kamishibai log in",
|
21
|
+
"LogIn": "Log In"
|
22
|
+
},
|
23
|
+
|
24
|
+
"browse":
|
25
|
+
{
|
26
|
+
"Path": "Path",
|
27
|
+
"All": "All",
|
28
|
+
"New": "New",
|
29
|
+
"Reading": "Reading",
|
30
|
+
"Finished": "Finished",
|
31
|
+
"Author": "Author",
|
32
|
+
"Search": "Search",
|
33
|
+
"Action": "Action",
|
34
|
+
"Bookmarks": "Bookmarks",
|
35
|
+
"Menu": "Menu",
|
36
|
+
"SimpleMode": "Simple Mode",
|
37
|
+
"Preferences": "Preferences",
|
38
|
+
"Restart": "Restart",
|
39
|
+
"RestartMsg": "Restarting... Please wait, the page will auto refresh in few seconds.",
|
40
|
+
"LogOut": "Log out",
|
41
|
+
"Edit": "Edit",
|
42
|
+
"Delete": "Delete",
|
43
|
+
"DeleteDisable": "Disable Delete"
|
44
|
+
},
|
45
|
+
|
46
|
+
"reader":
|
47
|
+
{
|
48
|
+
"Single": "<u>s</u>ingle",
|
49
|
+
"Double": "double",
|
50
|
+
"ReadToLeft": "L←R (e)",
|
51
|
+
"ReadToRight": "L→R",
|
52
|
+
"Normal": "norm<u>a</u>l",
|
53
|
+
"Full": "full",
|
54
|
+
"NoBlackBar": "no <u>b</u>lack bar",
|
55
|
+
"BlackBar": "black bar",
|
56
|
+
"Even": "e<u>v</u>en",
|
57
|
+
"Odd": "odd",
|
58
|
+
"Home": "Home (␛)",
|
59
|
+
"Close": "Close (↵)"
|
60
|
+
},
|
61
|
+
|
62
|
+
"config":
|
63
|
+
{
|
64
|
+
"Browse": "Browse",
|
65
|
+
"SaveFolders": "Save Folders",
|
66
|
+
"Path": "Path",
|
67
|
+
"AddFolder": "Add Folder",
|
68
|
+
"RemoveFolder": "X",
|
69
|
+
"Action": "Action",
|
70
|
+
"Books": "Books",
|
71
|
+
"Port": "Port",
|
72
|
+
"NewBookDays": "New Book (Days)",
|
73
|
+
"ResizeImage": "Resize Image",
|
74
|
+
"ImageQuality": "Image Quality (%)",
|
75
|
+
"SavePreferences": "Save Preferences",
|
76
|
+
"alertPort": "Port number can only be between 1025 and 65535",
|
77
|
+
"alertImageQuality": "Image quality can only be between 0 and 100",
|
78
|
+
"Saving": "Saving",
|
79
|
+
"SavingMsg": "Saving preferences/folders...",
|
80
|
+
"Statistics": "Statistics"
|
81
|
+
}
|
82
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
{
|
2
|
+
"Kamishibai": "カミシバイ",
|
3
|
+
"yes": "はい",
|
4
|
+
"no": "いいえ",
|
5
|
+
"username": "ユーザ",
|
6
|
+
"password": "パスワード",
|
7
|
+
"cancel": "キャンセル",
|
8
|
+
"save": "セーブ",
|
9
|
+
"close": "閉じる",
|
10
|
+
"orderby": "並び",
|
11
|
+
"filename": "名",
|
12
|
+
"filesize": "サイズ",
|
13
|
+
"filedate": "日付",
|
14
|
+
"folder": "フォルダ",
|
15
|
+
"folders": "フォルダ",
|
16
|
+
"preferences": "設定",
|
17
|
+
"toggleFullScreen": "フルスクリーン",
|
18
|
+
|
19
|
+
"login": {
|
20
|
+
"header": "カミシバイ ログイン",
|
21
|
+
"LogIn": "ログイン"
|
22
|
+
},
|
23
|
+
|
24
|
+
"browse":
|
25
|
+
{
|
26
|
+
"Path": "フォルダ",
|
27
|
+
"All": "全",
|
28
|
+
"New": "新",
|
29
|
+
"Reading": "読む中",
|
30
|
+
"Finished": "既読",
|
31
|
+
"Author": "作家",
|
32
|
+
"Search": "捜索",
|
33
|
+
"Action": "行動",
|
34
|
+
"Bookmarks": "ブックマーク",
|
35
|
+
"Menu": "メニュー",
|
36
|
+
"SimpleMode": "簡単モード",
|
37
|
+
"Preferences": "設定",
|
38
|
+
"Restart": "再起動",
|
39
|
+
"RestartMsg": "再起動中、少々お待ちください。",
|
40
|
+
"LogOut": "ログアウト",
|
41
|
+
"Edit": "編集",
|
42
|
+
"Delete": "削除",
|
43
|
+
"DeleteDisable": "削除終了"
|
44
|
+
},
|
45
|
+
|
46
|
+
"reader":
|
47
|
+
{
|
48
|
+
"Single": "単ページ(s)",
|
49
|
+
"Double": "双ページ",
|
50
|
+
"ReadToLeft": "左←右(e)",
|
51
|
+
"ReadToRight": "左→右",
|
52
|
+
"Normal": "普通(a)",
|
53
|
+
"Full": "フルスクリーン",
|
54
|
+
"NoBlackBar": "黒バー無し(b)",
|
55
|
+
"BlackBar": "黒バー有り",
|
56
|
+
"Even": "偶数頁(v)",
|
57
|
+
"Odd": "奇数頁",
|
58
|
+
"Home": "戻る (␛)",
|
59
|
+
"Close": "閉じる (↵)"
|
60
|
+
},
|
61
|
+
|
62
|
+
"config":
|
63
|
+
{
|
64
|
+
"Browse": "戻る",
|
65
|
+
"SaveFolders": "セーブ",
|
66
|
+
"Path": "ディレクトリ",
|
67
|
+
"AddFolder": "フォルダ追加",
|
68
|
+
"RemoveFolder": "外す",
|
69
|
+
"Action": "行動",
|
70
|
+
"Books": "本",
|
71
|
+
"Port": "ポート",
|
72
|
+
"NewBookDays": "新刊(日付)",
|
73
|
+
"ResizeImage": "画像再圧縮",
|
74
|
+
"ImageQuality": "画質(%)",
|
75
|
+
"SavePreferences": "セーブ",
|
76
|
+
"alertPort": "ポートの有効な設定は1025-65535です。",
|
77
|
+
"alertImageQuality": "画質の有効な設定は0-100です。",
|
78
|
+
"Saving": "セーブ",
|
79
|
+
"SavingMsg": "セーブ中、少々お待ちください。",
|
80
|
+
"Statistics": "統計"
|
81
|
+
}
|
82
|
+
}
|
@@ -0,0 +1,252 @@
|
|
1
|
+
/*! =========================================================
|
2
|
+
* bootstrap-slider.js
|
3
|
+
*
|
4
|
+
* Maintainers:
|
5
|
+
* Kyle Kemp
|
6
|
+
* - Twitter: @seiyria
|
7
|
+
* - Github: seiyria
|
8
|
+
* Rohit Kalkur
|
9
|
+
* - Twitter: @Rovolutionary
|
10
|
+
* - Github: rovolution
|
11
|
+
*
|
12
|
+
* =========================================================
|
13
|
+
*
|
14
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
15
|
+
* you may not use this file except in compliance with the License.
|
16
|
+
* You may obtain a copy of the License at
|
17
|
+
*
|
18
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
19
|
+
*
|
20
|
+
* Unless required by applicable law or agreed to in writing, software
|
21
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
22
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
23
|
+
* See the License for the specific language governing permissions and
|
24
|
+
* limitations under the License.
|
25
|
+
* ========================================================= */
|
26
|
+
.slider {
|
27
|
+
display: inline-block;
|
28
|
+
vertical-align: middle;
|
29
|
+
position: relative;
|
30
|
+
}
|
31
|
+
.slider.slider-horizontal {
|
32
|
+
width: 210px;
|
33
|
+
height: 20px;
|
34
|
+
}
|
35
|
+
.slider.slider-horizontal .slider-track {
|
36
|
+
height: 10px;
|
37
|
+
width: 100%;
|
38
|
+
margin-top: -5px;
|
39
|
+
top: 50%;
|
40
|
+
left: 0;
|
41
|
+
}
|
42
|
+
.slider.slider-horizontal .slider-selection,
|
43
|
+
.slider.slider-horizontal .slider-track-low,
|
44
|
+
.slider.slider-horizontal .slider-track-high {
|
45
|
+
height: 100%;
|
46
|
+
top: 0;
|
47
|
+
bottom: 0;
|
48
|
+
}
|
49
|
+
.slider.slider-horizontal .slider-tick,
|
50
|
+
.slider.slider-horizontal .slider-handle {
|
51
|
+
margin-left: -10px;
|
52
|
+
margin-top: -5px;
|
53
|
+
}
|
54
|
+
.slider.slider-horizontal .slider-tick.triangle,
|
55
|
+
.slider.slider-horizontal .slider-handle.triangle {
|
56
|
+
border-width: 0 10px 10px 10px;
|
57
|
+
width: 0;
|
58
|
+
height: 0;
|
59
|
+
border-bottom-color: #0480be;
|
60
|
+
margin-top: 0;
|
61
|
+
}
|
62
|
+
.slider.slider-horizontal .slider-tick-label-container {
|
63
|
+
white-space: nowrap;
|
64
|
+
margin-top: 20px;
|
65
|
+
}
|
66
|
+
.slider.slider-horizontal .slider-tick-label-container .slider-tick-label {
|
67
|
+
padding-top: 4px;
|
68
|
+
display: inline-block;
|
69
|
+
text-align: center;
|
70
|
+
}
|
71
|
+
.slider.slider-vertical {
|
72
|
+
height: 210px;
|
73
|
+
width: 20px;
|
74
|
+
}
|
75
|
+
.slider.slider-vertical .slider-track {
|
76
|
+
width: 10px;
|
77
|
+
height: 100%;
|
78
|
+
margin-left: -5px;
|
79
|
+
left: 50%;
|
80
|
+
top: 0;
|
81
|
+
}
|
82
|
+
.slider.slider-vertical .slider-selection {
|
83
|
+
width: 100%;
|
84
|
+
left: 0;
|
85
|
+
top: 0;
|
86
|
+
bottom: 0;
|
87
|
+
}
|
88
|
+
.slider.slider-vertical .slider-track-low,
|
89
|
+
.slider.slider-vertical .slider-track-high {
|
90
|
+
width: 100%;
|
91
|
+
left: 0;
|
92
|
+
right: 0;
|
93
|
+
}
|
94
|
+
.slider.slider-vertical .slider-tick,
|
95
|
+
.slider.slider-vertical .slider-handle {
|
96
|
+
margin-left: -5px;
|
97
|
+
margin-top: -10px;
|
98
|
+
}
|
99
|
+
.slider.slider-vertical .slider-tick.triangle,
|
100
|
+
.slider.slider-vertical .slider-handle.triangle {
|
101
|
+
border-width: 10px 0 10px 10px;
|
102
|
+
width: 1px;
|
103
|
+
height: 1px;
|
104
|
+
border-left-color: #0480be;
|
105
|
+
margin-left: 0;
|
106
|
+
}
|
107
|
+
.slider.slider-vertical .slider-tick-label-container {
|
108
|
+
white-space: nowrap;
|
109
|
+
}
|
110
|
+
.slider.slider-vertical .slider-tick-label-container .slider-tick-label {
|
111
|
+
padding-left: 4px;
|
112
|
+
}
|
113
|
+
.slider.slider-disabled .slider-handle {
|
114
|
+
background-image: -webkit-linear-gradient(top, #dfdfdf 0%, #bebebe 100%);
|
115
|
+
background-image: -o-linear-gradient(top, #dfdfdf 0%, #bebebe 100%);
|
116
|
+
background-image: linear-gradient(to bottom, #dfdfdf 0%, #bebebe 100%);
|
117
|
+
background-repeat: repeat-x;
|
118
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf', endColorstr='#ffbebebe', GradientType=0);
|
119
|
+
}
|
120
|
+
.slider.slider-disabled .slider-track {
|
121
|
+
background-image: -webkit-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%);
|
122
|
+
background-image: -o-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%);
|
123
|
+
background-image: linear-gradient(to bottom, #e5e5e5 0%, #e9e9e9 100%);
|
124
|
+
background-repeat: repeat-x;
|
125
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5', endColorstr='#ffe9e9e9', GradientType=0);
|
126
|
+
cursor: not-allowed;
|
127
|
+
}
|
128
|
+
.slider input {
|
129
|
+
display: none;
|
130
|
+
}
|
131
|
+
.slider .tooltip.top {
|
132
|
+
margin-top: -36px;
|
133
|
+
}
|
134
|
+
.slider .tooltip-inner {
|
135
|
+
white-space: nowrap;
|
136
|
+
}
|
137
|
+
.slider .hide {
|
138
|
+
display: none;
|
139
|
+
}
|
140
|
+
.slider-track {
|
141
|
+
position: absolute;
|
142
|
+
cursor: pointer;
|
143
|
+
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%);
|
144
|
+
background-image: -o-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%);
|
145
|
+
background-image: linear-gradient(to bottom, #f5f5f5 0%, #f9f9f9 100%);
|
146
|
+
background-repeat: repeat-x;
|
147
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
|
148
|
+
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
149
|
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
150
|
+
border-radius: 4px;
|
151
|
+
}
|
152
|
+
.slider-selection {
|
153
|
+
position: absolute;
|
154
|
+
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
155
|
+
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
156
|
+
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
|
157
|
+
background-repeat: repeat-x;
|
158
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
|
159
|
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
160
|
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
161
|
+
-webkit-box-sizing: border-box;
|
162
|
+
-moz-box-sizing: border-box;
|
163
|
+
box-sizing: border-box;
|
164
|
+
border-radius: 4px;
|
165
|
+
}
|
166
|
+
.slider-selection.tick-slider-selection {
|
167
|
+
background-image: -webkit-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
168
|
+
background-image: -o-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
169
|
+
background-image: linear-gradient(to bottom, #89cdef 0%, #81bfde 100%);
|
170
|
+
background-repeat: repeat-x;
|
171
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef', endColorstr='#ff81bfde', GradientType=0);
|
172
|
+
}
|
173
|
+
.slider-track-low,
|
174
|
+
.slider-track-high {
|
175
|
+
position: absolute;
|
176
|
+
background: transparent;
|
177
|
+
-webkit-box-sizing: border-box;
|
178
|
+
-moz-box-sizing: border-box;
|
179
|
+
box-sizing: border-box;
|
180
|
+
border-radius: 4px;
|
181
|
+
}
|
182
|
+
.slider-handle {
|
183
|
+
position: absolute;
|
184
|
+
width: 20px;
|
185
|
+
height: 20px;
|
186
|
+
background-color: #337ab7;
|
187
|
+
background-image: -webkit-linear-gradient(top, #149bdf 0%, #0480be 100%);
|
188
|
+
background-image: -o-linear-gradient(top, #149bdf 0%, #0480be 100%);
|
189
|
+
background-image: linear-gradient(to bottom, #149bdf 0%, #0480be 100%);
|
190
|
+
background-repeat: repeat-x;
|
191
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
|
192
|
+
filter: none;
|
193
|
+
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
194
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
195
|
+
border: 0px solid transparent;
|
196
|
+
}
|
197
|
+
.slider-handle.round {
|
198
|
+
border-radius: 50%;
|
199
|
+
}
|
200
|
+
.slider-handle.triangle {
|
201
|
+
background: transparent none;
|
202
|
+
}
|
203
|
+
.slider-handle.custom {
|
204
|
+
background: transparent none;
|
205
|
+
}
|
206
|
+
.slider-handle.custom::before {
|
207
|
+
line-height: 20px;
|
208
|
+
font-size: 20px;
|
209
|
+
content: '\2605';
|
210
|
+
color: #726204;
|
211
|
+
}
|
212
|
+
.slider-tick {
|
213
|
+
position: absolute;
|
214
|
+
width: 20px;
|
215
|
+
height: 20px;
|
216
|
+
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
217
|
+
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
218
|
+
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
|
219
|
+
background-repeat: repeat-x;
|
220
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
|
221
|
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
222
|
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
223
|
+
-webkit-box-sizing: border-box;
|
224
|
+
-moz-box-sizing: border-box;
|
225
|
+
box-sizing: border-box;
|
226
|
+
filter: none;
|
227
|
+
opacity: 0.8;
|
228
|
+
border: 0px solid transparent;
|
229
|
+
}
|
230
|
+
.slider-tick.round {
|
231
|
+
border-radius: 50%;
|
232
|
+
}
|
233
|
+
.slider-tick.triangle {
|
234
|
+
background: transparent none;
|
235
|
+
}
|
236
|
+
.slider-tick.custom {
|
237
|
+
background: transparent none;
|
238
|
+
}
|
239
|
+
.slider-tick.custom::before {
|
240
|
+
line-height: 20px;
|
241
|
+
font-size: 20px;
|
242
|
+
content: '\2605';
|
243
|
+
color: #726204;
|
244
|
+
}
|
245
|
+
.slider-tick.in-selection {
|
246
|
+
background-image: -webkit-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
247
|
+
background-image: -o-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
248
|
+
background-image: linear-gradient(to bottom, #89cdef 0%, #81bfde 100%);
|
249
|
+
background-repeat: repeat-x;
|
250
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef', endColorstr='#ff81bfde', GradientType=0);
|
251
|
+
opacity: 1;
|
252
|
+
}
|