ect (or 2du) преди 8 години
родител
ревизия
3447e16ae0
променени са 3 файла, в които са добавени 84 реда и са изтрити 69 реда
  1. 62 62
      app.py
  2. 1 1
      func.py
  3. 21 6
      language/en-US.json

+ 62 - 62
app.py

@@ -400,7 +400,7 @@ def plus_inter(tools = None):
     else:
         if tools == 'plus_inter_wiki':
             title = '인터위키 ' + load_lang(lang_data, 'plus')
-            form_data = '<input placeholder="이름" type="text" name="title"><hr><input placeholder="링크" type="text" name="link">'
+            form_data = '<input placeholder="' + load_lang(lang_data, 'name') + '" type="text" name="title"><hr><input placeholder="링크" type="text" name="link">'
         else:
             title = 'HTML 필터 ' + load_lang(lang_data, 'plus')
             form_data = '<input placeholder="HTML" type="text" name="title">'
@@ -502,10 +502,10 @@ def edit_set(num = 0):
                 imp = ['기본 설정', wiki_set(conn, 1), custom(conn), other2([0, 0])],
                 data = '''
                         <form method="post">
-                            <span>이름</span>
+                            <span>''' + load_lang(lang_data, 'name') + '''</span>
                             <br>
                             <br>
-                            <input placeholder="이름" type="text" name="name" value="''' + html.escape(d_list[0]) + '''">
+                            <input placeholder="''' + load_lang(lang_data, 'name') + '''" type="text" name="name" value="''' + html.escape(d_list[0]) + '''">
                             <hr>
                             <span>로고 (HTML)</span>
                             <br>
@@ -517,10 +517,10 @@ def edit_set(num = 0):
                             <br>
                             <input placeholder="대문" type="text" name="frontpage" value="''' + html.escape(d_list[2]) + '''">
                             <hr>
-                            <span>라이선스 (HTML)</span>
+                            <span>''' + load_lang(lang_data, 'license') + ''' (HTML)</span>
                             <br>
                             <br>
-                            <input placeholder="라이선스" type="text" name="license" value="''' + html.escape(d_list[3]) + '''">
+                            <input placeholder="''' + load_lang(lang_data, 'license') + '''" type="text" name="license" value="''' + html.escape(d_list[3]) + '''">
                             <hr>
                             <span>파일 크기 [메가]</span>
                             <br>
@@ -753,7 +753,7 @@ def not_close_topic():
     div += '</ul>'
 
     return html_minify(render_template(skin_check(conn), 
-        imp = ['' + load_lang(lang_data, 'open') + ' 토론 ' + load_lang(lang_data, 'list'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
+        imp = ['' + load_lang(lang_data, 'open') + ' ' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'list'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
         data = div,
         menu = [['manager', load_lang(lang_data, 'admin')]]
     ))
@@ -855,7 +855,7 @@ def admin_plus(name = None):
 
         data += '<li><input type="checkbox" ' + state +  ' name="ban" ' + exist_list[0] + '> ' + load_lang(lang_data, 'ban') + '</li>'
         data += '<li><input type="checkbox" ' + state +  ' name="mdel" ' + exist_list[1] + '> ' + load_lang(lang_data, 'bulk_delete') + '</li>'
-        data += '<li><input type="checkbox" ' + state +  ' name="toron" ' + exist_list[2] + '> 토론 관리</li>'
+        data += '<li><input type="checkbox" ' + state +  ' name="toron" ' + exist_list[2] + '> ' + load_lang(lang_data, 'discussion') + ' 관리</li>'
         data += '<li><input type="checkbox" ' + state +  ' name="check" ' + exist_list[3] + '> ' + load_lang(lang_data, 'user') + ' 검사</li>'
         data += '<li><input type="checkbox" ' + state +  ' name="acl" ' + exist_list[4] + '> ' + load_lang(lang_data, 'document') + ' ACL</li>'
         data += '<li><input type="checkbox" ' + state +  ' name="hidel" ' + exist_list[5] + '> ' + load_lang(lang_data, 'history') + ' ' + load_lang(lang_data, 'hide') + '</li>'
@@ -943,7 +943,7 @@ def user_log():
         else:
             count = 0
 
-        list_data += '</ul><hr><ul><li>이 위키에는 ' + str(count) + '명의 사람이 있습니다.</li></ul>'
+        list_data += '</ul><hr><ul><li>All : ' + str(count) + '</li></ul>'
 
     list_data += next_fix('/user_log?num=', num, user_list)
 
@@ -968,7 +968,7 @@ def admin_log():
     for data in get_list:            
         list_data += '<li>' + ip_pas(conn, data[0]) + ' / ' + data[1] + ' / ' + data[2] + '</li>'
 
-    list_data += '</ul><hr><ul><li>주의 : 권한 사용 안하고 열람만 해도 기록되는 경우도 있습니다.</li></ul>'
+    list_data += '</ul>'
     list_data += next_fix('/admin_log?num=', num, get_list)
 
     return html_minify(render_template(skin_check(conn), 
@@ -1147,7 +1147,7 @@ def please():
     div += '</ul>' + next_fix('/please?num=', num, data_list)
     
     return html_minify(render_template(skin_check(conn), 
-        imp = ['필요한 ' + load_lang(lang_data, 'document'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
+        imp = ['' + load_lang(lang_data, 'need') + ' ' + load_lang(lang_data, 'document'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
         data = div,
         menu = [['other', '' + load_lang(lang_data, 'other') + '']]
     ))
@@ -1167,7 +1167,7 @@ def recent_discuss(tools = 'normal'):
             
             m_sub = ' (닫힘)'
 
-        div += '<hr><table style="width: 100%; text-align: center;"><tbody><tr><td style="width: 50%;">토론명</td><td style="width: 50%;">시간</td></tr>'
+        div += '<hr><table style="width: 100%; text-align: center;"><tbody><tr><td style="width: 50%;">' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'name') + '</td><td style="width: 50%;">시간</td></tr>'
     else:
         return redirect('/')
     
@@ -1193,7 +1193,7 @@ def recent_discuss(tools = 'normal'):
         div += '</tbody></table>'
             
     return html_minify(render_template(skin_check(conn), 
-        imp = ['최근 토론', wiki_set(conn, 1), custom(conn), other2([m_sub, 0])],
+        imp = ['최근 ' + load_lang(lang_data, 'discussion') + '', wiki_set(conn, 1), custom(conn), other2([m_sub, 0])],
         data = div,
         menu = 0
     ))
@@ -1394,10 +1394,10 @@ def raw_view(name = None, sub_title = None, num = None):
     elif sub_title:
         curs.execute("select data from topic where id = ? and title = ? and sub = ? and block = ''", [str(num), name, sub_title])
         
-        v_name = '토론 원본'
+        v_name = '' + load_lang(lang_data, 'discussion') + ' 원본'
         sub = ' (' + str(num) + '번)'
 
-        menu = [['topic/' + url_pas(name) + '/sub/' + url_pas(sub_title) + '#' + str(num), '토론'], ['topic/' + url_pas(name) + '/sub/' + url_pas(sub_title) + '/admin/' + str(num), load_lang(lang_data, 'tool')]]
+        menu = [['topic/' + url_pas(name) + '/sub/' + url_pas(sub_title) + '#' + str(num), '' + load_lang(lang_data, 'discussion') + ''], ['topic/' + url_pas(name) + '/sub/' + url_pas(sub_title) + '/admin/' + str(num), load_lang(lang_data, 'tool')]]
     else:
         curs.execute("select data from data where title = ?", [name])
         
@@ -1686,7 +1686,7 @@ def edit(name = None):
 
         curs.execute("select user from scan where title = ?", [name])
         for user_data in curs.fetchall():
-            curs.execute("insert into alarm (name, data, date) values (?, ?, ?)", [ip, ip + '님이 <a href="/w/' + url_pas(name) + '">' + name + '</a> 문서를 편집 했습니다.', today])
+            curs.execute("insert into alarm (name, data, date) values (?, ?, ?)", [ip, ip + ' - <a href="/w/' + url_pas(name) + '">' + name + '</a> (Edit)', today])
 
         history_plus(conn, name, content, today, ip, send_parser(request.form.get('send', None)), leng)
         
@@ -1717,7 +1717,7 @@ def edit(name = None):
         if not request.args.get('section', None):
             get_name = '''
                         <form method="post" id="get_edit" action="/edit_get/''' + url_pas(name) + '''">
-                            <input placeholder="불러 올 문서" name="name" style="width: 50%;" type="text">
+                            <input placeholder="불러 올 ' + load_lang(lang_data, 'document') + '" name="name" style="width: 50%;" type="text">
                             <button id="come" type="submit">불러오기</button>
                         </form>
                         <hr>
@@ -1765,7 +1765,7 @@ def preview(name = None):
     if acl_check(conn, name) == 1:
         return re_error(conn, '/ban')
          
-    new_data = re.sub('\r\n#(?:redirect|넘겨주기) (?P<in>(?:(?!\r\n).)+)\r\n', ' * [[\g<in>]] 문서로 넘겨주기', '\r\n' + request.form.get('content', None) + '\r\n')
+    new_data = re.sub('\r\n#(?:redirect|넘겨주기) (?P<in>(?:(?!\r\n).)+)\r\n', ' * Redirect : [[\g<in>]]', '\r\n' + request.form.get('content', None) + '\r\n')
     new_data = re.sub('^\r\n', '', new_data)
     new_data = re.sub('\r\n$', '', new_data)
     
@@ -1910,7 +1910,7 @@ def move(name = None):
             data = '''
                     <form method="post">
                         ''' + ip_warring(conn) + '''
-                        <input placeholder="문서명" value="''' + name + '''" name="title" type="text">
+                        <input placeholder="''' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'name') + '" value="' + name + '''" name="title" type="text">
                         <hr>
                         <input placeholder="사유" name="send" type="text">
                         <hr>
@@ -1926,7 +1926,7 @@ def other():
     return html_minify(render_template(skin_check(conn), 
         imp = ['' + load_lang(lang_data, 'other') + ' ' + load_lang(lang_data, 'tool'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
         data = '''
-                <h2>기록</h2>
+                <h2>''' + load_lang(lang_data, 'record') + '''</h2>
                 <ul>
                     <li><a href="/manager/6">''' + load_lang(lang_data, 'edit') + '''</a></li>
                     <li><a href="/manager/7">''' + load_lang(lang_data, 'discussion') + '''</a></li>
@@ -1939,12 +1939,12 @@ def other():
                     <li><a href="/not_close_topic">''' + load_lang(lang_data, 'open') + ' ' + load_lang(lang_data, 'discussion') + '''</a></li>
                 </ul>
                 <br>
-                <h2>' + load_lang(lang_data, 'other') + '</h2>
+                <h2>''' + load_lang(lang_data, 'other') + '''</h2>
                 <ul>
                     <li><a href="/title_index">''' + load_lang(lang_data, 'all') + ' ' + load_lang(lang_data, 'document') + '''</a></li>
                     <li><a href="/acl_list">ACL ''' + load_lang(lang_data, 'document') + '''</a></li>
-                    <li><a href="/please">필요한 ''' + load_lang(lang_data, 'document') + '''</a></li>
-                    <li><a href="/upload">파일 올리기</a></li>
+                    <li><a href="/please">''' + load_lang(lang_data, 'need') + ' ' + load_lang(lang_data, 'document') + '''</a></li>
+                    <li><a href="/upload">''' + load_lang(lang_data, 'upload') + '''</a></li>
                     <li><a href="/manager/10">''' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'search') + '''</a></li>
                 </ul>
                 <br>
@@ -1953,9 +1953,9 @@ def other():
                     <li><a href="/manager/1">''' + load_lang(lang_data, 'admin') + ' ' + load_lang(lang_data, 'tool') + '''</a></li>
                 </ul>
                 <br>
-                <h2>버전</h2>
+                <h2>''' + load_lang(lang_data, 'version') + '''</h2>
                 <ul>
-                    <li>이 오픈나무는 <a id="out_link" href="https://github.com/2DU/openNAMU/blob/master/version.md">''' + r_ver + '''</a> 입니다.</li>
+                    <li>''' + load_lang(lang_data, 'version') + ' : <a id="out_link" href="https://github.com/2DU/openNAMU/blob/master/version.md">' + r_ver + '''</a></li>
                 </ul>''',
     menu = 0
     ))
@@ -1963,7 +1963,7 @@ def other():
 @app.route('/manager', methods=['POST', 'GET'])
 @app.route('/manager/<int:num>', methods=['POST', 'GET'])
 def manager(num = 1):
-    title_list = [[load_lang(lang_data, 'document') + ' ACL', '문서명', 'acl'], [load_lang(lang_data, 'user') + ' 검사', 0, 'check'], [load_lang(lang_data, 'user') + ' ' + load_lang(lang_data, 'ban'), 0, 'ban'], ['권한 주기', 0, 'admin'], ['편집 기록', 0, 'record'], ['토론 기록', 0, 'topic_record'], ['그룹 생성', '그룹명', 'admin_plus'], [load_lang(lang_data, 'edit_filter') + ' 생성', '필터명', 'edit_filter'], ['' + load_lang(lang_data, 'search') + '', '문서명', 'search'], ['차단자 ' + load_lang(lang_data, 'search') + '', 0, 'block_user'], [load_lang(lang_data, 'admin') + ' ' + load_lang(lang_data, 'search') + '', 0, 'block_admin'], ['주시 문서 ' + load_lang(lang_data, 'plus') + '', '문서명', 'watch_list']]
+    title_list = [[load_lang(lang_data, 'document') + ' ACL', '' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'name') + '', 'acl'], [load_lang(lang_data, 'user') + ' 검사', 0, 'check'], [load_lang(lang_data, 'user') + ' ' + load_lang(lang_data, 'ban'), 0, 'ban'], ['권한 주기', 0, 'admin'], ['편집 ' + load_lang(lang_data, 'edit') + '', 0, 'record'], ['' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'edit') + '', 0, 'topic_record'], ['그룹 생성', '그룹 ' + load_lang(lang_data, 'name') + '', 'admin_plus'], [load_lang(lang_data, 'edit_filter') + ' 생성', '필터 ' + load_lang(lang_data, 'name') + '', 'edit_filter'], ['' + load_lang(lang_data, 'search') + '', '' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'name') + '', 'search'], ['차단자 ' + load_lang(lang_data, 'search') + '', 0, 'block_user'], [load_lang(lang_data, 'admin') + ' ' + load_lang(lang_data, 'search') + '', 0, 'block_admin'], ['주시 ' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'plus') + '', '' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'name') + '', 'watch_list']]
     
     if num == 1:
         return html_minify(render_template(skin_check(conn), 
@@ -1996,7 +1996,7 @@ def manager(num = 1):
             return redirect('/' + title_list[(num - 2)][2] + '/' + url_pas(request.form.get('name', None)))
         else:
             if title_list[(num - 2)][1] == 0:
-                placeholder = load_lang(lang_data, 'user') + ''
+                placeholder = load_lang(lang_data, 'user') + ' ' + load_lang(lang_data, 'name') + ''
             else:
                 placeholder = title_list[(num - 2)][1]
 
@@ -2054,12 +2054,12 @@ def title_index():
 
         count_end += [count_end[0] - count_end[1]  - count_end[2]  - count_end[3]  - count_end[4]]
         
-        data += '</ul><hr><ul><li>이 위키에는 총 ' + str(count_end[0]) + '개의 문서가 있습니다.</li></ul><hr><ul>'
-        data += '<li>틀 문서는 총 ' + str(count_end[1]) + '개의 문서가 있습니다.</li>'
-        data += '<li>분류 문서는 총 ' + str(count_end[2]) + '개의 문서가 있습니다.</li>'
-        data += '<li>' + load_lang(lang_data, 'user') + ' 문서는 총 ' + str(count_end[3]) + '개의 문서가 있습니다.</li>'
-        data += '<li>파일 문서는 총 ' + str(count_end[4]) + '개의 문서가 있습니다.</li>'
-        data += '<li>나머지 문서는 총 ' + str(count_end[5]) + '개의 문서가 있습니다.</li>'
+        data += '</ul><hr><ul><li>All : ' + str(count_end[0]) + '</li></ul><hr><ul>'
+        data += '<li>Template : ' + str(count_end[1]) + '</li>'
+        data += '<li>Category : ' + str(count_end[2]) + '</li>'
+        data += '<li>User : ' + str(count_end[3]) + '</li>'
+        data += '<li>File : ' + str(count_end[4]) + '</li>'
+        data += '<li>Other : ' + str(count_end[5]) + '</li>'
 
     data += '</ul>' + next_fix('/title_index?num=' + str(num) + '&page=', page, title_list, num)
     sub = ' (' + str(num) + '개)'
@@ -2113,9 +2113,9 @@ def topic_top(name = None, sub = None, num = None):
 @app.route('/topic/<path:name>/sub/<sub>/tool/<regex("close|stop|agree"):tool>')
 def topic_stop(name = None, sub = None, tool = None):
     if tool == 'close':
-        set_list = ['O', '', '토론 닫기', '토론 열림']
+        set_list = ['O', '', '' + load_lang(lang_data, 'discussion') + ' 닫기', '' + load_lang(lang_data, 'discussion') + ' 열림']
     elif tool == 'stop':
-        set_list = ['', 'O', '토론 정지', '토론 재개']
+        set_list = ['', 'O', '' + load_lang(lang_data, 'discussion') + ' 정지', '' + load_lang(lang_data, 'discussion') + ' 재개']
     elif tool == 'agree':
         pass
     else:
@@ -2197,16 +2197,16 @@ def topic_admin(name = None, sub = None, num = None):
     ban = '<li>작성 시간 : ' + data[0][2] + '</li>' + ban
     
     if re.search('(\.|:)', data[0][1]):
-        ban = '<li>작성인 : ' + data[0][1] + ' <li><a href="/record/' + url_pas(data[0][1]) + '">(기록)</a></li>' + ban
+        ban = '<li>작성인 : ' + data[0][1] + ' <li><a href="/record/' + url_pas(data[0][1]) + '">(' + load_lang(lang_data, 'edit') + ')</a></li>' + ban
     else:
-        ban = '<li>작성인 : <a href="/w/' + load_lang(lang_data, 'user') + ':' + data[0][1] + '">' + data[0][1] + '</a> <a href="/record/' + url_pas(data[0][1]) + '">(기록)</a></li>' + ban
+        ban = '<li>작성인 : <a href="/w/' + load_lang(lang_data, 'user') + ':' + data[0][1] + '">' + data[0][1] + '</a> <a href="/record/' + url_pas(data[0][1]) + '">(' + load_lang(lang_data, 'edit') + ')</a></li>' + ban
 
     ban = '<h2>정보</h2><ul>' + ban
 
     return html_minify(render_template(skin_check(conn), 
-        imp = ['토론 ' + load_lang(lang_data, 'tool'), wiki_set(conn, 1), custom(conn), other2([' (' + str(num) + '번)', 0])],
+        imp = ['' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'tool'), wiki_set(conn, 1), custom(conn), other2([' (' + str(num) + '번)', 0])],
         data = ban,
-        menu = [['topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num), '토론']]
+        menu = [['topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num), '' + load_lang(lang_data, 'discussion') + '']]
     ))
 
 @app.route('/topic/<path:name>/sub/<sub>', methods=['POST', 'GET'])
@@ -2235,14 +2235,14 @@ def topic(name = None, sub = None):
 
         match = re.search('^' + load_lang(lang_data, 'user') + ':([^/]+)', name)
         if match:
-            curs.execute('insert into alarm (name, data, date) values (?, ?, ?)', [match.groups()[0], ip + '님이 <a href="/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '">' + load_lang(lang_data, 'user') + ' 토론</a>을 시작했습니다.', today])
+            curs.execute('insert into alarm (name, data, date) values (?, ?, ?)', [match.groups()[0], ip + '<a href="/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '">' + load_lang(lang_data, 'user') + ' - ' + load_lang(lang_data, 'discussion') + '</a> (My)', today])
         
         data = re.sub("\[\[(분류:(?:(?:(?!\]\]).)*))\]\]", "[br]", request.form.get('content', None))
         for rd_data in re.findall("(?:#([0-9]+))", data):
             curs.execute("select ip from topic where title = ? and sub = ? and id = ?", [name, sub, rd_data])
             ip_data = curs.fetchall()
             if ip_data and not re.search('(\.|:)', ip_data[0][0]):
-                curs.execute('insert into alarm (name, data, date) values (?, ?, ?)', [ip_data[0][0], ip + '님이 <a href="/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num) + '">토론</a>에서 언급 했습니다.', today])
+                curs.execute('insert into alarm (name, data, date) values (?, ?, ?)', [ip_data[0][0], ip + ' - <a href="/topic/' + url_pas(name) + '/sub/' + url_pas(sub) + '#' + str(num) + '">' + load_lang(lang_data, 'discussion') + '</a>', today])
             
             data = re.sub("(?P<in>#(?:[0-9]+))", '[[\g<in>]]', data)
 
@@ -2370,7 +2370,7 @@ def topic(name = None, sub = None):
             data += '<button type="submit">전송</button></form>'
 
         return html_minify(render_template(skin_check(conn), 
-            imp = [name, wiki_set(conn, 1), custom(conn), other2([' (토론)', 0])],
+            imp = [name, wiki_set(conn, 1), custom(conn), other2([' (' + load_lang(lang_data, 'discussion') + ')', 0])],
             data = '<h2 id="topic_top_title">' + sub + '</h2>' + all_data + data,
             menu = [['topic/' + url_pas(name), load_lang(lang_data, 'list')]]
         ))
@@ -2410,18 +2410,18 @@ def close_topic_list(name = None, tool = None):
         else:
             curs.execute("select sub from rd where title = ? order by date desc", [name])
             
-            sub = '토론 ' + load_lang(lang_data, 'list')
+            sub = '' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'list')
             
             menu = [['w/' + url_pas(name), load_lang(lang_data, 'document')]]
             
-            plus =  '<a href="/topic/' + url_pas(name) + '/close">(닫힘)</a> <a href="/topic/' + url_pas(name) + '/agree">(합의)</a><hr><input placeholder="토론명" name="topic" type="text"><hr><button type="submit">만들기</button>'
+            plus =  '<a href="/topic/' + url_pas(name) + '/close">(닫힘)</a> <a href="/topic/' + url_pas(name) + '/agree">(합의)</a><hr><input placeholder="' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'name') + '" name="topic" type="text"><hr><button type="submit">만들기</button>'
 
         for data in curs.fetchall():
             curs.execute("select data, date, ip, block from topic where title = ? and sub = ? and id = '1'", [name, data[0]])
             if curs.fetchall():                
                 it_p = 0
                 
-                if sub == '토론 ' + load_lang(lang_data, 'list'):
+                if sub == '' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'list'):
                     curs.execute("select title from stop where title = ? and sub = ? and close = 'O' order by sub asc", [name, data[0]])
                     if curs.fetchall():
                         it_p = 1
@@ -2622,7 +2622,7 @@ def user_check(name = None):
             div = '<a href="/check/' + url_pas(name) + '">(주요 대상)</a> <a href="/check/' + url_pas(request.args.get('plus', None)) + '">(비교 대상)</a><hr>'
 
         div += '<table style="width: 100%; text-align: center;"><tbody><tr>'
-        div += '<td style="width: 33.3%;">이름</td><td style="width: 33.3%;">아이피</td><td style="width: 33.3%;">언제</td></tr>'
+        div += '<td style="width: 33.3%;">' + load_lang(lang_data, 'name') + '</td><td style="width: 33.3%;">아이피</td><td style="width: 33.3%;">언제</td></tr>'
         
         for data in record:
             if data[2]:
@@ -2882,7 +2882,7 @@ def acl(name = None):
             
         return redirect('/acl/' + url_pas(name))            
     else:
-        data = '<h2>문서 ACL</h2><select name="dec" ' + check_ok + '>'
+        data = '<h2>' + load_lang(lang_data, 'document') + ' ACL</h2><select name="dec" ' + check_ok + '>'
     
         if re.search('^' + load_lang(lang_data, 'user') + ':', name):
             acl_list = [['', load_lang(lang_data, 'normal')], ['user', load_lang(lang_data, 'subscriber')], ['all', '모두']]
@@ -2902,7 +2902,7 @@ def acl(name = None):
         data += '</select>'
         
         if not re.search('^' + load_lang(lang_data, 'user') + ':', name):
-            data += '<br><br><h2>토론 ACL</h2><select name="dis" ' + check_ok + '>'
+            data += '<br><br><h2>' + load_lang(lang_data, 'discussion') + ' ACL</h2><select name="dis" ' + check_ok + '>'
         
             curs.execute("select dis, why from acl where title = ?", [name])
             acl_data = curs.fetchall()
@@ -3137,7 +3137,7 @@ def read_view(name = None):
         acl += ' (A)'
             
     if request.args.get('froms', None):
-        else_data = re.sub('\r\n#(?:redirect|넘겨주기) (?P<in>(?:(?!\r\n).)+)\r\n', ' * [[\g<in>]] 문서로 넘겨주기', '\r\n' + else_data + '\r\n')
+        else_data = re.sub('\r\n#(?:redirect|넘겨주기) (?P<in>(?:(?!\r\n).)+)\r\n', ' * Redirect : [[\g<in>]]', '\r\n' + else_data + '\r\n')
         else_data = re.sub('^\r\n', '', else_data)
         else_data = re.sub('\r\n$', '', else_data)
             
@@ -3154,7 +3154,7 @@ def read_view(name = None):
         else:
             menu = [['edit/' + url_pas(name), load_lang(lang_data, 'edit')]]
 
-        menu += [['topic/' + url_pas(name), '토론'], ['history/' + url_pas(name), load_lang(lang_data, 'history')], ['xref/' + url_pas(name), '역링크'], ['acl/' + url_pas(name), 'ACL']]
+        menu += [['topic/' + url_pas(name), '' + load_lang(lang_data, 'discussion') + ''], ['history/' + url_pas(name), load_lang(lang_data, 'history')], ['xref/' + url_pas(name), '역링크'], ['acl/' + url_pas(name), 'ACL']]
 
         if request.args.get('froms', None):
             menu += [['w/' + url_pas(name), '넘기기']]
@@ -3192,7 +3192,7 @@ def user_topic_list(name = None):
     one_admin = admin_check(conn, 1, None)
 
     div = '<table style="width: 100%; text-align: center;"><tbody><tr>'
-    div += '<td style="width: 33.3%;">토론명</td><td style="width: 33.3%;">작성자</td><td style="width: 33.3%;">시간</td></tr>'
+    div += '<td style="width: 33.3%;">' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'name') + '</td><td style="width: 33.3%;">작성자</td><td style="width: 33.3%;">시간</td></tr>'
     
     curs.execute("select title, id, sub, ip, date from topic where ip = ? order by date desc limit ?, '50'", [name, str(sql_num)])
     data_list = curs.fetchall()
@@ -3222,7 +3222,7 @@ def user_topic_list(name = None):
         sub = 0 
     
     return html_minify(render_template(skin_check(conn), 
-        imp = ['토론 기록', wiki_set(conn, 1), custom(conn), other2([sub, 0])],
+        imp = ['' + load_lang(lang_data, 'discussion') + ' ' + load_lang(lang_data, 'edit') + '', wiki_set(conn, 1), custom(conn), other2([sub, 0])],
         data = div,
         menu = [['other', '' + load_lang(lang_data, 'other') + ''], ['user', load_lang(lang_data, 'user')], ['count/' + url_pas(name), '횟수'], ['record/' + url_pas(name), load_lang(lang_data, 'edit')]]
     ))
@@ -3256,7 +3256,7 @@ def recent_changes(name = None, tool = 'record'):
                 
                 curs.execute("select id, title, date, ip, send, leng from history where title = ? order by id + 0 desc limit ?, '50'", [name, str(sql_num)])
             else:
-                div += '<td style="width: 33.3%;">문서명</td><td style="width: 33.3%;">편집자</td><td style="width: 33.3%;">시간</td></tr>'
+                div += '<td style="width: 33.3%;">' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'name') + '</td><td style="width: 33.3%;">편집자</td><td style="width: 33.3%;">시간</td></tr>'
 
                 if what == 'all':
                     div = '<a href="/record/' + url_pas(name) + '?what=revert">(' + load_lang(lang_data, 'revert') + ')</a><hr>' + div
@@ -3276,14 +3276,14 @@ def recent_changes(name = None, tool = 'record'):
 
                     curs.execute("select id, title, date, ip, send, leng from history where ip = ? and send like ? order by date desc limit ?, '50'", [name, sql, str(sql_num)])
         else:
-            div += '<td style="width: 33.3%;">문서명</td><td style="width: 33.3%;">편집자</td><td style="width: 33.3%;">시간</td></tr>'
+            div += '<td style="width: 33.3%;">' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'name') + '</td><td style="width: 33.3%;">편집자</td><td style="width: 33.3%;">시간</td></tr>'
             
             if what == 'all':
                 div = '<a href="/recent_changes?what=revert">(' + load_lang(lang_data, 'revert') + ')</a><hr>' + div
                 div = '<a href="/recent_changes?what=move">(' + load_lang(lang_data, 'move') + ')</a> ' + div
                 div = '<a href="/recent_changes?what=delete">(' + load_lang(lang_data, 'delete') + ')</a> ' + div
 
-                div = '<a href="/recent_discuss">(토론)</a> <a href="/block_log">(' + load_lang(lang_data, 'ban') + ')</a> <a href="/user_log">(가입)</a> <a href="/admin_log">(권한)</a><hr>' + div
+                div = '<a href="/recent_discuss">(' + load_lang(lang_data, 'discussion') + ')</a> <a href="/block_log">(' + load_lang(lang_data, 'ban') + ')</a> <a href="/user_log">(가입)</a> <a href="/admin_log">(권한)</a><hr>' + div
                 
                 curs.execute("select id, title, date, ip, send, leng from history order by date desc limit 50")
             else:
@@ -3385,9 +3385,9 @@ def recent_changes(name = None, tool = 'record'):
                 if curs.fetchall():
                     sub += ' (' + load_lang(lang_data, 'ban') + ')'
 
-                title = '편집 기록'
+                title = '편집 ' + load_lang(lang_data, 'edit') + ''
                 
-                menu = [['other', '' + load_lang(lang_data, 'other') + ''], ['user', load_lang(lang_data, 'user')], ['count/' + url_pas(name), '횟수'], ['topic_record/' + url_pas(name), '토론']]
+                menu = [['other', '' + load_lang(lang_data, 'other') + ''], ['user', load_lang(lang_data, 'user')], ['count/' + url_pas(name), '횟수'], ['topic_record/' + url_pas(name), '' + load_lang(lang_data, 'discussion') + '']]
                 
                 div += next_fix('/record/' + url_pas(name) + '/' + url_pas(what) + '?num=', num, data_list)
                 
@@ -3484,14 +3484,14 @@ def upload():
         return redirect('/w/파일:' + name)      
     else:
         return html_minify(render_template(skin_check(conn), 
-            imp = ['파일 올리기', wiki_set(conn, 1), custom(conn), other2([0, 0])],
+            imp = ['' + load_lang(lang_data, 'upload') + '', wiki_set(conn, 1), custom(conn), other2([0, 0])],
             data =  '''
                     <form method="post" enctype="multipart/form-data" accept-charset="utf8">
                         <input type="file" name="f_data">
                         <hr>
-                        <input placeholder="파일 이름" name="f_name" type="text">
+                        <input placeholder="''' + load_lang(lang_data, 'name') + '''" name="f_name" type="text">
                         <hr>
-                        <input placeholder="라이선스" name="f_lice" type="text">
+                        <input placeholder="''' + load_lang(lang_data, 'license') + '''" name="f_lice" type="text">
                         <hr>
                         ''' + captcha_get(conn) + '''
                         <button id="save" type="submit">''' + load_lang(lang_data, 'save') + '''</button>
@@ -3560,7 +3560,7 @@ def user_info():
         data =  '''
                 <h2>상태</h2>
                 <ul>
-                    <li>''' + ip_user + ''' <a href="/record/''' + url_pas(ip) + '''">(기록)</a></li><li>권한 상태 : ''' + acl + '''</li>
+                    <li>''' + ip_user + ''' <a href="/record/''' + url_pas(ip) + '''">(' + load_lang(lang_data, 'edit') + ')</a></li><li>권한 상태 : ''' + acl + '''</li>
                 </ul>
                 <br>
                 <h2>''' + load_lang(lang_data, 'login') + '''</h2>
@@ -3596,7 +3596,7 @@ def watch_list():
     div += '<a href="/manager/13">(' + load_lang(lang_data, 'plus') + ')</a>'
 
     return html_minify(render_template(skin_check(conn), 
-        imp = ['주시 문서 ' + load_lang(lang_data, 'list'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
+        imp = ['주시 ' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'list'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
         data = div,
         menu = [['manager', load_lang(lang_data, 'admin')]]
     ))
@@ -3699,7 +3699,7 @@ def count_edit(name = None):
         data = '''
                 <ul>
                     <li><a href="/record/''' + url_pas(that) + '''">편집 횟수</a> : ''' + str(data) + '''</li>
-                    <li><a href="/topic_record/''' + url_pas(that) + '''">토론 횟수</a> : ''' + str(t_data) + '''</a></li>
+                    <li><a href="/topic_record/''' + url_pas(that) + '''">''' + load_lang(lang_data, 'discussion') + ''' 횟수</a> : ''' + str(t_data) + '''</a></li>
                 </ul>
                 ''',
         menu = [['user', load_lang(lang_data, 'user')]]

+ 1 - 1
func.py

@@ -22,7 +22,7 @@ from set_mark.tool import sha224
 from mark import *
 
 # 서브 언어팩 불러옴
-json_data = open(os.path.join('language', 'ko-KR.json'), 'rt', encoding='utf-8').read()
+json_data = open(os.path.join('language', 'en-US.json'), 'rt', encoding='utf-8').read()
 else_lang = json.loads(json_data)
 
 def captcha_get(conn):

+ 21 - 6
language/en-US.json

@@ -2,8 +2,8 @@
     "edit" : "Edit",
     "history" : "History",
     "delete" : "Delete",
-    "bulk_delete" : "Bulk delete",
-    "edit_filter" : "Edit filtering",
+    "bulk_delete" : "Bulk Delete",
+    "edit_filter" : "Edit Filtering",
     "move" : "Move",
     "hide" : "Hide",
     "list" : "List",
@@ -17,26 +17,41 @@
     "other" : "Others",
     "tool" : "Tools",
     "plus" : "Add",
+    "open" : "Open",
+    "search" : "Search",
+    "need" : "Needful",
+    "upload" : "File Upload",
+    "record" : "Record",
+    "name" : "Name",
+    "license" : "License",
+    
     "user" : "User",
     "alarm" : "Alarm",
-    "watchlist" : "Watching list",
-    "my_info" : "About me",
+    "watchlist" : "Watching List",
+    "my_info" : "About Me",
+    
     "recent" : "Recently",
-    "recent_changes" : "Recently editted",
+    "recent_changes" : "Recent Changes",
+    
     "discussion" : "Discussions",
+    
     "login" : "Sign in",
     "logout" : "Sign out",
     "register" : "Sign up",
     "no_alarm" : "There is no available alarm",
+    
     "able" : "Able to",
+    
     "year" : "Year",
     "month" : "Month",
     "day" : "Day",
+
     "normal" : "Common",
     "subscriber" : "Member",
     "admin" : "Administrator",
     "owner" : "Owner",
-    "admin_group" : "Moderation group",
+    "admin_group" : "Moderation Group",
+
     "user_css_warring" : "User's CSS will deleted if you close the browser or when you are editting as guest",
     "http_warring" : "Warning : If you are not on HTTPS connection, your information can be leaked. We won't response to that."
 }