Browse Source

Merge branch 'develop'

star7th 9 years ago
parent
commit
603ca69511
42 changed files with 770 additions and 474 deletions
  1. 5 0
      Application/Home/Conf/config.php
  2. 5 0
      Application/Home/Conf/tags.php
  3. 3 3
      Application/Home/Controller/AttornController.class.php
  4. 4 4
      Application/Home/Controller/CatalogController.class.php
  5. 16 8
      Application/Home/Controller/ItemController.class.php
  6. 4 4
      Application/Home/Controller/MemberController.class.php
  7. 10 9
      Application/Home/Controller/PageController.class.php
  8. 15 15
      Application/Home/Controller/UserController.class.php
  9. 176 0
      Application/Home/Lang/en-us.php
  10. 177 0
      Application/Home/Lang/zh-cn.php
  11. 7 7
      Application/Home/View/Attorn/index.html
  12. 10 10
      Application/Home/View/Catalog/edit.html
  13. 1 1
      Application/Home/View/Common/header.html
  14. 2 2
      Application/Home/View/Common/message.html
  15. 3 3
      Application/Home/View/Index/index.html
  16. 5 5
      Application/Home/View/Item/add.html
  17. 6 6
      Application/Home/View/Item/delete.html
  18. 9 9
      Application/Home/View/Item/index.html
  19. 5 5
      Application/Home/View/Item/pwd.html
  20. 24 24
      Application/Home/View/Item/show.html
  21. 5 5
      Application/Home/View/Item/showbyuid.html
  22. 44 0
      Application/Home/View/MdTemplate/api-doc.en-us.html
  23. 0 0
      Application/Home/View/MdTemplate/api-doc.zh-cn.html
  24. 12 0
      Application/Home/View/MdTemplate/database.en-us.html
  25. 0 0
      Application/Home/View/MdTemplate/database.zh-cn.html
  26. 0 208
      Application/Home/View/MdTemplate/php.html
  27. 7 7
      Application/Home/View/Member/edit.html
  28. 19 16
      Application/Home/View/Page/edit.html
  29. 7 7
      Application/Home/View/Page/history.html
  30. 6 6
      Application/Home/View/User/login.html
  31. 7 7
      Application/Home/View/User/register.html
  32. 5 5
      Application/Home/View/User/setting.html
  33. 2 1
      Public/css/page/edit.css
  34. 1 1
      Public/js/attorn/index.js
  35. 6 6
      Public/js/catalog/edit.js
  36. 1 1
      Public/js/item/delete.js
  37. 30 7
      Public/js/item/show.js
  38. 27 0
      Public/js/lang.en-us.js
  39. 27 0
      Public/js/lang.zh-cn.js
  40. 3 3
      Public/js/member/edit.js
  41. 8 8
      Public/js/page/edit.js
  42. 66 71
      README.md

+ 5 - 0
Application/Home/Conf/config.php

@@ -1,4 +1,9 @@
 <?php
 return array(
 	//'配置项'=>'配置值'
+    'LANG_SWITCH_ON' => true,   // 开启语言包功能
+    'LANG_AUTO_DETECT' => true, // 自动侦测语言 开启多语言功能后有效
+    'DEFAULT_LANG' => 'zh-cn', // 默认语言
+    'LANG_LIST'        => 'zh-cn,en-us', // 允许切换的语言列表 用逗号分隔
+    'VAR_LANGUAGE'     => 'l', // 默认语言切换变量
 );

+ 5 - 0
Application/Home/Conf/tags.php

@@ -0,0 +1,5 @@
+<?php
+return array(
+    // 添加下面一行定义即可
+    'app_begin' => array('Behavior\CheckLangBehavior'),
+);

+ 3 - 3
Application/Home/Controller/AttornController.class.php

@@ -8,7 +8,7 @@ class AttornController extends BaseController {
         $item_id =  I("item_id");
         $login_user = $this->checkLogin();
         if (!$this->checkItemCreator($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
         $this->assign("item_id" , $item_id);
@@ -28,7 +28,7 @@ class AttornController extends BaseController {
 
         if(! D("User")-> checkLogin($item['username'],$password)){
             $return['error_code'] = 10102 ;
-            $return['error_message'] = '密码错误' ;
+            $return['error_message'] = L('incorrect_password') ;
             $this->sendResult($return);
             return ;
         }
@@ -37,7 +37,7 @@ class AttornController extends BaseController {
 
         if (!$member) {
             $return['error_code'] = 10201 ;
-            $return['error_message'] = '不存在此用户' ;
+            $return['error_message'] = L('user_does_not_exist') ;
             $this->sendResult($return);
             return ;
         }

+ 4 - 4
Application/Home/Controller/CatalogController.class.php

@@ -22,7 +22,7 @@ class CatalogController extends BaseController {
 
         $login_user = $this->checkLogin();
         if (!$this->checkItemPermn($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
 
@@ -41,7 +41,7 @@ class CatalogController extends BaseController {
 
         $login_user = $this->checkLogin();
         if (!$this->checkItemPermn($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
 
@@ -127,14 +127,14 @@ class CatalogController extends BaseController {
         $login_user = $this->checkLogin();
         if (!$this->checkItemPermn($login_user['uid'] , $item_id)) {
             $return['error_code'] = -1 ;
-            $return['error_message'] = '你无权限' ;
+            $return['error_message'] = L('no_permissions');
             $this->sendResult($return);
             return;
         }
 
         if (D("Page")->where(" cat_id = '$cat_id' ")->find()) {
             $return['error_code'] = -1 ;
-            $return['error_message'] = '为了安全,不允许直接删除非空目录。请先删除或转移该目录下的所有页面' ;
+            $return['error_message'] = L('no_delete_empty_catalog') ;
             $this->sendResult($return);
             return;
         }

+ 16 - 8
Application/Home/Controller/ItemController.class.php

@@ -62,9 +62,9 @@ class ItemController extends BaseController {
             }
 
 			if ($ret) {
-				$this->message("操作成功!",U('Home/Item/index'));		        
+				$this->message(L('operation_succeeded'),U('Home/Item/index'));		        
 			}else{
-				$this->message("操作失败!",U('Home/Item/index'));
+				$this->message(L('operation_failed'),U('Home/Item/index'));
 			}
 		}
     }
@@ -73,8 +73,16 @@ class ItemController extends BaseController {
     public function show(){
         $this->checkLogin(false);
         $item_id = I("item_id/d");
+        $item_domain = I("item_domain/s");
         $current_page_id = I("page_id/d");
-
+        //判断个性域名
+        if ($item_domain) {
+            $item_domain = mysql_escape_string($item_domain);
+            $item = D("Item")->where("item_domain = '$item_domain' ")->find();
+            if ($item['item_id']) {
+                $item_id = $item['item_id'] ;
+            }
+        }
         $keyword = I("keyword");
         $login_user = session("login_user");
         $uid = $login_user['uid'] ? $login_user['uid'] : 0 ;
@@ -137,7 +145,7 @@ class ItemController extends BaseController {
         $item_id =  I("item_id");
         $login_user = $this->checkLogin();
         if (!$this->checkItemCreator($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
         $this->assign("item_id" , $item_id);
@@ -155,7 +163,7 @@ class ItemController extends BaseController {
 
         if(! D("User")-> checkLogin($item['username'],$password)){
             $return['error_code'] = 10102 ;
-            $return['error_message'] = '密码错误' ;
+            $return['error_message'] = L('incorrect_password') ;
             $this->sendResult($return);
             return ;
         }
@@ -191,11 +199,11 @@ class ItemController extends BaseController {
                 header("location:".U("Home/Item/show").'&item_id='.$item_id);
             }else{
                 
-                $this->message("访问密码不正确");
+                $this->message(L('access_password_are_incorrect'));
             }
 
           }else{
-            $this->message("验证码不正确");
+            $this->message(L('verification_code_are_incorrect'));
           }
 
         }
@@ -208,7 +216,7 @@ class ItemController extends BaseController {
         $item_id =  I("item_id/d");
         $login_user = $this->checkLogin();
         if (!$this->checkItemPermn($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
 

+ 4 - 4
Application/Home/Controller/MemberController.class.php

@@ -8,7 +8,7 @@ class MemberController extends BaseController {
         $item_id =  I("item_id");
         $login_user = $this->checkLogin();
         if (!$this->checkItemCreator($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
         $this->assign("item_id" , $item_id);
@@ -21,7 +21,7 @@ class MemberController extends BaseController {
         $item_id =  I("item_id/d");
         $login_user = $this->checkLogin();
         if (!$this->checkItemCreator($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
         $username = I("username");
@@ -29,7 +29,7 @@ class MemberController extends BaseController {
 
         if (!$member) {
             $return['error_code'] = 10201 ;
-            $return['error_message'] = '不存在此用户!' ;
+            $return['error_message'] =L('user_does_not_exist') ;
             $this->sendResult($return);
             return ;
         }
@@ -72,7 +72,7 @@ class MemberController extends BaseController {
         $item_id = I("item_id/d")? I("item_id/d") : 0;
         $login_user = $this->checkLogin();
         if (!$this->checkItemCreator($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
         $username = I("username")? I("username") : 0;

+ 10 - 9
Application/Home/Controller/PageController.class.php

@@ -10,7 +10,7 @@ class PageController extends BaseController {
         $page = D("Page")->where(" page_id = '$page_id' ")->find();
         $login_user = $this->checkLogin(false);
         if (!$this->checkItemVisit($login_user['uid'] , $page['item_id'])) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
         $Parsedown = new \Parsedown();
@@ -48,7 +48,7 @@ class PageController extends BaseController {
         //如果是复制接口
         elseif ($copy_page_id) {
             $copy_page = D("Page")->where(" page_id = '$copy_page_id' ")->find();
-            $page['page_title'] = $copy_page['page_title']."-副本";
+            $page['page_title'] = $copy_page['page_title']."-copy";
             $page['page_content'] = $copy_page['page_content'];
             $page['item_id'] = $copy_page['item_id'];
             $default_cat_id = $copy_page['cat_id'];
@@ -65,7 +65,7 @@ class PageController extends BaseController {
 
         
         if (!$this->checkItemPermn($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
 
@@ -77,7 +77,8 @@ class PageController extends BaseController {
         }else{
             $default_second_cat_id = $default_cat_id;
         }
-
+        $this->assign("api_doc_templ" , 'MdTemplate/api-doc.'.LANG_SET);
+        $this->assign("database_doc_templ" , 'MdTemplate/database.'.LANG_SET);
         $this->assign("page" , $page);
         $this->assign("item_id" , $item_id);
         $this->assign("default_second_cat_id" , $default_second_cat_id);
@@ -91,7 +92,7 @@ class PageController extends BaseController {
     public function save(){
         $login_user = $this->checkLogin();
         $page_id = I("page_id/d") ? I("page_id/d") : 0 ;
-        $page_title = I("page_title") ?I("page_title") : '默认页面';
+        $page_title = I("page_title") ?I("page_title") : L("default_title");
         $page_content = I("page_content");
         $cat_id = I("cat_id/d")? I("cat_id/d") : 0;
         $item_id = I("item_id/d")? I("item_id/d") : 0;
@@ -99,7 +100,7 @@ class PageController extends BaseController {
 
         $login_user = $this->checkLogin();
         if (!$this->checkItemPermn($login_user['uid'] , $item_id)) {
-            $this->message("你无权限");
+            $this->message(L('no_permissions'));
             return;
         }
 
@@ -167,7 +168,7 @@ class PageController extends BaseController {
 
         $login_user = $this->checkLogin();
         if (!$this->checkItemCreator($login_user['uid'] , $page['item_id']) && $login_user['uid'] != $page['author_uid']) {
-            $this->message("你无权限!此页面由".$page['author_username']."创建");
+            $this->message(L('no_permissions_to_delete_page',array("author_username"=>$page['author_username'])));
             return;
         }
 
@@ -179,9 +180,9 @@ class PageController extends BaseController {
 
         }
         if ($ret) {
-           $this->message("删除成功!",U("Home/item/show?item_id={$page['item_id']}"));
+           $this->message(L('delete_succeeded'),U("Home/item/show?item_id={$page['item_id']}"));
         }else{
-           $this->message("删除失败!",U("Home/item/show?item_id={$page['item_id']}"));
+           $this->message(L('delete_failed'),U("Home/item/show?item_id={$page['item_id']}"));
         }
     }
 

+ 15 - 15
Application/Home/Controller/UserController.class.php

@@ -20,19 +20,19 @@ class UserController extends BaseController {
 			  		if ( ! D("User")->isExist($username) ) {
 						$ret = D("User")->register($username,$password);
 						if ($ret) {
-					      $this->message("注册成功!",U('Home/User/login'));					    
+					      $this->message(L('register_succeeded'),U('Home/User/login'));					    
 						}else{
-						  $this->message("用户名或密码不正确");
+						  $this->message(L('username_or_password_incorrect'));
 						}
 			  		}else{
-			  			$this->message("用户名已经存在啦!");
+			  			$this->message(L('username_exists'));
 			  		}
 
 			  	}else{
-			  		$this->message("两次输入的密码不一致!");
+			  		$this->message(L('code_much_the_same'));
 			  	}
 			  }else{
-				    $this->message("验证码不正确");
+				    $this->message(L('verification_code_are_incorrect'));
 			  }
 			  
 
@@ -52,7 +52,7 @@ class UserController extends BaseController {
 				if ($ret && $ret['cookie_token_expire'] > time() ) {
 					$login_user = $ret ;
 					session("login_user" , $login_user);
-					$this->message("自动登录成功!正在跳转...",U('Home/Item/index'));
+					$this->message(L('auto_login_succeeded'),U('Home/Item/index'));
 					exit();
 				}
 			}
@@ -73,9 +73,9 @@ class UserController extends BaseController {
 		      D("User")->where(" uid = '$ret[uid]' ")->save(array("last_login_time"=>time(),"cookie_token"=>$cookie_token,"cookie_token_expire"=>$cookie_token_expire));
 		      unset($ret['password']);
 
-	          $this->message("登录成功!",U('Home/Item/index'));		        
+	          $this->message(L('login_succeeded'),U('Home/Item/index'));		        
 		    }else{
-		      $this->message("用户名或密码不正确");
+		      $this->message(L('username_or_password_incorrect'));
 		    }
 		  }else{
 			  if ($v_code && $v_code == session('v_code')) {
@@ -88,13 +88,13 @@ class UserController extends BaseController {
 			      D("User")->where(" uid = '$ret[uid]' ")->save(array("last_login_time"=>time(),"cookie_token"=>$cookie_token,"cookie_token_expire"=>$cookie_token_expire));
 			      unset($ret['password']);
 
-		          $this->message("登录成功!",U('Home/Item/index'));		        
+		          $this->message(L('login_succeeded'),U('Home/Item/index'));		        
 			    }else{
-			      $this->message("用户名或密码不正确");
+			      $this->message(L('username_or_password_incorrect'));
 			    }
 
 			  }else{
-			    $this->message("验证码不正确");
+			    $this->message(L('verification_code_are_incorrect'));
 			  }	
 		  }
 		  
@@ -143,14 +143,14 @@ class UserController extends BaseController {
 			if ($ret) {
 					$ret = D("User")->updatePwd($user['uid'],$new_password);
 					if ($ret) {
-						$this->message("修改成功!",U("Home/Item/index"));
+						$this->message(L('modify_succeeded'),U("Home/Item/index"));
 					}else{
-						$this->message("修改失败!");
+						$this->message(L('modify_faild'));
 
 					}
 
 				}else{	
-					$this->message("原密码不正确");
+					$this->message(L('old_password_incorrect'));
 				}
 
 		}
@@ -161,6 +161,6 @@ class UserController extends BaseController {
 		$login_user = $this->checkLogin();
 		session("login_user" , NULL);
 		cookie('cookie_token',NULL);
-		$this->message("退出成功!",U('Home/index/index'));
+		$this->message(L('logout_succeeded'),U('Home/index/index'));
 	}
 }

+ 176 - 0
Application/Home/Lang/en-us.php

@@ -0,0 +1,176 @@
+<?php
+return array(
+
+    //Attorn
+    'attorn_item'=>'Attorn item',
+    'username'=>'Username',
+    'receiver_name'=>"Receiver's username",
+    'verify_identity'=>'Verify identity',
+    'your_password'=>'Your password',
+    'attorn'=>'Attorn',
+    'close'=>'close',
+
+    //Catalog
+    'new_or_edit_catalog' => 'New/Edit catalog',
+    'catalog_name' => 'Catalog name',
+    's_number' => 'Order',
+    's_number_explain' => 'Optional: order number',
+    'last_catalog' => 'Parent catalog',
+    'save' => 'Sava',
+    'delete_catalog' => 'Delete catalog',
+    'catalog_list' => 'Catalog list',
+    'click_to_edit' => 'Click to edit',
+
+
+    //index
+    'help' => 'Help',
+    'login_or_register' => 'Login/Register',
+    'my_item' => 'My items',
+
+    //Common message
+    'redirect_message' => 'If your browser does not automatically jump, please click on this link.',
+    'click_to_goback' => 'Click to goback',
+    'home' => 'Home',
+    
+
+    //item/add
+    'item_name' => "Item's name",
+    'item_description' => "Item's description",
+    'visit_password_placeholder' => 'Access password(Optional: private project required)',
+    'submit' => 'Submit',
+    'goback' => 'Goback',
+    //item/delete
+    'delete_item' => 'Delete item',
+    'verify_your_identity' => 'Verify your identity',
+    'creator_password' => "creator's password",
+    'delete' => 'Delete',
+    'close' => 'Close',
+    //item/index
+    'personal_setting'=>'Personal setting',
+    'share_home'=>'Share home',
+    'web_home'=>'Website home',
+    'logout'=>'Logout',
+    'add_an_item'=>'Add an item',
+    'new_item'=>'New item',
+    'share_my_home'=>'Share my home',
+    'home_address'=>'Home address',
+    'home_address_description'=>'The others will be able to see all of your public items When he visits your home page.You can copy the address to your friends.',
+    //item/pwd
+    'input_visit_password'=>'Please enter the access password',
+    'password'=>'Passwod',
+    'verification_code'=>'Verification code',
+    'submit'=>'Submit',
+    'login_or_register'=>'Login/Register',
+    //item/show
+    'item'=>'Item',
+    'share'=>'Share',
+    'export'=>'Export',
+    'update_info'=>'Modify',
+    'manage_members'=>'Members',
+    'attorn'=>'Attorn',
+    'delete'=>'Delete',
+    'more_item'=>'More items',
+    'login_or_register'=>'Login/Register',
+    'about_showdoc'=>'About ShowDoc',
+    'my_item'=>'My items',
+    'new_page'=>'New page',
+    'new_catalog'=>'New catalog',
+    'share_address_to_your_friends'=>'Share address to your friends',
+    'share'=>'Share',
+    'copy_interface_to_new'=>'Copy page  to new ',
+    'copy'=>'Copy',
+    'edit_interface'=>'Edit page',
+    'edit'=>'Edit',
+    'delete_interface'=>'Delete page',
+    'comfirm_delete'=>'Are you sure that you want to delete it?',
+    'delete'=>'Delete',
+    'share'=>'Share',
+    'item_address'=>'Item address',
+    'copy_address_to_your_friends'=>'You can copy the address to your friend.',
+    'share_page'=>'Share page',
+    'page_address'=>'Page address',
+    'copy_address_to_your_friends'=>'You can copy the address to your friend.',
+    //item/showbyuid
+    'more'=>'More',
+    'my_item'=>'My items',
+    'login_or_register'=>'Login/Register',
+    'about_showdoc'=>'About ShowDoc',
+    'all_pubilc_item'=>"'s all public items",
+
+    //member
+    'new_member'=>'New member',
+    'username'=>'Username',
+    'save'=>'Save',
+    'member_list'=>'member list',
+    'click_to_delete'=>'Click to delete',
+    'close'=>'Close',
+    
+    //page
+    'input_page_title'=>'Please enter a page title',
+    'level_2_directory'=>'Second-level catalog',
+    'level_3_directory'=>'Third-level catalog',
+    's_number_explain'=>'Optional: order number',
+    'history_version'=>'History version',
+    'save'=>'Save',
+    'cancel'=>'Cancel',
+    'inser_apidoc_template'=>'Insert apidoc template',
+    'inser_database_doc_template'=>'Insert db-doc template',
+    'json_to_table'=>'Json to table',
+    'json_to_table_description'=>'Please paste a section of JSON, the program will automatically parse and generate JSON parameters table. This feature is suitable for the rapid preparation of API documents returned to the parameter table',
+    'confirm'=>'Confirm',
+    'cancel'=>'Cancel',
+    'history_version'=>'History version',
+    'update_time'=>'Modification time',
+    'update_by_who'=>'Modified by who',
+    'operation'=>'Operation',
+    'recover_to_this_version'=>'Restore to this version',
+    'close'=>'Close',
+    'finish'=>'Finish',
+
+    //user
+    'login'=>'Login',
+    'username'=>'Username',
+    'password'=>'Passwod',
+    'verification_code'=>'Verification code',
+    'no_account'=>'Go to register →',
+    'register_new_account'=>'Register new user',
+    'username_description'=>'English name or Email',
+    'password'=>'Passwod',
+    'password_again'=>'Enter password again',
+    'verification_code'=>'Verification code',
+    'register'=>'Register',
+    'had_a_account'=>' Sign on right now→',
+    'update_personal_info'=>'Modify personal information',
+    'new_password_description'=>'The new password',
+    'old_password_description'=>'Original password',
+    'submit'=>'Submit',
+    'goback'=>'Goback',
+
+    //message 弹出信息有关的文案
+    'no_permissions'=>'No permissions',
+    'incorrect_password'=>'Incorrect password',
+    'user_does_not_exist'=>'User does not exist',
+    'operation_succeeded'=>'Operation succeeded',
+    'operation_failed'=>'Operation failed',
+    'access_password_are_incorrect'=>'Access password are incorrect',
+    'verification_code_are_incorrect'=>'Verification code are incorrect',
+    'no_permissions_to_delete_page'=>'No permissions!The page is created by {$author_username}',
+    'delete_succeeded'=>'Delete succeeded',
+    'delete_failed'=>'Delete failed',
+    'register_succeeded'=>'Register succeeded',
+    'username_or_password_incorrect'=>'Username or password are incorrect',
+    'username_exists'=>'Username exists',
+    'code_much_the_same'=>'Password much be the same',
+    'verification_code_are_incorrect'=>'Verification code are incorrect',
+    'auto_login_succeeded'=>'Automatic login success! Jumping...',
+    'login_succeeded'=>'Login succeeded',
+    'modify_succeeded'=>'Modify succeeded',
+    'modify_faild'=>'Modify failed',
+    'old_password_incorrect'=>'The original password is not correct',
+    'logout_succeeded'=>'Logout succeeded',
+
+    //error_message
+    "no_delete_empty_catalog"=>'In order to secure, do not allow direct delete an empty catalog. Please delete or move all the pages in the catalog',
+    
+    "default_title" =>'Default',
+);

+ 177 - 0
Application/Home/Lang/zh-cn.php

@@ -0,0 +1,177 @@
+<?php
+return array(
+
+    //Attorn
+    'attorn_item'=>'转让项目',
+    'username'=>'用户名',
+    'receiver_name'=>'项目接收者用户名',
+    'verify_identity'=>'验证身份',
+    'your_password'=>'你的登录密码',
+    'attorn'=>'转让',
+    'close'=>'关闭',
+
+    //Catalog
+    'new_or_edit_catalog' => '新建/编辑目录',
+    'catalog_name' => '目录名',
+    's_number' => '序号',
+    's_number_explain' => '可选:顺序数字',
+    'last_catalog' => '上级目录',
+    'save' => '保存',
+    'delete_catalog' => '删除目录',
+    'catalog_list' => '目录列表',
+    'click_to_edit' => '点击可编辑',
+
+
+    //index
+    'help' => '帮助教程',
+    'login_or_register' => '登录/注册',
+    'my_item' => '我的项目',
+
+    //Common message
+    'redirect_message' => '如果你的浏览器没有自动跳转,请点击此链接',
+    'click_to_goback' => '点击这里返回上一页',
+    'home' => '首页',
+    
+
+    //item/add
+    'item_name' => '项目名',
+    'item_description' => '项目描述',
+    'visit_password_placeholder' => '访问密码(可选,私密项目请设置密码)',
+    'submit' => '提交',
+    'goback' => '返回',
+    //item/delete
+    'delete_item' => '删除项目',
+    'verify_your_identity' => '验证你的身份',
+    'creator_password' => '创建人登录密码',
+    'delete' => '删除',
+    'close' => '关闭',
+    //item/index
+    'personal_setting'=>'个人设置',
+    'share_home'=>'分享主页',
+    'web_home'=>'网站首页',
+    'logout'=>'退出登录',
+    'add_an_item'=>'添加一个新项目',
+    'new_item'=>'新建项目',
+    'share_my_home'=>'分享我的主页',
+    'home_address'=>'主页地址',
+    'home_address_description'=>'别人访问您的主页时,将可以看到您的所有公开项目(但没有新建项目等权限)。你可以复制地址给你的好友',
+    //item/pwd
+    'input_visit_password'=>'请输入访问密码',
+    'password'=>'密码',
+    'verification_code'=>'验证码',
+    'submit'=>'提交',
+    'login_or_register'=>'登录/注册',
+    //item/show
+    'item'=>'项目',
+    'share'=>'分享',
+    'export'=>'导出',
+    'update_info'=>'修改信息',
+    'manage_members'=>'成员管理',
+    'attorn'=>'转让',
+    'delete'=>'删除',
+    'more_item'=>'更多项目',
+    'login_or_register'=>'登录/注册',
+    'about_showdoc'=>'关于ShowDoc',
+    'my_item'=>'我的项目',
+    'new_page'=>'新建页面',
+    'new_catalog'=>'新建目录',
+    'share_address_to_your_friends'=>'分享该接口地址给你的好友',
+    'share'=>'分享',
+    'copy_interface_to_new'=>'复制该页面到新页面',
+    'copy'=>'复制',
+    'edit_interface'=>'编辑页面',
+    'edit'=>'编辑',
+    'delete_interface'=>'删除页面',
+    'comfirm_delete'=>'确认删除吗?',
+    'delete'=>'删除',
+    'share'=>'分享',
+    'item_address'=>'项目地址',
+    'copy_address_to_your_friends'=>'你可以复制地址给你的好友',
+    'share_page'=>'分享页面',
+    'page_address'=>'页面地址',
+    'copy_address_to_your_friends'=>'你可以复制地址给你的好友',
+    //item/showbyuid
+    'more'=>'更多',
+    'my_item'=>'我的项目',
+    'login_or_register'=>'登录/注册',
+    'about_showdoc'=>'关于ShowDoc',
+    'all_pubilc_item'=>'的所有公开项目',
+
+    //member
+    'new_member'=>'新增成员',
+    'username'=>'用户名',
+    'save'=>'保存',
+    'member_list'=>'成员列表',
+    'click_to_delete'=>'点击可删除',
+    'close'=>'关闭',
+    
+    //page
+    'input_page_title'=>'请输入页面标题',
+    'level_2_directory'=>'二级目录',
+    'level_3_directory'=>'三级目录',
+    's_number_explain'=>'可选:顺序数字',
+    'history_version'=>'历史版本',
+    'save'=>'保存',
+    'cancel'=>'取消',
+    'inser_apidoc_template'=>'插入API接口模板',
+    'inser_database_doc_template'=>'插入数据字典模板',
+    'json_to_table'=>'JSON转参数表格',
+    'json_to_table_description'=>'请粘贴一段json,程序将自动将json解析并生成参数表格。此功能适合用于快速编写API文档的返回参数表格',
+    'confirm'=>'确定',
+    'cancel'=>'取消',
+    'history_version'=>'历史版本',
+    'update_time'=>'修改时间',
+    'update_by_who'=>'修改人',
+    'operation'=>'操作',
+    'recover_to_this_version'=>'恢复到此版本',
+    'close'=>'关闭',
+    'finish'=>'完成',
+
+    //user
+    'login'=>'登录',
+    'username'=>'用户名',
+    'password'=>'密码',
+    'verification_code'=>'验证码',
+    'no_account'=>'没有账号?马上去注册→',
+    'register_new_account'=>'注册新用户',
+    'username_description'=>'用户名(可填英文昵称或邮箱)',
+    'password'=>'密码',
+    'password_again'=>'再次输入密码',
+    'verification_code'=>'验证码',
+    'register'=>'注册',
+    'had_a_account'=>'已有账号?马上去登录→',
+    'update_personal_info'=>'修改个人信息',
+    'new_password_description'=>'新密码,若不修改请留空',
+    'old_password_description'=>'原密码,若不修改密码请留空',
+    'submit'=>'提交',
+    'goback'=>'返回',
+
+    //message 弹出信息有关的文案
+    'no_permissions'=>'你无权限',
+    'incorrect_password'=>'密码错误',
+    'user_does_not_exist'=>'不存在此用户',
+    'operation_succeeded'=>'操作成功!',
+    'operation_failed'=>'操作失败!',
+    'access_password_are_incorrect'=>'访问密码不正确',
+    'verification_code_are_incorrect'=>'验证码不正确',
+    'no_permissions_to_delete_page'=>'你无权限!此页面由{$author_username}创建',
+    'delete_succeeded'=>'删除成功!',
+    'delete_failed'=>'删除失败!',
+    'register_succeeded'=>'注册成功!',
+    'username_or_password_incorrect'=>'用户名或密码不正确',
+    'username_exists'=>'用户名已经存在啦!',
+    'code_much_the_same'=>'两次输入的密码不一致!',
+    'verification_code_are_incorrect'=>'验证码不正确',
+    'auto_login_succeeded'=>'自动登录成功!正在跳转...',
+    'login_succeeded'=>'登录成功!',
+    'modify_succeeded'=>'修改成功!',
+    'modify_faild'=>'修改失败!',
+    'old_password_incorrect'=>'原密码不正确',
+    'logout_succeeded'=>'退出成功!',
+
+    //error_message
+    "no_delete_empty_catalog"=>'为了安全,不允许直接删除非空目录。请先删除或转移该目录下的所有页面',
+    
+    "default_title" =>'默认页面',
+
+);

+ 7 - 7
Application/Home/View/Attorn/index.html

@@ -8,26 +8,26 @@
   <!-- 编辑框 -->
   <div class="cat-edit">
       <div class="modal-header">
-      <h4>转让项目</h4>
+      <h4>{$Think.Lang.attorn_item}</h4>
       </div>
       <input type="hidden" id="item_id" value="{$item_id}">
       <div class="add-cat">
           <form class="form-horizontal">
             <div class="control-group">
-              <label class="control-label" for="inputEmail">用户名</label>
+              <label class="control-label" for="inputEmail">{$Think.Lang.username}</label>
               <div class="controls">
-                <input type="text" id="username" placeholder="项目接收者用户名" value="">
+                <input type="text" id="username" placeholder="{$Think.Lang.receiver_name}" value="">
               </div>
             </div>
             <div class="control-group">
-              <label class="control-label" for="inputEmail">验证身份</label>
+              <label class="control-label" for="inputEmail">{$Think.Lang.verify_identity}</label>
               <div class="controls">
-                <input type="password" id="password" placeholder="你的登录密码" value="">
+                <input type="password" id="password" placeholder="{$Think.Lang.your_password}" value="">
               </div>
             </div>
             <div class="control-group">
               <div class="controls">
-                <button type="submit" class="btn" id="save-cat">转让</button>
+                <button type="submit" class="btn" id="save-cat">{$Think.Lang.attorn}</button>
               </div>
             </div>
           </form>
@@ -36,7 +36,7 @@
     </div>
 
     <div class="modal-footer">
-      <a href="#" class="btn exist-cat">关闭</a>
+      <a href="#" class="btn exist-cat">{$Think.Lang.close}</a>
     </div>
  </div>
 

+ 10 - 10
Application/Home/View/Catalog/edit.html

@@ -11,34 +11,34 @@
   <!-- 编辑框 -->
   <div class="cat-edit">
       <div class="modal-header">
-      <h4>新建/编辑目录</h4>
+      <h4>{$Think.Lang.new_or_edit_catalog}</h4>
       </div>
       <input type="hidden" id="item_id" value="{$item_id}">
       <input type="hidden" id="cat_id" value="{$Catalog.cat_id}">
       <div class="add-cat">
           <form class="form-horizontal">
             <div class="control-group">
-              <label class="control-label" for="inputEmail">目录名</label>
+              <label class="control-label" for="inputEmail">{$Think.Lang.catalog_name}</label>
               <div class="controls">
-                <input type="text" id="cat_name" placeholder="目录名" value="{$Catalog.cat_name}">
+                <input type="text" id="cat_name" placeholder="{$Think.Lang.catalog_name}" value="{$Catalog.cat_name}">
               </div>
             </div>
             <div class="control-group">
-              <label class="control-label" for="inputPassword">序号</label>
+              <label class="control-label" for="inputPassword">{$Think.Lang.s_number}</label>
               <div class="controls">
-                <input type="text" id="s_number" placeholder="可选:顺序数字" value="{$Catalog.s_number}">
+                <input type="text" id="s_number" placeholder="{$Think.Lang.s_number_explain}" value="{$Catalog.s_number}">
               </div>
             </div>
              <div class="control-group">
-              <label class="control-label" for="inputPassword">上级目录:</label>
+              <label class="control-label" for="inputPassword">{$Think.Lang.last_catalog}</label>
               <div class="controls">
                   <select name="parent_cat_id" id="parent_cat_id" ></select>
               </div>
             </div>
             <div class="control-group">
               <div class="controls">
-                <button  class="btn" id="save-cat">保存</button>
-                <button  class="btn btn-link" id="delete-cat">删除目录</button>
+                <button  class="btn" id="save-cat">{$Think.Lang.save}</button>
+                <button  class="btn btn-link" id="delete-cat">{$Think.Lang.delete_catalog}</button>
               </div>
             </div>
           </form>
@@ -48,7 +48,7 @@
   <!-- 目录列表 -->
   <div class="cat-list">
     <div class="modal-header">
-    <h4>目录列表&nbsp;<small>(点击可编辑)</small></h4>
+    <h4>{$Think.Lang.catalog_list}&nbsp;<small>({$Think.Lang.click_to_edit})</small></h4>
     </div>
     <div id="show-cat">
 
@@ -58,7 +58,7 @@
   </div>
 
     <div class="modal-footer">
-      <a href="#" class="btn exist-cat">关闭</a>
+      <a href="#" class="btn exist-cat">{$Think.Lang.close}</a>
     </div>
  </div>
 

+ 1 - 1
Application/Home/View/Common/header.html

@@ -22,6 +22,6 @@
 
       DocConfig.hostUrl = DocConfig.host + "/" + DocConfig.app;
       </script>
-
+      <script src="__PUBLIC__/js/lang.{:LANG_SET}.js"></script>
   </head>
   <body>

+ 2 - 2
Application/Home/View/Common/message.html

@@ -23,14 +23,14 @@
 	<div class="content">
 		<h4><?php echo $msg;?></h4>
 		<?php if($redirect){ ?>
-		<p><a href="<?php echo $redirect;?>">如果你的浏览器没有自动跳转,请点击此链接</a></p>
+		<p><a href="<?php echo $redirect;?>">{$Think.Lang.redirect_message}</a></p>
 		<script type="text/javascript">
 			setTimeout(function () {
 				location.href = "<?php echo $redirect;?>";
 			}, 3000);
 		</script>
 		<?php }else{ ?>
-		<p>[<a href="javascript:history.go(-1);">点击这里返回上一页</a>] &nbsp; [<a href="__APP__/">首页</a>]</p>
+		<p>[<a href="javascript:history.go(-1);">{$Think.Lang.click_to_goback}</a>] &nbsp; [<a href="__APP__/">{$Think.Lang.home}</a>]</p>
 		<?php } ?>
 	</div>
 </div>

+ 3 - 3
Application/Home/View/Index/index.html

@@ -6,9 +6,9 @@
       <div class="masthead">
         <ul class="nav nav-pills pull-right">
           <if condition="$login_user">
-            <li ><a href="{:U('Home/Item/index')}">我的项目</a></li>
+            <li ><a href="{:U('Home/Item/index')}">{$Think.Lang.my_item}</a></li>
             <else />
-            <li ><a href="{:U('Home/User/login')}">登录/注册</a></li>
+            <li ><a href="{:U('Home/User/login')}">{$Think.Lang.login_or_register}</a></li>
           </if>
           
         </ul>
@@ -44,7 +44,7 @@
 		</div>
 		<p class="text-center">
 			<a class="btn btn-primary  btn-large" href="http://doc.star7th.com/2" target="_blank">Demo</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-			<a class="btn  btn-large" href="http://doc.star7th.com/3" target="_blank" >帮助教程&nbsp;<i class="icon-circle-arrow-right"></i></a>
+			<a class="btn  btn-large" href="http://doc.star7th.com/3" target="_blank" >{$Think.Lang.help}&nbsp;<i class="icon-circle-arrow-right"></i></a>
 		</p>
 
       <hr>

+ 5 - 5
Application/Home/View/Item/add.html

@@ -6,13 +6,13 @@
       <form class="form-signin" method="post">
         <input type="hidden" id="item_id" name="item_id" value="{$item.item_id}">
         <!-- <h3 class="form-signin-heading">新建项目</h3> -->
-        <input type="text" class="input-block-level"  name="item_name" placeholder="项目名" autocomplete="off" value="{$item.item_name}" >
-        <input type="text" class="input-block-level"  name="item_description" placeholder="项目描述" autocomplete="off" value="{$item.item_description}">
+        <input type="text" class="input-block-level"  name="item_name" placeholder="{$Think.Lang.item_name}" autocomplete="off" value="{$item.item_name}" >
+        <input type="text" class="input-block-level"  name="item_description" placeholder="{$Think.Lang.item_description}" autocomplete="off" value="{$item.item_description}">
         <input style="display:none"><!-- for disable autocomplete on chrome -->
         <input style="display:none"><!-- for disable autocomplete on chrome -->
-        <input type="password" class="input-block-level" name="password" placeholder="访问密码(可选,私密项目请设置密码)" autocomplete="off" value="{$item.password}">
-        <button class="btn  btn-primary" type="submit">提交</button>
-        <a href="javascript:history.go(-1)" class="btn">返回</a>
+        <input type="password" class="input-block-level" name="password" placeholder="{$Think.Lang.visit_password_placeholder}" title="{$Think.Lang.visit_password_placeholder}" autocomplete="off" value="{$item.password}">
+        <button class="btn  btn-primary" type="submit">{$Think.Lang.submit}</button>
+        <a href="javascript:history.go(-1)" class="btn">{$Think.Lang.goback}</a>
       </form>
 
     </div> <!-- /container -->

+ 6 - 6
Application/Home/View/Item/delete.html

@@ -8,20 +8,20 @@
   <!-- 编辑框 -->
   <div class="cat-edit">
       <div class="modal-header">
-      <h4>删除项目</h4>
+      <h4>{$Think.Lang.delete_item}</h4>
       </div>
       <input type="hidden" id="item_id" value="{$item_id}">
       <div class="add-cat">
           <form class="form-horizontal">
             <div class="control-group">
-              <label class="control-label" for="inputEmail">验证你的身份</label>
+              <label class="control-label" for="inputEmail">{$Think.Lang.verify_your_identity}</label>
               <div class="controls">
-                <input type="password" id="password" placeholder="创建人登录密码" value="">
+                <input type="password" id="password" placeholder="{$Think.Lang.creator_password}" value="">
               </div>
             </div>
             <div class="control-group">
               <div class="controls">
-                <button type="submit" class="btn" id="save-cat">删除</button>
+                <button type="submit" class="btn" id="save-cat">{$Think.Lang.delete}</button>
               </div>
             </div>
           </form>
@@ -30,9 +30,9 @@
     </div>
 
     <div class="modal-footer">
-      <a href="#" class="btn exist-cat">关闭</a>
+      <a href="#" class="btn exist-cat">{$Think.Lang.close}</a>
     </div>
  </div>
 
  <include file="Common/footer" />
- <script src="__PUBLIC__/js/item/delete.js"></script>
+ <script src="__PUBLIC__/js/item/delete.js?v=dd"></script>

+ 9 - 9
Application/Home/View/Item/index.html

@@ -27,10 +27,10 @@
         </a>
         <ul class="dropdown-menu">
         <!-- dropdown menu links -->
-          <li><a href="{:U('Home/User/setting')}">个人设置</a></li>
-          <li><a href="#share-home-modal"  data-toggle="modal">分享主页</a></li>
-          <li><a href="{:U('Home/index/index')}">网站首页</a></li>
-          <li><a href="{:U('Home/User/exist')}">退出登录</a></li>
+          <li><a href="{:U('Home/User/setting')}">{$Think.Lang.personal_setting}</a></li>
+          <li><a href="#share-home-modal"  data-toggle="modal">{$Think.Lang.share_home}</a></li>
+          <li><a href="{:U('Home/index/index')}">{$Think.Lang.web_home}</a></li>
+          <li><a href="{:U('Home/User/exist')}">{$Think.Lang.logout}</a></li>
 
         </ul>
         </div>
@@ -53,8 +53,8 @@
         </foreach>
 
         <li class="span3 text-center">
-          <a class="thumbnail" href="{:U('Home/Item/add')}" title="添加一个新项目">
-            <p class="my-item ">新建项目&nbsp;<i class="icon-plus"></i></p>
+          <a class="thumbnail" href="{:U('Home/Item/add')}" title="{$Think.Lang.add_an_item}添加一个新项目">
+            <p class="my-item ">{$Think.Lang.new_item}&nbsp;<i class="icon-plus"></i></p>
           </a>
         </li>
       </ul>
@@ -67,11 +67,11 @@
 <div class="modal hide fade" id="share-home-modal">
   <div class="modal-header">
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-    <h3>分享我的主页</h3>
+    <h3>{$Think.Lang.share_my_home}</h3>
   </div>
   <div class="modal-body">
-    <p>主页地址:<code id="share-home-link">{$share_url}</code></p>
-    <p>别人访问您的主页时,将可以看到您的所有公开项目(但没有新建项目等权限)。你可以复制地址给你的好友</p>
+    <p>{$Think.Lang.home_address}:<code id="share-home-link">{$share_url}</code></p>
+    <p>{$Think.Lang.home_address_description}</p>
   </div>
 </div>
 

+ 5 - 5
Application/Home/View/Item/pwd.html

@@ -3,9 +3,9 @@
     <div class="container">
 
       <form class="form-signin" method="post">
-        <h3 class="form-signin-heading">请输入访问密码</h3>
-        <input type="password" class="input-block-level" name="password" placeholder="密码">
-        <input type="text" class="input-block-level"  name="v_code" placeholder="验证码">
+        <h3 class="form-signin-heading">{$Think.Lang.input_visit_password}</h3>
+        <input type="password" class="input-block-level" name="password" placeholder="{$Think.Lang.password}">
+        <input type="text" class="input-block-level"  name="v_code" placeholder="{$Think.Lang.verification_code}">
       <input type="hidden" id="item_id" name="item_id" value="{$item_id}">
 
         <div class="control-group">
@@ -13,8 +13,8 @@
             <img src="" id="v_code_img">
           </div>
         </div>
-        <button class="btn btn-large btn-primary" type="submit">提交</button>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="{:U('Home/User/login')}">登录/注册</a>      </form>
+        <button class="btn btn-large btn-primary" type="submit">{$Think.Lang.submit}</button>
+        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="{:U('Home/User/login')}">{$Think.Lang.login_or_register}</a>      </form>
 
     </div> <!-- /container -->
 

+ 24 - 24
Application/Home/View/Item/show.html

@@ -11,31 +11,31 @@
       <li>
           <div class="btn-group ">
             <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
-              项目
+              {$Think.Lang.item}
               <span class="caret"></span>
             </a>
           <ul class="dropdown-menu">
           <!-- dropdown menu links -->
-            <li><a href="#" id="share">分享</a></li>
-             <li><a href="{:U('Home/Item/word',array('item_id'=>$item['item_id']))}">导出</a></li>
+            <li><a href="#" id="share">{$Think.Lang.share}</a></li>
+             <li><a href="{:U('Home/Item/word',array('item_id'=>$item['item_id']))}">{$Think.Lang.export}</a></li>
 
              <if condition="$ItemCreator">
-              <li><a href="{:U('Home/Item/add',array('item_id'=>$item['item_id']))}">修改信息</a></li>          
-              <li><a href="{:U('Home/Member/edit',array('item_id'=>$item['item_id']))}">成员管理</a></li>
-              <li><a href="{:U('Home/Attorn/index',array('item_id'=>$item['item_id']))}">转让</a></li>
-              <li><a href="{:U('Home/Item/delete',array('item_id'=>$item['item_id']))}">删除</a></li>
+              <li><a href="{:U('Home/Item/add',array('item_id'=>$item['item_id']))}">{$Think.Lang.update_info}</a></li>          
+              <li><a href="{:U('Home/Member/edit',array('item_id'=>$item['item_id']))}">{$Think.Lang.manage_members}</a></li>
+              <li><a href="{:U('Home/Attorn/index',array('item_id'=>$item['item_id']))}">{$Think.Lang.attorn}</a></li>
+              <li><a href="{:U('Home/Item/delete',array('item_id'=>$item['item_id']))}">{$Think.Lang.delete}</a></li>
             </if>
 
-            <li><a href="{:U('Home/Item/index')}">更多项目</a></li>
+            <li><a href="{:U('Home/Item/index')}">{$Think.Lang.more_item}</a></li>
           </ul>
       </li>
       <else />
 
       <if condition="! $login_user">
-        <li ><a href="{:U('Home/User/login')}">登录/注册</a></li>
-        <li ><a href="http://doc.star7th.com/3" target="_blank">关于ShowDoc</a></li>
+        <li ><a href="{:U('Home/User/login')}">{$Think.Lang.login_or_register}</a></li>
+        <li ><a href="http://doc.star7th.com/3" target="_blank">{$Think.Lang.about_showdoc}</a></li>
         <else />
-        <li><a href="{:U('Home/Item/index')}">我的项目</a></li>
+        <li><a href="{:U('Home/Item/index')}">{$Think.Lang.my_item}</a></li>
       </if>
 
         
@@ -97,8 +97,8 @@
       <div class="doc-left-newbar">
 
         <if condition="$ItemPermn">
-          <div><a href="{:U('Home/Page/edit',array('item_id'=>$item['item_id'],'type'=>'new'))}" id="new-like"><i class="icon-plus"></i>&nbsp;新建页面</a></div>
-          <div><a href="{:U('Home/Catalog/edit',array('item_id'=>$item['item_id']))}" id="dir-like" ><i class="icon-folder-open"></i>新建目录</a></div>
+          <div><a href="{:U('Home/Page/edit',array('item_id'=>$item['item_id'],'type'=>'new'))}" id="new-like"><i class="icon-plus"></i>&nbsp;{$Think.Lang.new_page}</a></div>
+          <div><a href="{:U('Home/Catalog/edit',array('item_id'=>$item['item_id']))}" id="dir-like" ><i class="icon-folder-open"></i>{$Think.Lang.new_catalog}</a></div>
 
         </if>
 
@@ -115,10 +115,10 @@
       <div class='page-edit-link pull-right hide'>
         <ul class="inline">
           <if condition="$ItemPermn">
-            <li><a href="" id="share-page" title="分享该接口访问地址给你的好友">分享</a></li>
-            <li><a href="" id="copy-link" title="复制该接口到新接口">复制</a></li>
-            <li><a href="" id="edit-link" title="编辑接口">编辑</a></li>
-            <li><a href="" title="删除接口" onclick="return confirm('确认删除吗?');return false;" id="delete-link">删除</a></li>
+            <li><a href="" id="share-page" title="{$Think.Lang.share_address_to_your_friends}">{$Think.Lang.share}</a></li>
+            <li><a href="" id="copy-link" title="{$Think.Lang.copy_interface_to_new}">{$Think.Lang.copy}</a></li>
+            <li><a href="" id="edit-link" title="{$Think.Lang.edit_interface}">{$Think.Lang.edit}</a></li>
+            <li><a href="" title="{$Think.Lang.delete_interface}" onclick="return confirm('{$Think.Lang.comfirm_delete}');return false;" id="delete-link">{$Think.Lang.delete}</a></li>
           <else />
             <li></li>
             <li></li>
@@ -137,11 +137,11 @@
 <div class="modal hide fade" id="share-modal">
   <div class="modal-header">
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-    <h3>分享</h3>
+    <h3>{$Think.Lang.share}</h3>
   </div>
   <div class="modal-body">
-    <p>项目地址:<code>{$share_url}</code></p>
-    <p>你可以复制地址给你的好友</p>
+    <p>{$Think.Lang.item_address}:<code>{$share_url}</code></p>
+    <p>{$Think.Lang.copy_address_to_your_friends}</p>
   </div>
 </div>
 
@@ -149,15 +149,15 @@
 <div class="modal hide fade" id="share-page-modal">
   <div class="modal-header">
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-    <h3>分享页面</h3>
+    <h3>{$Think.Lang.share_page}</h3>
   </div>
   <div class="modal-body">
-    <p>页面地址:<code id="share-page-link"></code></p>
-    <p>你可以复制地址给你的好友</p>
+    <p>{$Think.Lang.page_address}:<code id="share-page-link"></code></p>
+    <p>{$Think.Lang.copy_address_to_your_friends}</p>
   </div>
 </div>
 <script src="__PUBLIC__/js/jquery.bootstrap-growl.min.js"></script>
 <script src="__PUBLIC__/js/jquery.goup.min.js"></script>
 <script src="__PUBLIC__/js/jquery.hotkeys.js"></script>
 
-<script src="__PUBLIC__/js/item/show.js?v=1.12thirdtt"></script>
+<script src="__PUBLIC__/js/item/show.js?v=1.12thirdtt&34377"></script>

+ 5 - 5
Application/Home/View/Item/showbyuid.html

@@ -22,25 +22,25 @@
       <div class="masthead">
         <div class="btn-group pull-right">
         <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
-        更多
+        {$Think.Lang.more}
         <span class="caret"></span>
         </a>
         <ul class="dropdown-menu">
         <!-- dropdown menu links -->
           <if condition="$login_user">
-            <li><a href="{:U('Home/Item/Index')}">我的项目</a></li>
+            <li><a href="{:U('Home/Item/Index')}">{$Think.Lang.my_item}</a></li>
             <else />
-             <li><a href="{:U('Home/User/login')}">登录/注册</a></li> 
+             <li><a href="{:U('Home/User/login')}">{$Think.Lang.login_or_register}</a></li> 
           </if>
           
           
-          <li><a href="http://doc.star7th.com/3" target="_blank">关于ShowDoc</a></li>
+          <li><a href="http://doc.star7th.com/3" target="_blank">{$Think.Lang.about_showdoc}</a></li>
 
         </ul>
         </div>
 
         </ul>
-        <h3 class="muted">{$show_user.username}的所有公开项目</h3>
+        <h3 class="muted">{$show_user.username}{$Think.Lang.all_pubilc_item}</h3>
       </div>
 
       <hr>

+ 44 - 0
Application/Home/View/MdTemplate/api-doc.en-us.html

@@ -0,0 +1,44 @@
+
+**A brief description:** 
+
+- interface for registering
+
+**Request url:** 
+- ` http://xx.com/api/user/register `
+  
+**Method:**
+- POST 
+
+**Request params:** 
+
+|Param|Required|Type|Description|
+|:----    |:---|:----- |-----   |
+|username |yes  |string |your usernem   |
+|password |yes  |string | your password    |
+|name     |yes  |string | your name    |
+
+ **A sample of result **
+
+``` 
+  {
+    "error_code": 0,
+    "data": {
+      "uid": "1",
+      "username": "12154545",
+      "name": "Jim",
+      "groupid": 2 ,
+      "reg_time": "1436864169",
+      "last_login_time": "0",
+    }
+  }
+```
+
+ **Result params** 
+
+|Param|Type|Description|
+|:-----  |:-----|-----                           |
+|groupid |int   | none |
+
+ **Remarks** 
+
+- See the home page for more 

+ 0 - 0
Application/Home/View/MdTemplate/api-doc.html → Application/Home/View/MdTemplate/api-doc.zh-cn.html


+ 12 - 0
Application/Home/View/MdTemplate/database.en-us.html

@@ -0,0 +1,12 @@
+
+-  User table , for storing the user information
+
+|Field|Type|Allow empty|Default|Comment|
+|:----    |:-------    |:--- |-- -|------      |
+|uid      |int(10)     |no   |    |             |
+|username |varchar(20) |no   |    |   your username    |
+|password |varchar(50) |no   |    |   your password      |
+|name     |varchar(15) |yes   |    |    your name     |
+|reg_time |int(11)     |yes  | 0  |   register time  |
+
+- Remarks:none

+ 0 - 0
Application/Home/View/MdTemplate/database.html → Application/Home/View/MdTemplate/database.zh-cn.html


+ 0 - 208
Application/Home/View/MdTemplate/php.html

@@ -1,208 +0,0 @@
-# PHP程序员简历模板
-
-本简历模板由国内首家互联网人才拍卖网站「 [JobDeer.com](http://www.jobdeer.com) 」提供。
-
-(括号里的是我们的顾问编写的说明,建议在简历书写完成后统一删除)
-
-## 先讲讲怎样才是一份好的技术简历
-
-首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力。
-
- - Feature:是什么
- - Advantage:比别人好在哪些地方
- - Benefit:如果雇佣你,招聘方会得到什么好处 
-
-其次,写简历和写议论文不同,过分的论证会显得自夸,反而容易引起反感,所以要点到为止。这里的技巧是,提供论据,把论点留给阅读简历的人自己去得出。放论据要具体,最基本的是要数字化,好的论据要让人印象深刻。
-
-举个例子,下边内容是虚构的:
-
-2006年,我参与了手机XX网发布系统WAPCMS的开发(```这部分是大家都会写的```)。作为核心程序员,我不但完成了网站界面、调度队列的开发工作,更提出了高效的组件级缓存系统,通过碎片化缓冲有效的提升了系统的渲染效率。(```这部分是很多同学忘掉的,要写出你在这个项目中具体负责的部分,以及你贡献出来的价值。```)在该系统上线后,Web前端性能从10QPS提升到200QPS,服务器由10台减少到3台(``` 通过量化的数字来增强可信度 ```)。2008年我升任WAPCMS项目负责人,带领一个3人小组支持着每天超过2亿的PV(``` 这就是Benefit。你能带给前雇主的价值,也就是你能带给新雇主的价值。 ```)。
-
-有同学问,如果我在项目里边没有那么显赫的成绩可以说怎么办?讲不出成绩时,就讲你的成长。因为学习能力也是每家公司都看中的东西。你可以写你在这个项目里边遇到了一个什么样的问题,别人怎么解决的,你怎么解决的,你的方案好在什么地方,最终这个方案的效果如何。
-
-具体、量化、有说服力,是技术简历特别需要注重的地方。
-
-(以上内容在写完简历后,对每一段进行评估,完成后再删除)
-
----
-
-
-# 联系方式
-(HR会打印你的简历,用于在面试的时候联系,所以联系方式放到最上边会比较方便)
-
-- 手机:135******** (```如果是外地手机,可注明。如经常关机,要写上最优联系时间```)
-- Email:goodman@gmail.com (```虽然我觉得QQ邮箱无所谓,不过有些技术人员比较反感,建议用G```)
-- QQ/微信号:6*******(```提供一个通过网络可以联系到你的方式```)
-
----
-
-# 个人信息
-
- - 胶布帝/男/1990 
- - 本科/萌鹿大学计算机系 
- - 工作年限:3年
- - 微博:[@JobDeer](http://weibo.com/jobdeer) (``` 如果没有技术相关内容,也可以不放 ```)
- - 技术博客:http://blog.github.io ( ``` 使用GitHub Host的Big较高 ```  )
- - Github:http://github.com/geekcompany ( ``` 有原创repo的Github帐号会极大的提升你的个人品牌 ```  )
-
- - 期望职位:PHP高级程序员,应用架构师
- - 期望薪资:税前月薪15k~20k,特别喜欢的公司可例外
- - 期望城市:北京
-
----
-
-# 工作经历
-(工作经历按逆序排列,最新的在最前边,按公司做一级分组,公司内按二级分组)
-
-## ABC公司 ( 2012年9月 ~ 2014年9月 )
-
-### DEF项目 
-我在此项目负责了哪些工作,分别在哪些地方做得出色/和别人不一样/成长快,这个项目中,我最困难的问题是什么,我采取了什么措施,最后结果如何。这个项目中,我最自豪的技术细节是什么,为什么,实施前和实施后的数据对比如何,同事和领导对此的反应如何。
-
-
-### GHI项目 
-我在此项目负责了哪些工作,分别在哪些地方做得出色/和别人不一样/成长快,这个项目中,我最困难的问题是什么,我采取了什么措施,最后结果如何。这个项目中,我最自豪的技术细节是什么,为什么,实施前和实施后的数据对比如何,同事和领导对此的反应如何。
-
-
-### 其他项目
-
-(每个公司写2~3个核心项目就好了,如果你有非常大量的项目,那么按分类进行合并,每一类选一个典型写出来。其他的一笔带过即可。)
-
- 
-## JKL公司 ( 2010年3月 ~ 2012年8月 )
-
-### MNO项目 
-我在此项目负责了哪些工作,分别在哪些地方做得出色/和别人不一样/成长快,这个项目中,我最困难的问题是什么,我采取了什么措施,最后结果如何。这个项目中,我最自豪的技术细节是什么,为什么,实施前和实施后的数据对比如何,同事和领导对此的反应如何。
-
-
-### PQR项目 
-我在此项目负责了哪些工作,分别在哪些地方做得出色/和别人不一样/成长快,这个项目中,我最困难的问题是什么,我采取了什么措施,最后结果如何。这个项目中,我最自豪的技术细节是什么,为什么,实施前和实施后的数据对比如何,同事和领导对此的反应如何。
-
-
-### 其他项目
-
-(每个公司写2~3个核心项目就好了,如果你有非常大量的项目,那么按分类进行合并,每一类选一个典型写出来。其他的一笔带过即可。)
-
----
-
-# 开源项目和作品
-(这一段用于放置工作以外的、可证明你的能力的材料)
-
-## 开源项目
-(对于程序员来讲,没有什么比Show me the code能有说服力了)
-
- - [STU](http://github.com/yourname/projectname):项目的简要说明,Star和Fork数多的可以注明
- - [WXYZ](http://github.com/yourname/projectname):项目的简要说明,Star和Fork数多的可以注明
-
-## 技术文章
-(挑选你写作或翻译的技术文章,好的文章可以从侧面证实你的表达和沟通能力,也帮助招聘方更了解你)
-
-- [一个产品经理眼中的云计算:前生今世和未来](http://get.jobdeer.com/706.get)
-- [来自HeroKu的HTTP API 设计指南(翻译文章)](http://get.jobdeer.com/343.get) ( ```好的翻译文章可以侧证你对英文技术文档的阅读能力```)
-
-## 演讲和讲义
-(放置你代表公司在一些技术会议上做过的演讲,以及你在公司分享时制作的讲义)
-
-  - 2014架构师大会演讲:[如何通过Docker优化内部开发](http://jobdeer.com)
- - 9月公司内部分享:[云计算的前生今世](http://jobdeer.com)
-
-# 技能清单
-(我一般主张将技能清单写入到工作经历里边去。不过很难完整,所以有这么一段也不错)
-
-以下均为我熟练使用的技能
-
-- Web开发:PHP/Hack/Node
-- Web框架:ThinkPHP/Yaf/Yii/Laravel/LazyPHP
-- 前端框架:Bootstrap/AngularJS/EmberJS/HTML5/Cocos2dJS/ionic
-- 前端工具:Bower/Gulp/SaSS/LeSS/PhoneGap
-- 数据库相关:MySQL/PgSQL/PDO/SQLite
-- 版本管理、文档和自动化部署工具:Svn/Git/PHPDoc/Phing/Composer
-- 单元测试:PHPUnit/SimpleTest/Qunit
-- 云和开放平台:SAE/BAE/AWS/微博开放平台/微信应用开发
-
-## 参考技能关键字
-
-本技能关键字列表是从最近招聘PHP的数百份JD中统计出来的,括号中是出现的词频。如果你的简历要投递给有机器(简历分选系统)和不如机器(不懂技术的HR)筛选简历环节的地方,请一定从下边高频关键词中选择5~10个适合你自己的。
-
-- php(959)
-- mysql(525)
-- web(280)
-- linux(269)
-- css(246)
-- javascript(241)
-- html(196)
-- ajax(151)
-- jquery(120)
-- sql(105)
-- mvc(104)
-- lamp(91)
-- js(76)
-- apache(76)
-- xml(68)
-- unix(68)
-- div(67)
-- nginx(62)
-- yii(56)
-- thinkphp(56)
-- redis(52)
-- xhtml(51)
-- shell(49)
-- oop(41)
-- json(41)
-- memcache(38)
-- zend(36)
-- java(31)
-- api(31)
-- ci(31)
-- svn(27)
-- python(27)
-- codeigniter(27)
-- html5(26)
-- nosql(25)
-- discuz(24)
-- smarty(23)
-- mongodb(21)
-- cms(21)
-- oracle(21)
-- w3c(19)
-- framework(18)
-- lbs(17)
-- git(17)
-- memcached(17)
-- tcp(15)
-- lnmp(15)
-- cakephp(13)
-- rest(12)
-- crm(9)
-- android(9)
-- uml(9)
-- css3(8)
-- webservice(8)
-- php5(8)
-- tp(8)
-- dhtml(8)
-- ecshop(7)
-- symfony(7)
-- erp(7)
-- windows(6)
-- sns(6)
-- wordpress(5)
-- seo(5)
-- phpcms(5)
-- bootstrap(5)
-- drupal(5)
-- cache(5)
-- o2o(5)
-- ui(5)
-- postgresql(5)
-- perl(5)
-- github(4)
-- oa(4)
-- yaf(4)
-
-
-
----
-
-# 致谢
-感谢您花时间阅读我的简历,期待能有机会和您共事。

+ 7 - 7
Application/Home/View/Member/edit.html

@@ -9,20 +9,20 @@
   <!-- 编辑框 -->
   <div class="cat-edit">
       <div class="modal-header">
-      <h4>新增成员</h4>
+      <h4>{$Think.Lang.new_member}</h4>
       </div>
       <input type="hidden" id="item_id" value="{$item_id}">
       <div class="add-cat">
           <form class="form-horizontal">
             <div class="control-group">
-              <label class="control-label" for="inputEmail">用户名</label>
+              <label class="control-label" for="inputEmail">{$Think.Lang.username}</label>
               <div class="controls">
-                <input type="text" id="username" placeholder="用户名" value="">
+                <input type="text" id="username" placeholder="{$Think.Lang.username}" value="">
               </div>
             </div>
             <div class="control-group">
               <div class="controls">
-                <button type="submit" class="btn" id="save-cat">保存</button>
+                <button type="submit" class="btn" id="save-cat">{$Think.Lang.save}</button>
               </div>
             </div>
           </form>
@@ -32,7 +32,7 @@
   <!-- 成员列表 -->
   <div class="cat-list">
     <div class="modal-header">
-    <h4>成员列表&nbsp;<small>(点击可删除)</small></h4>
+    <h4>{$Think.Lang.member_list}&nbsp;<small>({$Think.Lang.click_to_delete})</small></h4>
     </div>
     <div id="show-cat">
 
@@ -42,9 +42,9 @@
   </div>
 
     <div class="modal-footer">
-      <a href="#" class="btn exist-cat">关闭</a>
+      <a href="#" class="btn exist-cat">{$Think.Lang.close}</a>
     </div>
  </div>
 
  <include file="Common/footer" />
-<script src="__PUBLIC__/js/member/edit.js"></script>
+<script src="__PUBLIC__/js/member/edit.js?v=1"></script>

+ 19 - 16
Application/Home/View/Page/edit.html

@@ -10,39 +10,39 @@
         <div class="head-left  pull-left">
             <ul class="inline">
                 <li>
-                    <input type="text" name="page_title" id="page_title" placeholder="请输入页面标题" value="{$page.page_title}" tabindex="1">
+                    <input type="text" name="page_title" id="page_title" placeholder="{$Think.Lang.input_page_title}" value="{$page.page_title}" tabindex="1">
                 </li>
                 <li>
-                    二级目录
+                    {$Think.Lang.level_2_directory}
                     <select name="cat_id" id="cat_id" tabindex="2"></select>
                 </li>
                 <li id="li_parent_cat">
-                    三级目录
+                    {$Think.Lang.level_3_directory}
                     <select name="parent_cat_id" id="parent_cat_id" ></select>
                 </li>
                 <li>
-                    <input type="text" name="s_number" id="s_number" value="{$page.s_number}" placeholder="可选:顺序数字"  tabindex="3" >
+                    <input type="text" name="s_number" id="s_number" value="{$page.s_number}" placeholder="{$Think.Lang.s_number_explain}" title="{$Think.Lang.s_number_explain}"  tabindex="3" >
                 </li>
                 <li>
                     <!-- 首次添加没有历史版本,不显示 -->
                     <if condition="$page.page_id gt 0">
-                        <a href="?s=home/page/history&page_id={$page.page_id}">历史版本</a>
+                        <a href="?s=home/page/history&page_id={$page.page_id}">{$Think.Lang.history_version}</a>
                         <else />
                     </if>
                 </li>
             </ul>
         </div>
         <div class="head-right pull-right">
-            <a href="#" class="btn btn-primary " id="save">保存</a>
-            <a href="?s=home/item/show&item_id={$item_id}&page_id={$page.page_id}" class="btn cancel">取消</a>
+            <a href="#" class="btn btn-primary " id="save">{$Think.Lang.save}</a>
+            <a href="?s=home/item/show&item_id={$item_id}&page_id={$page.page_id}" class="btn cancel">{$Think.Lang.cancel}</a>
         </div>
     </header>
     <br>
     <!-- 插入模板的按钮组 -->
     <div class="btns">
-        <button id="api-doc" tabindex="4" >插入API接口模板</button>
-        <button id="database-doc" tabindex="5" >插入数据字典模板</button>
-        <button id="jsons" tabindex="7" >JSON转参数表格</button>
+        <button id="api-doc" tabindex="4" >{$Think.Lang.inser_apidoc_template}</button>
+        <button id="database-doc" tabindex="5" >{$Think.Lang.inser_database_doc_template}</button>
+        <button id="jsons" tabindex="7" >{$Think.Lang.json_to_table}</button>
     </div>
     <div id="editormd">
         <textarea id="page_content" style="display:none;" tabindex="6" >{$page.page_content}</textarea>
@@ -54,24 +54,24 @@
 </div>
 <!-- 模板存放的地方 -->
 <div id="api-doc-templ" style="display:none">
-    <include file="MdTemplate/api-doc" />
+    <include file="$api_doc_templ" />
 </div>
 <div id="database-doc-templ" style="display:none">
-    <include file="MdTemplate/database" />
+    <include file="$database_doc_templ" />
 </div>
 
 <div id="json-templ" class="editormd-dialog editormd-preformatted-text-dialog" style="width: 780px; height: 540px;">
 
     <div style="cursor: move;" class="editormd-dialog-header">
-        <strong class="editormd-dialog-title">JSON转参数表格</strong>
+        <strong class="editormd-dialog-title">{$Think.Lang.json_to_table}</strong>
     </div>
     <a class="fa fa-close editormd-dialog-close" href="javascript:closeDiv('#json-templ');"></a>
     <div class="editormd-dialog-container">
-        <textarea id="jsons_add" class="jsons" placeholder="请粘贴一段json,程序将自动将json解析并生成参数表格。此功能适合用于快速编写API文档的返回参数表格"></textarea>
+        <textarea id="jsons_add" class="jsons" placeholder="{$Think.Lang.json_to_table_description}"></textarea>
         
         <div class="editormd-dialog-footer">
-            <button class="editormd-btn editormd-enter-btn">确定</button>
-            <button class="editormd-btn editormd-cancel-btn" onclick="closeDiv('#json-templ')">取消</button>
+            <button class="editormd-btn editormd-enter-btn">{$Think.Lang.confirm}</button>
+            <button class="editormd-btn editormd-cancel-btn" onclick="closeDiv('#json-templ')">{$Think.Lang.cancel}</button>
         </div>
     </div>
     <div class="editormd-dialog-mask editormd-dialog-mask-bg"></div><div class="editormd-dialog-mask editormd-dialog-mask-con"></div>
@@ -92,3 +92,6 @@
 <script src="__PUBLIC__/editor.md/plugins/reference-link-dialog/reference-link-dialog.js"></script>
 
 <script src="__PUBLIC__/js/page/edit.js?v=1.1.2thirdon"></script>
+<if condition="LANG_SET=='en-us'">
+    <script src="__PUBLIC__/editor.md/languages/en.js"></script>
+</if>

+ 7 - 7
Application/Home/View/Page/history.html

@@ -7,20 +7,20 @@
 </style>
  <div id="edit-cat" class="modal hide fade">
   <div class="modal-header">
-    <h4>历史版本</h4>
+    <h4>{$Think.Lang.history_version}</h4>
   </div>
   <table class="table table-hover">
     <TR>
-      <td>修改时间</td>
-      <td>修改人</td>
-      <td>操作</td>
+      <td>{$Think.Lang.update_time}</td>
+      <td>{$Think.Lang.update_by_who}</td>
+      <td>{$Think.Lang.operation}</td>
     </TR>
     <if condition="$PageHistory">
       <foreach name="PageHistory" item="value">
       <TR>
         <td>{$value.addtime}</td>
         <td>{$value.author_username}</td>
-        <td><a href="?s=home/page/edit&page_id={$page_id}&page_history_id={$value.page_history_id}">恢复到此版本</a></td>
+        <td><a href="?s=home/page/edit&page_id={$page_id}&page_history_id={$value.page_history_id}">{$Think.Lang.recover_to_this_version}</a></td>
       </TR>
 
       </foreach>
@@ -28,8 +28,8 @@
   </table>
 
     <div class="modal-footer">
-      <a href="?s=home/page/edit&page_id={$page_id}" class="btn exist-cat">关闭</a>
-      <a href="?s=home/page/edit&page_id={$page_id}" class="btn btn-primary exist-cat">完成</a>
+      <a href="?s=home/page/edit&page_id={$page_id}" class="btn exist-cat">{$Think.Lang.close}</a>
+      <a href="?s=home/page/edit&page_id={$page_id}" class="btn btn-primary exist-cat">{$Think.Lang.finish}</a>
     </div>
  </div>
 <input type="hidden" id="page_id" value="{$page_id}">

+ 6 - 6
Application/Home/View/User/login.html

@@ -4,19 +4,19 @@
     <div class="container">
 
       <form class="form-signin" method="post">
-        <h3 class="form-signin-heading">登录</h3>
-        <input type="text" class="input-block-level"  name="username" placeholder="用户名">
-        <input type="password" class="input-block-level" name="password" placeholder="密码">
+        <h3 class="form-signin-heading">{$Think.Lang.login}</h3>
+        <input type="text" class="input-block-level"  name="username" placeholder="{$Think.Lang.username}">
+        <input type="password" class="input-block-level" name="password" placeholder="{$Think.Lang.password}">
         <if  condition="$CloseVerify != 1">
-        <input type="text" class="input-block-level"  name="v_code" placeholder="验证码">
+        <input type="text" class="input-block-level"  name="v_code" placeholder="{$Think.Lang.verification_code}">
         <div class="control-group">
           <div class="controls">
             <img src="#" id="v_code_img">
           </div>
         </div>
         </if>
-        <button class="btn btn-large btn-primary" type="submit">登录</button>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="?s=/home/user/register">没有账号?马上去注册→</a>
+        <button class="btn btn-large btn-primary" type="submit">{$Think.Lang.login}</button>
+        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="?s=/home/user/register">{$Think.Lang.no_account}</a>
       </form>
 
     </div> <!-- /container -->

+ 7 - 7
Application/Home/View/User/register.html

@@ -4,20 +4,20 @@
     <div class="container">
 
       <form class="form-signin" method="post">
-        <h3 class="form-signin-heading">注册新用户</h3>
-        <input type="text" class="input-block-level" name="username" placeholder="用户名(可填英文昵称或邮箱)">
-        <input type="password" class="input-block-level" name="password"  placeholder="密码">
-        <input type="password" class="input-block-level" name="confirm_password"  placeholder="再次输入密码">
+        <h3 class="form-signin-heading">{$Think.Lang.register_new_account}</h3>
+        <input type="text" class="input-block-level" name="username" placeholder="{$Think.Lang.username_description}">
+        <input type="password" class="input-block-level" name="password"  placeholder="{$Think.Lang.password}">
+        <input type="password" class="input-block-level" name="confirm_password"  placeholder="{$Think.Lang.password_again}">
         <if  condition="$CloseVerify != 1">
-        <input type="text" class="input-block-level" name="v_code"  placeholder="验证码">
+        <input type="text" class="input-block-level" name="v_code"  placeholder="{$Think.Lang.verification_code}">
         <div class="control-group">
           <div class="controls">
             <img src="#" id="v_code_img">
           </div>
         </div>
         </if>
-        <button class="btn btn-large btn-primary" type="submit">注册</button>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="?s=/home/user/login">已有账号?马上去登录→</a>
+        <button class="btn btn-large btn-primary" type="submit">{$Think.Lang.register}</button>
+        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="?s=/home/user/login">{$Think.Lang.had_a_account}</a>
       </form>
 
     </div> <!-- /container -->

+ 5 - 5
Application/Home/View/User/setting.html

@@ -4,12 +4,12 @@
     <div class="container">
 
       <form class="form-signin" method="post">
-        <h3 class="form-signin-heading">修改个人信息</h3>
+        <h3 class="form-signin-heading">{$Think.Lang.update_personal_info}</h3>
         <input type="text" class="input-block-level" value="{$user.username}" disabled >
-        <input type="password" class="input-block-level" name="new_password"  placeholder="新密码,若不修改请留空">
-        <input type="password" class="input-block-level" name="password"  placeholder="原密码,若不修改密码请留空">
-        <button class="btn  btn-primary" type="submit">提交</button>
-        <a href="javascript:history.go(-1)" class="btn">返回</a>
+        <input type="password" class="input-block-level" name="new_password"  placeholder="{$Think.Lang.new_password_description}">
+        <input type="password" class="input-block-level" name="password"  placeholder="{$Think.Lang.old_password_description}">
+        <button class="btn  btn-primary" type="submit">{$Think.Lang.submit}</button>
+        <a href="javascript:history.go(-1)" class="btn">{$Think.Lang.goback}</a>
       </form>
 
     </div> <!-- /container -->

+ 2 - 1
Public/css/page/edit.css

@@ -116,6 +116,7 @@ body {
 }
 
 #s_number {
-    width: 120px;
+    width: 50px;
     margin-right: 20px;
+    height: 28px;
 }

+ 1 - 1
Public/js/attorn/index.js

@@ -14,7 +14,7 @@ $(function(){
         {"username": username ,"item_id": item_id , "password": password  },
         function(data){
           if (data.error_code == 0) {
-            alert("转让成功!");
+            alert(lang['attorn_success']);
             window.location.href="?s=/home/item/index";
           }else{
             alert(data.error_message);

+ 6 - 6
Public/js/catalog/edit.js

@@ -43,7 +43,7 @@ $(function(){
         "s": "home/catalog/secondCatList",
       },
       function(data) {
-        $("#parent_cat_id").html('<OPTION value="0"></OPTION>');
+        $("#parent_cat_id").html('<OPTION value="0">'+lang["none"]+'</OPTION>');
         if (data.error_code == 0) {
           json = data.data;
           console.log(json);
@@ -82,9 +82,9 @@ $(function(){
             $("#cat_id").val('');
             $("#parent_cat_id").val('');
             secondCatList();
-            alert("保存成功!");
+            alert(lang["save_success"]);
           }else{
-            alert("保存失败!");
+            alert(lang["save_fail"]);
           }
           getCatList();
         },
@@ -96,7 +96,7 @@ $(function(){
 
   //删除目录
   $("#delete-cat").click(function(){
-    if(confirm('确认删除吗?')){
+    if(confirm(lang["confirm_to_delete"])){
         var cat_id = $("#cat_id").val();
         if (cat_id > 0 ) {
             $.post(
@@ -104,13 +104,13 @@ $(function(){
                 { "cat_id": cat_id  },
                 function(data){
                   if (data.error_code == 0) {
-                    alert("删除成功!");
+                    alert(lang["delete_success"]);
                     window.location.href="?s=home/catalog/edit&item_id="+item_id;
                   }else{
                     if (data.error_message) {
                       alert(data.error_message);
                     }else{
-                      alert("删除失败!");
+                      alert(lang["delete_fail"]);
                     }
                     
                   }

+ 1 - 1
Public/js/item/delete.js

@@ -16,7 +16,7 @@ $(function(){
         {"item_id": item_id , "password": password  },
         function(data){
           if (data.error_code == 0) {
-            alert("删除成功!");
+            alert(lang["delete_success"]);
             window.location.href="?s=/home/item/index";
           }else{
             alert(data.error_message);

+ 30 - 7
Public/js/item/show.js

@@ -50,7 +50,7 @@ $(function(){
         trigger: 100,
         bottomOffset: 150,
         locationOffset: 100,
-        title: '回到顶部',
+        title: lang["back_to_top"] ,
         titleAsText: true,
         containerColor:"#08c",
     });
@@ -127,13 +127,20 @@ $(function(){
       if(!page_id)return;
       var item_id = $("#item_id").val();
       var base_url = $("#base_url").val();
+      var iframe_url =  base_url+"/home/page/index/page_id/"+page_id;
+
       $(".page-edit-link").show();
-      $("#page-content").attr("src" , base_url+"/home/page/index/page_id/"+page_id);
+      //$("#page-content").attr("src" , iframe_url);
       $("#edit-link").attr("href" , base_url+"/home/page/edit/page_id/"+page_id);
       $("#copy-link").attr("href" , base_url+"/home/page/edit/item_id/"+item_id+"/copy_page_id/"+page_id);
       $("#share-page-link").html("http://"+window.location.host+base_url+"/"+item_id+"&page_id="+page_id);
       $("#delete-link").attr("href" , base_url+"/home/page/delete/page_id/"+page_id);
       history.replaceState(null, null, "http://"+window.location.host+base_url+"/"+item_id+"&page_id="+page_id);
+      
+      var html = '<iframe id="page-content" width="100%" scrolling="yes"  height="100%" frameborder="0" style=" overflow:visible; height:100%;" name="main"  seamless ="seamless"src="'+iframe_url+'"></iframe>';
+      $(".iframe_content").html(html);
+      iFrameHeight();
+      
   }
 
   //分享项目
@@ -148,12 +155,28 @@ $(function(){
     return false;
   });
 
-  var ifr = document.getElementById('page-content')
+function iFrameHeight() { 
+  var ifr = document.getElementById('page-content');
   ifr.onload = function() {
-      var iDoc = ifr.contentDocument || ifr.document
-      var height = calcPageHeight(iDoc)
-      ifr.style.height = height + 'px'
+      var iDoc = ifr.contentDocument || ifr.document;
+      var height = calcPageHeight(iDoc);
+      ifr.style.height = height + 'px';
+
+      
+      if(!isMobile()){
+        //调节左侧栏背景的最小高度
+        if(height >  document.body.clientHeight){
+          $(".doc-left").css("min-height",(height+60) + 'px');
+        }else{
+          $(".doc-left").css("min-height",'100%');
+        }  
+      }
+
+      
   }
+ }
+
+
 
   // 计算页面的实际高度,iframe自适应会用到
   function calcPageHeight(doc) {
@@ -170,7 +193,7 @@ $(function(){
     },
     // 删除
     "Ctrl+D": function() {
-      if (confirm('确认删除吗?'))
+      if (confirm(lang["confirm_to_delete"]))
         location.href = $("#delete-link").attr('href');
     },
     // 新建页面

+ 27 - 0
Public/js/lang.en-us.js

@@ -0,0 +1,27 @@
+
+var lang = new Array();
+
+//attorn
+lang['attorn_success'] = "Attorn success";
+
+//catalog
+lang["none"] = "none";
+lang["save_success"] = "Save success";
+lang["save_fail"] = "Save fail";
+lang["confirm_to_delete"] = "Are you sure that you want to delete it?";
+lang["delete_success"] = "Delete success";
+lang["delete_fail"] = "Delete fail";
+
+//item
+lang["back_to_top"] = "Back to top";
+
+
+//page/edite
+lang["params"] = "Params";
+lang["type"] = "Type";
+lang["description"] = "Description";
+lang["editormd_placeholder"] = "Supports Markdown.the left side to edite, the right Preview";
+lang["json_fail"] = "JSON import failed";
+lang["filed"] = "filed";
+
+

+ 27 - 0
Public/js/lang.zh-cn.js

@@ -0,0 +1,27 @@
+
+var lang = new Array();
+
+//attorn
+lang['attorn_success'] = "转让成功!";
+
+//catalog
+lang["none"] = "无";
+lang["save_success"] = "保存成功!";
+lang["save_fail"] = "保存失败!";
+lang["confirm_to_delete"] = "确认删除吗?";
+lang["delete_success"] = "删除成功!";
+lang["delete_fail"] = "删除失败!";
+
+//item
+lang["back_to_top"] = "回到顶部";
+
+
+//page/edite
+lang["params"] = "参数名";
+lang["type"] = "类型";
+lang["description"] = "说明";
+lang["editormd_placeholder"] = "本编辑器支持Markdown编辑,左边编写,右边预览";
+lang["json_fail"] = "json导入失败";
+lang["filed"] = "键";
+
+

+ 3 - 3
Public/js/member/edit.js

@@ -40,7 +40,7 @@ $(function(){
         function(data){
           if (data.error_code == 0) {
             $("#username").val('');
-            alert("保存成功!");
+            alert(lang["save_success"]);
           }else{
             alert(data.error_message);
 
@@ -63,10 +63,10 @@ $(function(){
               { "username": username, "item_id" :item_id },
               function(data){
                 if (data.error_code == 0) {
-                  alert("删除成功!");
+                  alert(lang["delete_success"]);
                   getList();
                 }else{
-                  alert("删除失败!");
+                  alert(lang["delete_fail"]);
 
                 }
               },

+ 8 - 8
Public/js/page/edit.js

@@ -1,6 +1,6 @@
 var editormd;
 
-var json_table_data='|参数名|类型|说明|\n'+
+var json_table_data='|'+lang["params"]+'|'+lang["type"]+'|'+lang["description"]+'|\n'+
 		'|:-------|:-------|:-------|\n';
 
 $(function() {
@@ -16,7 +16,7 @@ $(function() {
         "s": "home/catalog/secondCatList",
       },
       function(data) {
-        $("#cat_id").html('<OPTION value="0"></OPTION>');
+        $("#cat_id").html('<OPTION value="0">'+lang["none"]+'</OPTION>');
         if (data.error_code == 0) {
           json = data.data;
           console.log(json);
@@ -47,7 +47,7 @@ $(function() {
         "s": "home/catalog/childCatList",
       },
       function(data) {
-        $("#parent_cat_id").html('<OPTION value="0"></OPTION>');
+        $("#parent_cat_id").html('<OPTION value="0">'+lang["none"]+'</OPTION>');
         if (data.error_code == 0) {
           json = data.data;
           console.log(json);
@@ -104,7 +104,7 @@ $(function() {
     height: 1000,
     syncScrolling: "single",
     path: DocConfig.pubile + "/editor.md/lib/",
-    placeholder: "本编辑器支持Markdown编辑,左边编写,右边预览",
+    placeholder: lang["editormd_placeholder"] ,
     imageUpload: true,
     imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
     imageUploadURL: "?s=home/page/uploadImg",
@@ -143,7 +143,7 @@ $(function() {
 			Change($.parseJSON(datas));   
 		}
 		catch(e){
-			alert("json导入失败" + e);
+			alert(lang["json_fail"]  + e);
 		}
 		
 		//datas=processJSONImport(datas);
@@ -159,7 +159,7 @@ $(function() {
 		
 		editormd.insertValue(json_table_data);
 		
-		json_table_data='|键|类型|说明|\n'+
+		json_table_data='|'+lang["filed"]+'|'+lang["type"]+'|'+lang["description"]+'|\n'+
 		'|:-------|:-------|:-------|\n';
 		
 		
@@ -199,10 +199,10 @@ $(function() {
       },
       function(data) {
         if (data.error_code == 0) {
-          $.bootstrapGrowl("保存成功!");
+          $.bootstrapGrowl(lang["save_success"]);
           window.location.href = "?s=home/item/show&page_id=" + data.data.page_id + "&item_id=" + item_id;
         } else {
-          $.bootstrapGrowl("保存失败!");
+          $.bootstrapGrowl(lang["save_fail"]);
 
         }
         saving = false;

+ 66 - 71
README.md

@@ -1,82 +1,77 @@
-### ShowDoc是什么
+## 中文版教程:http://doc.star7th.com/3
+***
+### What is ShowDoc ?
 
-每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂。文档呢?!文档呢?!**Show me the doc  !!**  
- 
-程序员都很希望别人能写技术文档,而自己却很不希望要写文档。因为写文档需要花大量的时间去处理格式排版,想着新建的word文档放在哪个目录等各种非技术细节。
-
-word文档零零散散地放在团队不同人那里,需要文档的人基本靠吼,吼一声然后上qq或者邮箱接收对方丢过来的文档。这种沟通方式当然可以,只是效率不高。  
- 
-ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率。  
-
-### 它可以用来做什么
-
-- #### API文档( [查看Demo](http://doc.star7th.com/2))
-
-	随着移动互联网的发展,BaaS(后端即服务)越来越流行。服务端提供API,APP端或者网页前端便可方便调用数据。用ShowDoc可以非常方便快速地编写出美观的API文档。
-
-- #### 数据字典( [查看Demo](http://doc.star7th.com/1))
-
-	一份好的数据字典可以很方便地向别人说明你的数据库结构,如各个字段的释义等。
-
-- #### 说明文档([查看Demo](http://doc.star7th.com/3) )
-
-	你完全可以使用showdoc来编写一些工具的说明书,也可以编写一些技术规范说明文档以供团队查阅。
-
-### 它都有些什么功能
-
-	
-- #### 分享与导出
-
-	- 响应式网页设计,可将项目文档分享到电脑或移动设备查看。同时也可以将项目导出成word文件,以便离线浏览。
+Whenever we take over a module or project which has been developed by other people, we always feel crazy watching at those codes without notes. Where is the document?! Where is the document?! **Show me the doc !!**
 
-- #### 权限管理
-	- 公开项目与私密项目
-		
-		ShowDoc上的项目有公开项目和私密项目两种。公开项目可供任何登录与非登录的用户访问,而私密项目则需要输入密码验证访问。密码由项目创建者设置。
-	
-	- 项目转让
-		
-		项目创建者可以自由地把项目转让给网站的其他用户。
-		
-	- 项目成员
-		
-		你可以很方便地为ShowDoc的项目添加、删除项目成员。项目成员可以对项目进行编辑,但不可转让或删除项目(只有项目创建者才有权限)
-- #### 编辑功能
-	- markdown编辑
-		
-		ShowDoc采用markdown编辑器,无论是编辑还是阅读体验都极佳很棒。如果你不了解Markdown,请在搜索引擎搜索"认识与入门 Markdown"
-	
-	- 模板插入
-	
-		在ShowDoc的编辑页面,点击编辑器上方的按钮可方便地插入API接口模板和数据字典模板。插入模板后,剩下的就是改动数据了,省去了很多编辑的力气。 
-	
-	- 历史版本
-	
-		ShowDoc为页面提供历史版本功能,你可以方便地把页面恢复到之前的版本。
+A programmer often hopes the others to write technical documents, with the hope of not writing them on his/her own. Because writing a technical document needs a lot of time to handle the format and layout, and the person who writes it has to think of all kinds of non-technical details such as which catalog to put in the newly-established word document
 
+All kinds of the word documents are kept by different persons in a team dispersedly. The person who needs other documents gets the documents by shouting out. He/She gives a shout asking for the documents and then receives them from other people by IMs or the e-mail. This kind of communication is not bad, but the efficiency is not high.
 
-### 部署到自己的服务器
+ShowDoc is a tool greatly applicable for an IT team to share documents online. It can promote communication efficiency among members of the team.
 
+### What can it be used for?
 
-- ShowDoc部署手册
-	
-	请参考:[http://blog.star7th.com/2016/05/2007.html](http://blog.star7th.com/2016/05/2007.html)
-
-### 使用在线的ShowDoc
-
-- 如果你没有自己的服务器,但又想使用ShowDoc作为分档分享工具,你可以使用在线的ShowDoc   [http://doc.star7th.com](http://doc.star7th.com/index.php/home/user/login)
+- #### API Document ( [Demo](http://doc.star7th.com/3276))
+ 
+ With the development of mobile Internet, BaaS (Backend as a Service) becomes more and more popular. The Server end provides API, and the APP end or Webpage frontend can invoke data conveniently. Using ShowDoc can compile exquisite API documents in a very fast and convenient way.
 
-- http://doc.star7th.com 作为在线服务会长期维护,请放心托管你的文档数据,不用担心突然关站的问题。如对数据非常敏感的个人或企业,还是把ShowDoc部署到自己的服务器比较好。
+- #### Data Dictionary ( [Demo](http://doc.star7th.com/3276))
+ 
+ A good Data Dictionary can easily exhibit database structure to other people, such as definition of each field and the like.
 
-### 版权
+- #### Explanation Document ( [Demo](http://doc.star7th.com/3097))
+ 
+ You can absolutely use ShowDoc to compile the explanation documents for some tools, as well as to compile some technical specifications explanation documents for the team to look up.
+ 
+### What functions does it have?
 
-- ShowDoc遵循Apache2开源协议发布,并提供免费使用。  
-版权所有Copyright © 2016 by star7th  
-博客:[http://blog.star7th.com](http://blog.star7th.com)  
-邮箱:xing7th#gmail.com(把#改为@)   
-All rights reserved.
+- #### Sharing and Exporting
 
-### ShowDoc交流群
+ Responsive webpage design can share the project documents to computer or mobile devices for reading. It can also export the project into word document for browsing offline.
+ 
+- #### Permission Management
 
-- ShowDoc使用交流qq群
-	ShowDoc的使用者交流qq群:564671853
+ - Public Project and Private Project
+ 
+   Projects on ShowDoc are divided into two categories including Public Project and Private Project. Public Project can be visited by any user no matter he/she logs in or not, while inputting password for verification is needed for visiting the Private Project. The password is set by project creator. 
+   
+  - Project Transfer
+  
+   The project creator can transfer the project to other users of the website freely.
+   
+  - Project Members
+  
+   You can easily add or delete project members in the project of ShowDoc. Members of the project can edit the project, but they can not transfer or delete the project (only creator of the project has the permission).
+   
+ - #### Edit Function
+  - Markdown Edit
+  
+   ShowDoc adopts Markdown Editor, and it is excellent both in editing and reading experience. If you know nothing about Markdown, please search “Learning and Introduction of Markdown” on the search engine.
+   
+  - Template Insert
+  
+   On the editing page of ShowDoc, a click on the button which is on the top of the Editor can easily insert API interface template and data dictionary template. After inserting the template, altering data is the only thing that need to do and it reduces a lot of work in editing.
+   
+  - History Version
+  
+   ShowDoc provides a function of History Version on the page, and you can easily restore the page to the former version.
+   
+
+### Deploy It to Your Own Server
+ - ShowDoc Deploy Manual
+  
+     Please refer to:[http://doc.star7th.com/3097&page_id=16975](http://doc.star7th.com/3097&page_id=16975)
+  
+
+### Copyright 
+
+ ShowDoc is issued complying with Apache2 Open Source License, and it is for free use. 
+ 
+ Copyright © 2016 by star7th 
+ 
+ 
+ E-mail: xing7th#gmail.com (change # into @) 
+ 
+ All rights reserved. 
+