فهرست منبع

언어 수정

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:
     else:
         if tools == 'plus_inter_wiki':
         if tools == 'plus_inter_wiki':
             title = '인터위키 ' + load_lang(lang_data, 'plus')
             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:
         else:
             title = 'HTML 필터 ' + load_lang(lang_data, 'plus')
             title = 'HTML 필터 ' + load_lang(lang_data, 'plus')
             form_data = '<input placeholder="HTML" type="text" name="title">'
             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])],
                 imp = ['기본 설정', wiki_set(conn, 1), custom(conn), other2([0, 0])],
                 data = '''
                 data = '''
                         <form method="post">
                         <form method="post">
-                            <span>이름</span>
+                            <span>''' + load_lang(lang_data, 'name') + '''</span>
                             <br>
                             <br>
                             <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>
                             <hr>
                             <span>로고 (HTML)</span>
                             <span>로고 (HTML)</span>
                             <br>
                             <br>
@@ -517,10 +517,10 @@ def edit_set(num = 0):
                             <br>
                             <br>
                             <input placeholder="대문" type="text" name="frontpage" value="''' + html.escape(d_list[2]) + '''">
                             <input placeholder="대문" type="text" name="frontpage" value="''' + html.escape(d_list[2]) + '''">
                             <hr>
                             <hr>
-                            <span>라이선스 (HTML)</span>
+                            <span>''' + load_lang(lang_data, 'license') + ''' (HTML)</span>
                             <br>
                             <br>
                             <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>
                             <hr>
                             <span>파일 크기 [메가]</span>
                             <span>파일 크기 [메가]</span>
                             <br>
                             <br>
@@ -753,7 +753,7 @@ def not_close_topic():
     div += '</ul>'
     div += '</ul>'
 
 
     return html_minify(render_template(skin_check(conn), 
     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,
         data = div,
         menu = [['manager', load_lang(lang_data, 'admin')]]
         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="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="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="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="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>'
         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:
         else:
             count = 0
             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)
     list_data += next_fix('/user_log?num=', num, user_list)
 
 
@@ -968,7 +968,7 @@ def admin_log():
     for data in get_list:            
     for data in get_list:            
         list_data += '<li>' + ip_pas(conn, data[0]) + ' / ' + data[1] + ' / ' + data[2] + '</li>'
         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)
     list_data += next_fix('/admin_log?num=', num, get_list)
 
 
     return html_minify(render_template(skin_check(conn), 
     return html_minify(render_template(skin_check(conn), 
@@ -1147,7 +1147,7 @@ def please():
     div += '</ul>' + next_fix('/please?num=', num, data_list)
     div += '</ul>' + next_fix('/please?num=', num, data_list)
     
     
     return html_minify(render_template(skin_check(conn), 
     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,
         data = div,
         menu = [['other', '' + load_lang(lang_data, 'other') + '']]
         menu = [['other', '' + load_lang(lang_data, 'other') + '']]
     ))
     ))
@@ -1167,7 +1167,7 @@ def recent_discuss(tools = 'normal'):
             
             
             m_sub = ' (닫힘)'
             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:
     else:
         return redirect('/')
         return redirect('/')
     
     
@@ -1193,7 +1193,7 @@ def recent_discuss(tools = 'normal'):
         div += '</tbody></table>'
         div += '</tbody></table>'
             
             
     return html_minify(render_template(skin_check(conn), 
     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,
         data = div,
         menu = 0
         menu = 0
     ))
     ))
@@ -1394,10 +1394,10 @@ def raw_view(name = None, sub_title = None, num = None):
     elif sub_title:
     elif sub_title:
         curs.execute("select data from topic where id = ? and title = ? and sub = ? and block = ''", [str(num), name, 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) + '번)'
         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:
     else:
         curs.execute("select data from data where title = ?", [name])
         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])
         curs.execute("select user from scan where title = ?", [name])
         for user_data in curs.fetchall():
         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)
         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):
         if not request.args.get('section', None):
             get_name = '''
             get_name = '''
                         <form method="post" id="get_edit" action="/edit_get/''' + url_pas(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>
                             <button id="come" type="submit">불러오기</button>
                         </form>
                         </form>
                         <hr>
                         <hr>
@@ -1765,7 +1765,7 @@ def preview(name = None):
     if acl_check(conn, name) == 1:
     if acl_check(conn, name) == 1:
         return re_error(conn, '/ban')
         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)
     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 = '''
             data = '''
                     <form method="post">
                     <form method="post">
                         ''' + ip_warring(conn) + '''
                         ''' + 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>
                         <hr>
                         <input placeholder="사유" name="send" type="text">
                         <input placeholder="사유" name="send" type="text">
                         <hr>
                         <hr>
@@ -1926,7 +1926,7 @@ def other():
     return html_minify(render_template(skin_check(conn), 
     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])],
         imp = ['' + load_lang(lang_data, 'other') + ' ' + load_lang(lang_data, 'tool'), wiki_set(conn, 1), custom(conn), other2([0, 0])],
         data = '''
         data = '''
-                <h2>기록</h2>
+                <h2>''' + load_lang(lang_data, 'record') + '''</h2>
                 <ul>
                 <ul>
                     <li><a href="/manager/6">''' + load_lang(lang_data, 'edit') + '''</a></li>
                     <li><a href="/manager/6">''' + load_lang(lang_data, 'edit') + '''</a></li>
                     <li><a href="/manager/7">''' + load_lang(lang_data, 'discussion') + '''</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>
                     <li><a href="/not_close_topic">''' + load_lang(lang_data, 'open') + ' ' + load_lang(lang_data, 'discussion') + '''</a></li>
                 </ul>
                 </ul>
                 <br>
                 <br>
-                <h2>' + load_lang(lang_data, 'other') + '</h2>
+                <h2>''' + load_lang(lang_data, 'other') + '''</h2>
                 <ul>
                 <ul>
                     <li><a href="/title_index">''' + load_lang(lang_data, 'all') + ' ' + load_lang(lang_data, 'document') + '''</a></li>
                     <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="/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>
                     <li><a href="/manager/10">''' + load_lang(lang_data, 'document') + ' ' + load_lang(lang_data, 'search') + '''</a></li>
                 </ul>
                 </ul>
                 <br>
                 <br>
@@ -1953,9 +1953,9 @@ def other():
                     <li><a href="/manager/1">''' + load_lang(lang_data, 'admin') + ' ' + load_lang(lang_data, 'tool') + '''</a></li>
                     <li><a href="/manager/1">''' + load_lang(lang_data, 'admin') + ' ' + load_lang(lang_data, 'tool') + '''</a></li>
                 </ul>
                 </ul>
                 <br>
                 <br>
-                <h2>버전</h2>
+                <h2>''' + load_lang(lang_data, 'version') + '''</h2>
                 <ul>
                 <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>''',
                 </ul>''',
     menu = 0
     menu = 0
     ))
     ))
@@ -1963,7 +1963,7 @@ def other():
 @app.route('/manager', methods=['POST', 'GET'])
 @app.route('/manager', methods=['POST', 'GET'])
 @app.route('/manager/<int:num>', methods=['POST', 'GET'])
 @app.route('/manager/<int:num>', methods=['POST', 'GET'])
 def manager(num = 1):
 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:
     if num == 1:
         return html_minify(render_template(skin_check(conn), 
         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)))
             return redirect('/' + title_list[(num - 2)][2] + '/' + url_pas(request.form.get('name', None)))
         else:
         else:
             if title_list[(num - 2)][1] == 0:
             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:
             else:
                 placeholder = title_list[(num - 2)][1]
                 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]]
         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)
     data += '</ul>' + next_fix('/title_index?num=' + str(num) + '&page=', page, title_list, num)
     sub = ' (' + str(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>')
 @app.route('/topic/<path:name>/sub/<sub>/tool/<regex("close|stop|agree"):tool>')
 def topic_stop(name = None, sub = None, tool = None):
 def topic_stop(name = None, sub = None, tool = None):
     if tool == 'close':
     if tool == 'close':
-        set_list = ['O', '', '토론 닫기', '토론 열림']
+        set_list = ['O', '', '' + load_lang(lang_data, 'discussion') + ' 닫기', '' + load_lang(lang_data, 'discussion') + ' 열림']
     elif tool == 'stop':
     elif tool == 'stop':
-        set_list = ['', 'O', '토론 정지', '토론 재개']
+        set_list = ['', 'O', '' + load_lang(lang_data, 'discussion') + ' 정지', '' + load_lang(lang_data, 'discussion') + ' 재개']
     elif tool == 'agree':
     elif tool == 'agree':
         pass
         pass
     else:
     else:
@@ -2197,16 +2197,16 @@ def topic_admin(name = None, sub = None, num = None):
     ban = '<li>작성 시간 : ' + data[0][2] + '</li>' + ban
     ban = '<li>작성 시간 : ' + data[0][2] + '</li>' + ban
     
     
     if re.search('(\.|:)', data[0][1]):
     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:
     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
     ban = '<h2>정보</h2><ul>' + ban
 
 
     return html_minify(render_template(skin_check(conn), 
     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,
         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'])
 @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)
         match = re.search('^' + load_lang(lang_data, 'user') + ':([^/]+)', name)
         if match:
         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))
         data = re.sub("\[\[(분류:(?:(?:(?!\]\]).)*))\]\]", "[br]", request.form.get('content', None))
         for rd_data in re.findall("(?:#([0-9]+))", data):
         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])
             curs.execute("select ip from topic where title = ? and sub = ? and id = ?", [name, sub, rd_data])
             ip_data = curs.fetchall()
             ip_data = curs.fetchall()
             if ip_data and not re.search('(\.|:)', ip_data[0][0]):
             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)
             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>'
             data += '<button type="submit">전송</button></form>'
 
 
         return html_minify(render_template(skin_check(conn), 
         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,
             data = '<h2 id="topic_top_title">' + sub + '</h2>' + all_data + data,
             menu = [['topic/' + url_pas(name), load_lang(lang_data, 'list')]]
             menu = [['topic/' + url_pas(name), load_lang(lang_data, 'list')]]
         ))
         ))
@@ -2410,18 +2410,18 @@ def close_topic_list(name = None, tool = None):
         else:
         else:
             curs.execute("select sub from rd where title = ? order by date desc", [name])
             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')]]
             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():
         for data in curs.fetchall():
             curs.execute("select data, date, ip, block from topic where title = ? and sub = ? and id = '1'", [name, data[0]])
             curs.execute("select data, date, ip, block from topic where title = ? and sub = ? and id = '1'", [name, data[0]])
             if curs.fetchall():                
             if curs.fetchall():                
                 it_p = 0
                 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]])
                     curs.execute("select title from stop where title = ? and sub = ? and close = 'O' order by sub asc", [name, data[0]])
                     if curs.fetchall():
                     if curs.fetchall():
                         it_p = 1
                         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 = '<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 += '<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:
         for data in record:
             if data[2]:
             if data[2]:
@@ -2882,7 +2882,7 @@ def acl(name = None):
             
             
         return redirect('/acl/' + url_pas(name))            
         return redirect('/acl/' + url_pas(name))            
     else:
     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):
         if re.search('^' + load_lang(lang_data, 'user') + ':', name):
             acl_list = [['', load_lang(lang_data, 'normal')], ['user', load_lang(lang_data, 'subscriber')], ['all', '모두']]
             acl_list = [['', load_lang(lang_data, 'normal')], ['user', load_lang(lang_data, 'subscriber')], ['all', '모두']]
@@ -2902,7 +2902,7 @@ def acl(name = None):
         data += '</select>'
         data += '</select>'
         
         
         if not re.search('^' + load_lang(lang_data, 'user') + ':', name):
         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])
             curs.execute("select dis, why from acl where title = ?", [name])
             acl_data = curs.fetchall()
             acl_data = curs.fetchall()
@@ -3137,7 +3137,7 @@ def read_view(name = None):
         acl += ' (A)'
         acl += ' (A)'
             
             
     if request.args.get('froms', None):
     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)
         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:
         else:
             menu = [['edit/' + url_pas(name), load_lang(lang_data, 'edit')]]
             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):
         if request.args.get('froms', None):
             menu += [['w/' + url_pas(name), '넘기기']]
             menu += [['w/' + url_pas(name), '넘기기']]
@@ -3192,7 +3192,7 @@ def user_topic_list(name = None):
     one_admin = admin_check(conn, 1, None)
     one_admin = admin_check(conn, 1, None)
 
 
     div = '<table style="width: 100%; text-align: center;"><tbody><tr>'
     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)])
     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()
     data_list = curs.fetchall()
@@ -3222,7 +3222,7 @@ def user_topic_list(name = None):
         sub = 0 
         sub = 0 
     
     
     return html_minify(render_template(skin_check(conn), 
     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,
         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')]]
         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)])
                 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:
             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':
                 if what == 'all':
                     div = '<a href="/record/' + url_pas(name) + '?what=revert">(' + load_lang(lang_data, 'revert') + ')</a><hr>' + div
                     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)])
                     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:
         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':
             if what == 'all':
                 div = '<a href="/recent_changes?what=revert">(' + load_lang(lang_data, 'revert') + ')</a><hr>' + div
                 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=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_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")
                 curs.execute("select id, title, date, ip, send, leng from history order by date desc limit 50")
             else:
             else:
@@ -3385,9 +3385,9 @@ def recent_changes(name = None, tool = 'record'):
                 if curs.fetchall():
                 if curs.fetchall():
                     sub += ' (' + load_lang(lang_data, 'ban') + ')'
                     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)
                 div += next_fix('/record/' + url_pas(name) + '/' + url_pas(what) + '?num=', num, data_list)
                 
                 
@@ -3484,14 +3484,14 @@ def upload():
         return redirect('/w/파일:' + name)      
         return redirect('/w/파일:' + name)      
     else:
     else:
         return html_minify(render_template(skin_check(conn), 
         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 =  '''
             data =  '''
                     <form method="post" enctype="multipart/form-data" accept-charset="utf8">
                     <form method="post" enctype="multipart/form-data" accept-charset="utf8">
                         <input type="file" name="f_data">
                         <input type="file" name="f_data">
                         <hr>
                         <hr>
-                        <input placeholder="파일 이름" name="f_name" type="text">
+                        <input placeholder="''' + load_lang(lang_data, 'name') + '''" name="f_name" type="text">
                         <hr>
                         <hr>
-                        <input placeholder="라이선스" name="f_lice" type="text">
+                        <input placeholder="''' + load_lang(lang_data, 'license') + '''" name="f_lice" type="text">
                         <hr>
                         <hr>
                         ''' + captcha_get(conn) + '''
                         ''' + captcha_get(conn) + '''
                         <button id="save" type="submit">''' + load_lang(lang_data, 'save') + '''</button>
                         <button id="save" type="submit">''' + load_lang(lang_data, 'save') + '''</button>
@@ -3560,7 +3560,7 @@ def user_info():
         data =  '''
         data =  '''
                 <h2>상태</h2>
                 <h2>상태</h2>
                 <ul>
                 <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>
                 </ul>
                 <br>
                 <br>
                 <h2>''' + load_lang(lang_data, 'login') + '''</h2>
                 <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>'
     div += '<a href="/manager/13">(' + load_lang(lang_data, 'plus') + ')</a>'
 
 
     return html_minify(render_template(skin_check(conn), 
     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,
         data = div,
         menu = [['manager', load_lang(lang_data, 'admin')]]
         menu = [['manager', load_lang(lang_data, 'admin')]]
     ))
     ))
@@ -3699,7 +3699,7 @@ def count_edit(name = None):
         data = '''
         data = '''
                 <ul>
                 <ul>
                     <li><a href="/record/''' + url_pas(that) + '''">편집 횟수</a> : ''' + str(data) + '''</li>
                     <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>
                 </ul>
                 ''',
                 ''',
         menu = [['user', load_lang(lang_data, 'user')]]
         menu = [['user', load_lang(lang_data, 'user')]]

+ 1 - 1
func.py

@@ -22,7 +22,7 @@ from set_mark.tool import sha224
 from mark import *
 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)
 else_lang = json.loads(json_data)
 
 
 def captcha_get(conn):
 def captcha_get(conn):

+ 21 - 6
language/en-US.json

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