Changeset - c9e3ea5bb59a
CONTRIBUTORS
Show inline comments
 
@@ -3,10 +3,10 @@ List of contributors to RhodeCode projec
 
    Lukasz Balcerzak <lukaszbalcerzak@gmail.com>
 
    Jason Harris <jason@jasonfharris.com>
 
    Thayne Harbaugh  <thayne@fusionio.com>
 
    cejones
 
    cejones <>
 
    Thomas Waldmann <tw-public@gmx.de>
 
    Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
 
    Dmitri Kuznetsov
 
    Dmitri Kuznetsov <>
 
    Jared Bunting <jared.bunting@peachjean.com>
 
    Steve Romanow <slestak989@gmail.com>
 
    Augosto Hermann <augusto.herrmann@planejamento.gov.br>    
 
@@ -17,4 +17,5 @@ List of contributors to RhodeCode projec
 
    Matt Zuba <matt.zuba@goodwillaz.org>
 
    Aras Pranckevicius <aras@unity3d.com>
 
    Tony Bussieres <t.bussieres@gmail.com>
 
    Erwin Kroon <e.kroon@smartmetersolutions.nl>
 
\ No newline at end of file
 
    Erwin Kroon <e.kroon@smartmetersolutions.nl>
 
    nansenat16 <nansenat16@null.tw>
 
\ No newline at end of file
README.rst
Show inline comments
 
@@ -15,7 +15,7 @@ RhodeCode is similar in some respects to
 
however RhodeCode can be run as standalone hosted application on your own server.
 
It is open source and donation ware and focuses more on providing a customized, 
 
self administered interface for Mercurial_ and GIT_  repositories. 
 
RhodeCode works on *nix systems and Windows it is powered by a vcs_ library 
 
RhodeCode works on \*nix systems and Windows it is powered by a vcs_ library 
 
that Lukasz Balcerzak and Marcin Kuzminski created to handle multiple 
 
different version control systems.
 

	
docs/changelog.rst
Show inline comments
 
modified file chmod 100644 => 100755
 
@@ -4,7 +4,7 @@
 
Changelog
 
=========
 

	
 
1.3.5 (**2012-XX-XX**)
 
1.4.0 (**2012-XX-XX**)
 
----------------------
 

	
 
:status: in-progress
 
@@ -13,6 +13,31 @@ Changelog
 
news
 
++++
 

	
 
fixes
 
+++++
 

	
 
1.3.6 (**2012-05-16**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- chinese traditional translation
 

	
 
fixes
 
+++++
 

	
 
- fixed no scm found warning
 
- fixed __future__ import error on rcextensions
 
- made simplejson required lib for speedup on JSON encoding
 
- fixes #449 bad regex could get more than revisions from parsing history
 

	
 
1.3.5 (**2012-05-10**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- use ext_json for json module
 
- unified annotation view with file source view
 
- notification improvements, better inbox + css
 
@@ -26,6 +51,7 @@ news
 
- limited push/pull operations are now logged for git in the journal
 
- bumped mercurial to 2.2.X series
 
- added support for displaying submodules in file-browser
 
- #421 added bookmarks in changelog view
 

	
 
fixes
 
+++++
 
@@ -37,6 +63,8 @@ fixes
 
- fixed remote-pulling for git remotes remopositories
 
- fixed #434: Error when accessing files or changesets of a git repository 
 
  with submodules
 
- fixed issue with empty APIKEYS for users after registration ref. #438
 
- fixed issue with getting README files from git repositories
 

	
 
1.3.4 (**2012-03-28**)
 
----------------------
rhodecode/__init__.py
Show inline comments
 
@@ -46,6 +46,9 @@ __py_version__ = sys.version_info
 
PLATFORM_WIN = ('Windows')
 
PLATFORM_OTHERS = ('Linux', 'Darwin', 'FreeBSD', 'OpenBSD', 'SunOS')
 

	
 
is_windows = __platform__ in PLATFORM_WIN
 
is_unix = __platform__ in PLATFORM_OTHERS
 

	
 
requirements = [
 
    "Pylons==1.0.0",
 
    "Beaker==1.6.3",
 
@@ -62,13 +65,13 @@ requirements = [
 
    "webob==1.0.8",
 
    "markdown==2.1.1",
 
    "docutils==0.8.1",
 
    "simplejson==2.5.2",
 
]
 

	
 
if __py_version__ < (2, 6):
 
    requirements.append("simplejson")
 
    requirements.append("pysqlite")
 

	
 
if __platform__ in PLATFORM_WIN:
 
if is_windows:
 
    requirements.append("mercurial>=2.2.1,<2.3")
 
else:
 
    requirements.append("py-bcrypt")
rhodecode/config/rcextensions/make_rcextensions.py
Show inline comments
 
@@ -22,6 +22,8 @@
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
from __future__ import with_statement
 

	
 
import os
 
import sys
 
import pkg_resources
rhodecode/controllers/files.py
Show inline comments
 
@@ -26,6 +26,7 @@
 
import os
 
import logging
 
import traceback
 
import tempfile
 

	
 
from pylons import request, response, tmpl_context as c, url
 
from pylons.i18n.translation import _
 
@@ -48,6 +49,7 @@ from rhodecode.lib.vcs.nodes import File
 

	
 
from rhodecode.model.repo import RepoModel
 
from rhodecode.model.scm import ScmModel
 
from rhodecode.model.db import Repository
 

	
 
from rhodecode.controllers.changeset import anchor_url, _ignorews_url,\
 
    _context_url, get_line_ctx, get_ignore_ws
 
@@ -168,7 +170,7 @@ class FilesController(BaseRepoController
 
        file_node = self.__get_filenode_or_redirect(repo_name, cs, f_path)
 

	
 
        response.content_disposition = 'attachment; filename=%s' % \
 
            safe_str(f_path.split(os.sep)[-1])
 
            safe_str(f_path.split(Repository.url_sep())[-1])
 

	
 
        response.content_type = file_node.mimetype
 
        return file_node.content
 
@@ -358,25 +360,23 @@ class FilesController(BaseRepoController
 
        except (ImproperArchiveTypeError, KeyError):
 
            return _('Unknown archive type')
 

	
 
        archive = tempfile.NamedTemporaryFile(mode='w+r+b', delete=False)
 
        cs.fill_archive(stream=archive, kind=fileformat, subrepos=subrepos)
 
        archive.close()
 
        response.content_type = content_type
 
        response.content_disposition = 'attachment; filename=%s-%s%s' \
 
            % (repo_name, revision, ext)
 

	
 
        import tempfile
 
        archive = tempfile.mkstemp()[1]
 
        t = open(archive, 'wb')
 
        cs.fill_archive(stream=t, kind=fileformat, subrepos=subrepos)
 
            % (repo_name, revision[:12], ext)
 
        response.content_length = str(os.path.getsize(archive.name))
 

	
 
        def get_chunked_archive(archive):
 
            stream = open(archive, 'rb')
 
        def get_chunked_archive(tmpfile):
 
            while True:
 
                data = stream.read(4096)
 
                data = tmpfile.read(16 * 1024)
 
                if not data:
 
                    os.remove(archive)
 
                    tmpfile.close()
 
                    os.unlink(tmpfile.name)
 
                    break
 
                yield data
 

	
 
        return get_chunked_archive(archive)
 
        return get_chunked_archive(tmpfile=open(archive.name,'rb'))
 

	
 
    @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
 
                                   'repository.admin')
rhodecode/controllers/summary.py
Show inline comments
 
@@ -179,10 +179,12 @@ class SummaryController(BaseRepoControll
 
        if c.enable_downloads:
 
            c.download_options = self._get_download_links(c.rhodecode_repo)
 

	
 
        c.readme_data, c.readme_file = self.__get_readme_data(c.rhodecode_db_repo)
 
        c.readme_data, c.readme_file = self.__get_readme_data(
 
            c.rhodecode_db_repo.repo_name, c.rhodecode_repo
 
        )
 
        return render('summary/summary.html')
 

	
 
    def __get_readme_data(self, repo):
 
    def __get_readme_data(self, repo_name, repo):
 

	
 
        @cache_region('long_term')
 
        def _get_readme_from_cache(key):
 
@@ -190,7 +192,7 @@ class SummaryController(BaseRepoControll
 
            readme_file = None
 
            log.debug('Fetching readme file')
 
            try:
 
                cs = repo.get_changeset('tip')
 
                cs = repo.get_changeset()  # fetches TIP
 
                renderer = MarkupRenderer()
 
                for f in README_FILES:
 
                    try:
 
@@ -202,6 +204,7 @@ class SummaryController(BaseRepoControll
 
                    except NodeDoesNotExistError:
 
                        continue
 
            except ChangesetError:
 
                log.error(traceback.format_exc())
 
                pass
 
            except EmptyRepositoryError:
 
                pass
 
@@ -210,7 +213,7 @@ class SummaryController(BaseRepoControll
 

	
 
            return readme_data, readme_file
 

	
 
        key = repo.repo_name + '_README'
 
        key = repo_name + '_README'
 
        inv = CacheInvalidation.invalidate(key)
 
        if inv is not None:
 
            region_invalidate(_get_readme_from_cache, None, key)
rhodecode/i18n/zh_TW/LC_MESSAGES/rhodecode.mo
Show inline comments
 
new file 100644
 
binary diff not shown
rhodecode/i18n/zh_TW/LC_MESSAGES/rhodecode.po
Show inline comments
 
new file 100644
 
# Translations template for RhodeCode.
 
# Copyright (C) 2011 ORGANIZATION
 
# This file is distributed under the same license as the RhodeCode project.
 
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
 
#
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.2.0\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2011-09-14 15:50-0300\n"
 
"PO-Revision-Date: 2012-05-09 22:23+0800\n"
 
"Last-Translator: Nansen <nansenat16@gmail.com>\n"
 
"Language-Team: LANGUAGE <LL@li.org>\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 
"X-Poedit-Language: Chinese\n"
 
"X-Poedit-Country: TAIWAN\n"
 
"X-Poedit-SourceCharset: utf-8\n"
 

	
 
#: rhodecode/controllers/changeset.py:108
 
#: rhodecode/controllers/changeset.py:149
 
#: rhodecode/controllers/changeset.py:216
 
#: rhodecode/controllers/changeset.py:229
 
msgid "binary file"
 
msgstr "二進位檔"
 

	
 
#: rhodecode/controllers/changeset.py:123
 
#: rhodecode/controllers/changeset.py:168
 
msgid "Changeset is to big and was cut off, see raw changeset instead"
 
msgstr ""
 

	
 
#: rhodecode/controllers/changeset.py:159
 
msgid "Diff is to big and was cut off, see raw diff instead"
 
msgstr ""
 

	
 
#: rhodecode/controllers/error.py:69
 
msgid "Home page"
 
msgstr "首頁"
 

	
 
#: rhodecode/controllers/error.py:98
 
msgid "The request could not be understood by the server due to malformed syntax."
 
msgstr ""
 

	
 
#: rhodecode/controllers/error.py:101
 
msgid "Unauthorized access to resource"
 
msgstr ""
 

	
 
#: rhodecode/controllers/error.py:103
 
msgid "You don't have permission to view this page"
 
msgstr "您沒有權限瀏覽這個頁面"
 

	
 
#: rhodecode/controllers/error.py:105
 
msgid "The resource could not be found"
 
msgstr "找不到這個資源"
 

	
 
#: rhodecode/controllers/error.py:107
 
msgid "The server encountered an unexpected condition which prevented it from fulfilling the request."
 
msgstr ""
 

	
 
#: rhodecode/controllers/feed.py:48
 
#, python-format
 
msgid "Changes on %s repository"
 
msgstr "修改於版本庫 %s"
 

	
 
#: rhodecode/controllers/feed.py:49
 
#, python-format
 
msgid "%s %s feed"
 
msgstr ""
 

	
 
#: rhodecode/controllers/files.py:72
 
msgid "There are no files yet"
 
msgstr "尚未有任何檔案"
 

	
 
#: rhodecode/controllers/files.py:262
 
#, python-format
 
msgid "Edited %s via RhodeCode"
 
msgstr "使用 RhodeCode 編輯 %s"
 

	
 
#: rhodecode/controllers/files.py:267
 
#: rhodecode/templates/files/file_diff.html:40
 
msgid "No changes"
 
msgstr "沒有修改"
 

	
 
#: rhodecode/controllers/files.py:278
 
#, python-format
 
msgid "Successfully committed to %s"
 
msgstr "成功遞交至 %s"
 

	
 
#: rhodecode/controllers/files.py:283
 
msgid "Error occurred during commit"
 
msgstr ""
 

	
 
#: rhodecode/controllers/files.py:308
 
msgid "downloads disabled"
 
msgstr "下載已關閉"
 

	
 
#: rhodecode/controllers/files.py:313
 
#, python-format
 
msgid "Unknown revision %s"
 
msgstr "未知修訂 %s"
 

	
 
#: rhodecode/controllers/files.py:315
 
msgid "Empty repository"
 
msgstr "空的版本庫"
 

	
 
#: rhodecode/controllers/files.py:317
 
msgid "Unknown archive type"
 
msgstr "未知的存檔類型"
 

	
 
#: rhodecode/controllers/files.py:385
 
#: rhodecode/controllers/files.py:398
 
msgid "Binary file"
 
msgstr "二進位檔"
 

	
 
#: rhodecode/controllers/files.py:417
 
#: rhodecode/templates/changeset/changeset_range.html:4
 
#: rhodecode/templates/changeset/changeset_range.html:12
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
msgid "Changesets"
 
msgstr "變更"
 

	
 
#: rhodecode/controllers/files.py:418
 
#: rhodecode/controllers/summary.py:175
 
#: rhodecode/templates/branches/branches.html:5
 
#: rhodecode/templates/summary/summary.html:690
 
msgid "Branches"
 
msgstr "分支"
 

	
 
#: rhodecode/controllers/files.py:419
 
#: rhodecode/controllers/summary.py:176
 
#: rhodecode/templates/summary/summary.html:679
 
#: rhodecode/templates/tags/tags.html:5
 
msgid "Tags"
 
msgstr "標籤"
 

	
 
#: rhodecode/controllers/journal.py:50
 
#, python-format
 
msgid "%s public journal %s feed"
 
msgstr "%s 公開日誌 %s feed"
 

	
 
#: rhodecode/controllers/journal.py:178
 
#: rhodecode/controllers/journal.py:212
 
#: rhodecode/templates/admin/repos/repo_edit.html:171
 
#: rhodecode/templates/base/base.html:50
 
msgid "Public journal"
 
msgstr "公開日誌"
 

	
 
#: rhodecode/controllers/login.py:111
 
msgid "You have successfully registered into rhodecode"
 
msgstr "您已經成功註冊rhodecode"
 

	
 
#: rhodecode/controllers/login.py:133
 
msgid "Your password reset link was sent"
 
msgstr "您的密碼重設連結已寄出"
 

	
 
#: rhodecode/controllers/login.py:155
 
msgid "Your password reset was successful, new password has been sent to your email"
 
msgstr "您的密碼重設動作已完成,新的密碼已寄至您的信箱"
 

	
 
#: rhodecode/controllers/search.py:109
 
msgid "Invalid search query. Try quoting it."
 
msgstr "無效的查詢。請使用跳脫字元"
 

	
 
#: rhodecode/controllers/search.py:114
 
msgid "There is no index to search in. Please run whoosh indexer"
 
msgstr "沒有任何索引可以搜尋。請執行 whoosh 建立索引"
 

	
 
#: rhodecode/controllers/search.py:118
 
msgid "An error occurred during this search operation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:61
 
#: rhodecode/controllers/settings.py:171
 
#, python-format
 
msgid "%s repository is not mapped to db perhaps it was created or renamed from the file system please run the application again in order to rescan repositories"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:109
 
#: rhodecode/controllers/admin/repos.py:239
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr "版本庫 %s 更新完成"
 

	
 
#: rhodecode/controllers/settings.py:126
 
#: rhodecode/controllers/admin/repos.py:257
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:144
 
#: rhodecode/controllers/admin/repos.py:275
 
#, python-format
 
msgid "%s repository is not mapped to db perhaps it was moved or renamed  from the filesystem please run the application again in order to rescan repositories"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:156
 
#: rhodecode/controllers/admin/repos.py:287
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr "刪除版本庫 %s"
 

	
 
#: rhodecode/controllers/settings.py:159
 
#: rhodecode/controllers/admin/repos.py:297
 
#: rhodecode/controllers/admin/repos.py:303
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/settings.py:193
 
#, python-format
 
msgid "forked %s repository as %s"
 
msgstr "forked %s 版本庫為 %s"
 

	
 
#: rhodecode/controllers/settings.py:211
 
#, python-format
 
msgid "An error occurred during repository forking %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/summary.py:123
 
msgid "No data loaded yet"
 
msgstr ""
 

	
 
#: rhodecode/controllers/summary.py:126
 
msgid "Statistics are disabled for this repository"
 
msgstr "這個版本庫的統計功能已停用"
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:49
 
msgid "BASE"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:50
 
msgid "ONELEVEL"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:51
 
msgid "SUBTREE"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:55
 
msgid "NEVER"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:56
 
msgid "ALLOW"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:57
 
msgid "TRY"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:58
 
msgid "DEMAND"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:59
 
msgid "HARD"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:63
 
msgid "No encryption"
 
msgstr "無加密"
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:64
 
msgid "LDAPS connection"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:65
 
msgid "START_TLS on LDAP connection"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:115
 
msgid "Ldap settings updated successfully"
 
msgstr "LDAP設定更新完成"
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:120
 
msgid "Unable to activate ldap. The \"python-ldap\" library is missing."
 
msgstr "無法啟用LDAP。找不到python-ldap函式庫"
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:134
 
msgid "error occurred during update of ldap settings"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/permissions.py:56
 
msgid "None"
 
msgstr "無"
 

	
 
#: rhodecode/controllers/admin/permissions.py:57
 
msgid "Read"
 
msgstr "讀"
 

	
 
#: rhodecode/controllers/admin/permissions.py:58
 
msgid "Write"
 
msgstr "寫"
 

	
 
#: rhodecode/controllers/admin/permissions.py:59
 
#: rhodecode/templates/admin/ldap/ldap.html:9
 
#: rhodecode/templates/admin/permissions/permissions.html:9
 
#: rhodecode/templates/admin/repos/repo_add.html:9
 
#: rhodecode/templates/admin/repos/repo_edit.html:9
 
#: rhodecode/templates/admin/repos/repos.html:10
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:8
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:8
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:10
 
#: rhodecode/templates/admin/settings/hooks.html:9
 
#: rhodecode/templates/admin/settings/settings.html:9
 
#: rhodecode/templates/admin/users/user_add.html:8
 
#: rhodecode/templates/admin/users/user_edit.html:9
 
#: rhodecode/templates/admin/users/user_edit.html:110
 
#: rhodecode/templates/admin/users/users.html:9
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:8
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:9
 
#: rhodecode/templates/admin/users_groups/users_groups.html:9
 
#: rhodecode/templates/base/base.html:279
 
#: rhodecode/templates/base/base.html:366
 
#: rhodecode/templates/base/base.html:368
 
#: rhodecode/templates/base/base.html:370
 
msgid "Admin"
 
msgstr "管理"
 

	
 
#: rhodecode/controllers/admin/permissions.py:62
 
msgid "disabled"
 
msgstr "停用"
 

	
 
#: rhodecode/controllers/admin/permissions.py:64
 
msgid "allowed with manual account activation"
 
msgstr "允許手動啟用帳號"
 

	
 
#: rhodecode/controllers/admin/permissions.py:66
 
msgid "allowed with automatic account activation"
 
msgstr "允許自動啟用帳號"
 

	
 
#: rhodecode/controllers/admin/permissions.py:68
 
msgid "Disabled"
 
msgstr "停用"
 

	
 
#: rhodecode/controllers/admin/permissions.py:69
 
msgid "Enabled"
 
msgstr "啟用"
 

	
 
#: rhodecode/controllers/admin/permissions.py:102
 
msgid "Default permissions updated successfully"
 
msgstr "預設權限更新完成"
 

	
 
#: rhodecode/controllers/admin/permissions.py:119
 
msgid "error occurred during update of permissions"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:96
 
#, python-format
 
msgid "%s repository is not mapped to db perhaps it was created or renamed from the filesystem please run the application again in order to rescan repositories"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:172
 
#, python-format
 
msgid "created repository %s from %s"
 
msgstr "建立版本庫 %s 到 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:176
 
#, python-format
 
msgid "created repository %s"
 
msgstr "建立版本庫 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:205
 
#, python-format
 
msgid "error occurred during creation of repository %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:292
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:320
 
msgid "An error occurred during deletion of repository user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:335
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:352
 
msgid "An error occurred during deletion of repository stats"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "An error occurred during cache invalidation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:387
 
msgid "Updated repository visibility in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:390
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:395
 
#: rhodecode/model/forms.py:53
 
msgid "Token mismatch"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:408
 
msgid "Pulled from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos.py:410
 
msgid "An error occurred during pull from remote location"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:83
 
#, python-format
 
msgid "created repos group %s"
 
msgstr "建立版本庫群組 %s"
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:96
 
#, python-format
 
msgid "error occurred during creation of repos group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:130
 
#, python-format
 
msgid "updated repos group %s"
 
msgstr "更新版本庫群組 %s"
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:143
 
#, python-format
 
msgid "error occurred during update of repos group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:164
 
#, python-format
 
msgid "This group contains %s repositores and cannot be deleted"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:171
 
#, python-format
 
msgid "removed repos group %s"
 
msgstr "移除版本庫群組 %s"
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:175
 
#, python-format
 
msgid "error occurred during deletion of repos group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:109
 
#, python-format
 
msgid "Repositories successfully rescanned added: %s,removed: %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:118
 
msgid "Whoosh reindex task scheduled"
 
msgstr "Whoosh 重新索引工作排程"
 

	
 
#: rhodecode/controllers/admin/settings.py:143
 
msgid "Updated application settings"
 
msgstr "更新應用設定"
 

	
 
#: rhodecode/controllers/admin/settings.py:148
 
#: rhodecode/controllers/admin/settings.py:215
 
msgid "error occurred during updating application settings"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:210
 
msgid "Updated mercurial settings"
 
msgstr "更新 mercurial 設定"
 

	
 
#: rhodecode/controllers/admin/settings.py:236
 
msgid "Added new hook"
 
msgstr "新增hook"
 

	
 
#: rhodecode/controllers/admin/settings.py:247
 
msgid "Updated hooks"
 
msgstr "更新hook"
 

	
 
#: rhodecode/controllers/admin/settings.py:251
 
msgid "error occurred during hook creation"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:310
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/settings.py:339
 
msgid "Your account was updated successfully"
 
msgstr "您的帳號已更新完成"
 

	
 
#: rhodecode/controllers/admin/settings.py:359
 
#: rhodecode/controllers/admin/users.py:130
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:78
 
#, python-format
 
msgid "created user %s"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/controllers/admin/users.py:90
 
#, python-format
 
msgid "error occurred during creation of user %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:116
 
msgid "User updated successfully"
 
msgstr "使用者更新完成"
 

	
 
#: rhodecode/controllers/admin/users.py:146
 
msgid "successfully deleted user"
 
msgstr "成功刪除使用者"
 

	
 
#: rhodecode/controllers/admin/users.py:150
 
msgid "An error occurred during deletion of user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:166
 
msgid "You can't edit this user"
 
msgstr "您無法編輯這位使用者"
 

	
 
#: rhodecode/controllers/admin/users.py:195
 
#: rhodecode/controllers/admin/users_groups.py:202
 
msgid "Granted 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users.py:204
 
#: rhodecode/controllers/admin/users_groups.py:211
 
msgid "Revoked 'repository create' permission to user"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:74
 
#, python-format
 
msgid "created users group %s"
 
msgstr "建立使用者群組 %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:86
 
#, python-format
 
msgid "error occurred during creation of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:119
 
#, python-format
 
msgid "updated users group %s"
 
msgstr "更新使用者群組 %s"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:138
 
#, python-format
 
msgid "error occurred during update of users group %s"
 
msgstr ""
 

	
 
#: rhodecode/controllers/admin/users_groups.py:154
 
msgid "successfully deleted users group"
 
msgstr "成功移除使用者群組"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:158
 
msgid "An error occurred during deletion of users group"
 
msgstr ""
 

	
 
#: rhodecode/lib/__init__.py:279
 
msgid "year"
 
msgstr "年"
 

	
 
#: rhodecode/lib/__init__.py:280
 
msgid "month"
 
msgstr "月"
 

	
 
#: rhodecode/lib/__init__.py:281
 
msgid "day"
 
msgstr "日"
 

	
 
#: rhodecode/lib/__init__.py:282
 
msgid "hour"
 
msgstr "時"
 

	
 
#: rhodecode/lib/__init__.py:283
 
msgid "minute"
 
msgstr "分"
 

	
 
#: rhodecode/lib/__init__.py:284
 
msgid "second"
 
msgstr "秒"
 

	
 
#: rhodecode/lib/__init__.py:293
 
msgid "ago"
 
msgstr "之前"
 

	
 
#: rhodecode/lib/__init__.py:296
 
msgid "just now"
 
msgstr "現在"
 

	
 
#: rhodecode/lib/auth.py:377
 
msgid "You need to be a registered user to perform this action"
 
msgstr "您必須是註冊使用者才能執行這個動作"
 

	
 
#: rhodecode/lib/auth.py:421
 
msgid "You need to be a signed in to view this page"
 
msgstr "您必須登入後才能瀏覽這個頁面"
 

	
 
#: rhodecode/lib/helpers.py:307
 
msgid "True"
 
msgstr "真"
 

	
 
#: rhodecode/lib/helpers.py:311
 
msgid "False"
 
msgstr "假"
 

	
 
#: rhodecode/lib/helpers.py:352
 
#, python-format
 
msgid "Show all combined changesets %s->%s"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:356
 
msgid "compare view"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:365
 
msgid "and"
 
msgstr "和"
 

	
 
#: rhodecode/lib/helpers.py:365
 
#, python-format
 
msgid "%s more"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:367
 
#: rhodecode/templates/changelog/changelog.html:14
 
#: rhodecode/templates/changelog/changelog.html:39
 
msgid "revisions"
 
msgstr "修訂"
 

	
 
#: rhodecode/lib/helpers.py:385
 
msgid "fork name "
 
msgstr "fork 名稱"
 

	
 
#: rhodecode/lib/helpers.py:388
 
msgid "[deleted] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:389
 
#: rhodecode/lib/helpers.py:393
 
msgid "[created] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:390
 
#: rhodecode/lib/helpers.py:394
 
msgid "[forked] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:391
 
#: rhodecode/lib/helpers.py:395
 
msgid "[updated] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:392
 
msgid "[delete] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:396
 
msgid "[pushed] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:397
 
msgid "[committed via RhodeCode] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:398
 
msgid "[pulled from remote] into"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:399
 
msgid "[pulled] from"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:400
 
msgid "[started following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:401
 
msgid "[stopped following] repository"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:577
 
#, python-format
 
msgid " and %s more"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:581
 
msgid "No Files"
 
msgstr "沒有檔案"
 

	
 
#: rhodecode/model/forms.py:66
 
msgid "Invalid username"
 
msgstr "無效的使用者名稱"
 

	
 
#: rhodecode/model/forms.py:75
 
msgid "This username already exists"
 
msgstr "使用者名稱已存在"
 

	
 
#: rhodecode/model/forms.py:79
 
msgid "Username may only contain alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character"
 
msgstr "使用者名稱只能使用字母數字、底線、小數點或破折號,且必須使用數字或字母開頭"
 

	
 
#: rhodecode/model/forms.py:94
 
msgid "Invalid group name"
 
msgstr "無效的群組名稱"
 

	
 
#: rhodecode/model/forms.py:104
 
msgid "This users group already exists"
 
msgstr "這個使用者群組已存在"
 

	
 
#: rhodecode/model/forms.py:110
 
msgid "Group name may only contain alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character"
 
msgstr "群組名稱只能使用字母數字、底線、小數點或破折號,且必須使用數字或字母開頭"
 

	
 
#: rhodecode/model/forms.py:132
 
msgid "Cannot assign this group as parent"
 
msgstr ""
 

	
 
#: rhodecode/model/forms.py:148
 
msgid "This group already exists"
 
msgstr "這個群組已存在"
 

	
 
#: rhodecode/model/forms.py:164
 
#: rhodecode/model/forms.py:172
 
#: rhodecode/model/forms.py:180
 
msgid "Invalid characters in password"
 
msgstr "無效的字元在密碼中"
 

	
 
#: rhodecode/model/forms.py:191
 
msgid "Passwords do not match"
 
msgstr "密碼不相符"
 

	
 
#: rhodecode/model/forms.py:196
 
msgid "invalid password"
 
msgstr "無效的密碼"
 

	
 
#: rhodecode/model/forms.py:197
 
msgid "invalid user name"
 
msgstr "無效的使用者名稱"
 

	
 
#: rhodecode/model/forms.py:198
 
msgid "Your account is disabled"
 
msgstr "您的帳號已被停用"
 

	
 
#: rhodecode/model/forms.py:233
 
msgid "This username is not valid"
 
msgstr "無效的使用者名稱"
 

	
 
#: rhodecode/model/forms.py:245
 
msgid "This repository name is disallowed"
 
msgstr "不允許的版本庫名稱"
 

	
 
#: rhodecode/model/forms.py:266
 
#, python-format
 
msgid "This repository already exists in group \"%s\""
 
msgstr "這個版本庫已存在於群組 \"%s\""
 

	
 
#: rhodecode/model/forms.py:274
 
msgid "This repository already exists"
 
msgstr "這個版本庫已經存在"
 

	
 
#: rhodecode/model/forms.py:312
 
#: rhodecode/model/forms.py:319
 
msgid "invalid clone url"
 
msgstr "無效的複製URL"
 

	
 
#: rhodecode/model/forms.py:322
 
msgid "Invalid clone url, provide a valid clone http\\s url"
 
msgstr ""
 

	
 
#: rhodecode/model/forms.py:334
 
msgid "Fork have to be the same type as original"
 
msgstr "Fork 必須使用相同的版本庫類型"
 

	
 
#: rhodecode/model/forms.py:341
 
msgid "This username or users group name is not valid"
 
msgstr "使用者名稱或群組名稱無效"
 

	
 
#: rhodecode/model/forms.py:403
 
msgid "This is not a valid path"
 
msgstr "不是一個有效的路徑"
 

	
 
#: rhodecode/model/forms.py:416
 
msgid "This e-mail address is already taken"
 
msgstr "這個郵件位址已經使用了"
 

	
 
#: rhodecode/model/forms.py:427
 
msgid "This e-mail address doesn't exist."
 
msgstr "這個郵件位址不存在"
 

	
 
#: rhodecode/model/forms.py:447
 
msgid "The LDAP Login attribute of the CN must be specified - this is the name of the attribute that is equivalent to 'username'"
 
msgstr ""
 

	
 
#: rhodecode/model/forms.py:466
 
msgid "Please enter a login"
 
msgstr "請登入"
 

	
 
#: rhodecode/model/forms.py:467
 
#, python-format
 
msgid "Enter a value %(min)i characters long or more"
 
msgstr ""
 

	
 
#: rhodecode/model/forms.py:475
 
msgid "Please enter a password"
 
msgstr "請輸入密碼"
 

	
 
#: rhodecode/model/forms.py:476
 
#, python-format
 
msgid "Enter %(min)i characters or more"
 
msgstr ""
 

	
 
#: rhodecode/model/user.py:145
 
msgid "[RhodeCode] New User registration"
 
msgstr "[RhodeCode] 新使用者註冊"
 

	
 
#: rhodecode/model/user.py:157
 
#: rhodecode/model/user.py:179
 
msgid "You can't Edit this user since it's crucial for entire application"
 
msgstr "您無法編輯這個使用者,因為他是系統帳號"
 

	
 
#: rhodecode/model/user.py:201
 
msgid "You can't remove this user since it's crucial for entire application"
 
msgstr "您無法移除這個使用者,因為他是系統帳號"
 

	
 
#: rhodecode/model/user.py:204
 
#, python-format
 
msgid "This user still owns %s repositories and cannot be removed. Switch owners or remove those repositories"
 
msgstr "這個使用者擁有 %s 個版本庫所以無法移除,請先變更版本庫擁有者或者刪除版本庫"
 

	
 
#: rhodecode/templates/index.html:4
 
msgid "Dashboard"
 
msgstr "儀表板"
 

	
 
#: rhodecode/templates/index_base.html:22
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:102
 
msgid "quick filter..."
 
msgstr "快速過濾..."
 

	
 
#: rhodecode/templates/index_base.html:23
 
#: rhodecode/templates/base/base.html:300
 
msgid "repositories"
 
msgstr "個版本庫"
 

	
 
#: rhodecode/templates/index_base.html:29
 
#: rhodecode/templates/admin/repos/repos.html:22
 
msgid "ADD NEW REPOSITORY"
 
msgstr "新增版本庫"
 

	
 
#: rhodecode/templates/index_base.html:41
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:32
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:32
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:33
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:32
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:33
 
msgid "Group name"
 
msgstr "群組名稱"
 

	
 
#: rhodecode/templates/index_base.html:42
 
#: rhodecode/templates/index_base.html:73
 
#: rhodecode/templates/admin/repos/repo_add_base.html:44
 
#: rhodecode/templates/admin/repos/repo_edit.html:64
 
#: rhodecode/templates/admin/repos/repos.html:31
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:41
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:41
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:34
 
#: rhodecode/templates/settings/repo_fork.html:40
 
#: rhodecode/templates/settings/repo_settings.html:40
 
#: rhodecode/templates/summary/summary.html:92
 
msgid "Description"
 
msgstr "描述"
 

	
 
#: rhodecode/templates/index_base.html:53
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:46
 
msgid "Repositories group"
 
msgstr "版本庫群組"
 

	
 
#: rhodecode/templates/index_base.html:72
 
#: rhodecode/templates/admin/repos/repo_add_base.html:9
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:30
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:117
 
#: rhodecode/templates/files/files_browser.html:157
 
#: rhodecode/templates/settings/repo_settings.html:31
 
#: rhodecode/templates/summary/summary.html:31
 
#: rhodecode/templates/summary/summary.html:107
 
msgid "Name"
 
msgstr "名稱"
 

	
 
#: rhodecode/templates/index_base.html:74
 
#: rhodecode/templates/admin/repos/repos.html:32
 
#: rhodecode/templates/summary/summary.html:114
 
msgid "Last change"
 
msgstr "最後修改"
 

	
 
#: rhodecode/templates/index_base.html:75
 
#: rhodecode/templates/admin/repos/repos.html:33
 
msgid "Tip"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:76
 
#: rhodecode/templates/admin/repos/repo_edit.html:97
 
msgid "Owner"
 
msgstr "擁有者"
 

	
 
#: rhodecode/templates/index_base.html:77
 
#: rhodecode/templates/journal/public_journal.html:20
 
#: rhodecode/templates/summary/summary.html:180
 
#: rhodecode/templates/summary/summary.html:183
 
msgid "RSS"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:78
 
#: rhodecode/templates/journal/public_journal.html:23
 
#: rhodecode/templates/summary/summary.html:181
 
#: rhodecode/templates/summary/summary.html:184
 
msgid "Atom"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:87
 
#: rhodecode/templates/index_base.html:89
 
#: rhodecode/templates/index_base.html:91
 
#: rhodecode/templates/base/base.html:209
 
#: rhodecode/templates/base/base.html:211
 
#: rhodecode/templates/base/base.html:213
 
#: rhodecode/templates/summary/summary.html:4
 
msgid "Summary"
 
msgstr "概況"
 

	
 
#: rhodecode/templates/index_base.html:95
 
#: rhodecode/templates/index_base.html:97
 
#: rhodecode/templates/index_base.html:99
 
#: rhodecode/templates/base/base.html:225
 
#: rhodecode/templates/base/base.html:227
 
#: rhodecode/templates/base/base.html:229
 
#: rhodecode/templates/changelog/changelog.html:6
 
#: rhodecode/templates/changelog/changelog.html:14
 
msgid "Changelog"
 
msgstr "修改紀錄"
 

	
 
#: rhodecode/templates/index_base.html:103
 
#: rhodecode/templates/index_base.html:105
 
#: rhodecode/templates/index_base.html:107
 
#: rhodecode/templates/base/base.html:268
 
#: rhodecode/templates/base/base.html:270
 
#: rhodecode/templates/base/base.html:272
 
#: rhodecode/templates/files/files.html:4
 
msgid "Files"
 
msgstr "檔案"
 

	
 
#: rhodecode/templates/index_base.html:116
 
#: rhodecode/templates/admin/repos/repos.html:42
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:127
 
#: rhodecode/templates/summary/summary.html:48
 
msgid "Mercurial repository"
 
msgstr "Mercurial 版本庫"
 

	
 
#: rhodecode/templates/index_base.html:118
 
#: rhodecode/templates/admin/repos/repos.html:44
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:129
 
#: rhodecode/templates/summary/summary.html:51
 
msgid "Git repository"
 
msgstr "Git 版本庫"
 

	
 
#: rhodecode/templates/index_base.html:123
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:16
 
#: rhodecode/templates/journal/journal.html:53
 
#: rhodecode/templates/summary/summary.html:56
 
msgid "private repository"
 
msgstr "私有版本庫"
 

	
 
#: rhodecode/templates/index_base.html:125
 
#: rhodecode/templates/journal/journal.html:55
 
#: rhodecode/templates/summary/summary.html:58
 
msgid "public repository"
 
msgstr "公開版本庫"
 

	
 
#: rhodecode/templates/index_base.html:133
 
#: rhodecode/templates/base/base.html:291
 
#: rhodecode/templates/settings/repo_fork.html:13
 
msgid "fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:134
 
#: rhodecode/templates/admin/repos/repos.html:60
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:143
 
#: rhodecode/templates/summary/summary.html:69
 
#: rhodecode/templates/summary/summary.html:71
 
msgid "Fork of"
 
msgstr ""
 

	
 
#: rhodecode/templates/index_base.html:155
 
#: rhodecode/templates/admin/repos/repos.html:73
 
msgid "No changesets yet"
 
msgstr "尚未有任何變更"
 

	
 
#: rhodecode/templates/index_base.html:161
 
#: rhodecode/templates/index_base.html:163
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "訂閱 %s rss"
 

	
 
#: rhodecode/templates/index_base.html:168
 
#: rhodecode/templates/index_base.html:170
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "訂閱 %s atom"
 

	
 
#: rhodecode/templates/login.html:5
 
#: rhodecode/templates/login.html:54
 
#: rhodecode/templates/base/base.html:38
 
msgid "Sign In"
 
msgstr "登入"
 

	
 
#: rhodecode/templates/login.html:21
 
msgid "Sign In to"
 
msgstr "登入"
 

	
 
#: rhodecode/templates/login.html:31
 
#: rhodecode/templates/register.html:20
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:47
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:45
 
#: rhodecode/templates/base/base.html:15
 
#: rhodecode/templates/summary/summary.html:106
 
msgid "Username"
 
msgstr "帳號"
 

	
 
#: rhodecode/templates/login.html:40
 
#: rhodecode/templates/register.html:29
 
#: rhodecode/templates/admin/ldap/ldap.html:46
 
#: rhodecode/templates/admin/users/user_add.html:41
 
#: rhodecode/templates/base/base.html:24
 
msgid "Password"
 
msgstr "密碼"
 

	
 
#: rhodecode/templates/login.html:60
 
msgid "Forgot your password ?"
 
msgstr "忘記您的密碼?"
 

	
 
#: rhodecode/templates/login.html:63
 
#: rhodecode/templates/base/base.html:35
 
msgid "Don't have an account ?"
 
msgstr "沒有帳號?"
 

	
 
#: rhodecode/templates/password_reset.html:5
 
msgid "Reset your password"
 
msgstr "重設您的密碼"
 

	
 
#: rhodecode/templates/password_reset.html:11
 
msgid "Reset your password to"
 
msgstr "重設您的密碼"
 

	
 
#: rhodecode/templates/password_reset.html:21
 
msgid "Email address"
 
msgstr "郵件位址"
 

	
 
#: rhodecode/templates/password_reset.html:30
 
msgid "Reset my password"
 
msgstr "重設我的密碼"
 

	
 
#: rhodecode/templates/password_reset.html:31
 
msgid "Password reset link will be send to matching email address"
 
msgstr "密碼重設連結已郵寄至您的信箱"
 

	
 
#: rhodecode/templates/register.html:5
 
#: rhodecode/templates/register.html:74
 
msgid "Sign Up"
 
msgstr "登入"
 

	
 
#: rhodecode/templates/register.html:11
 
msgid "Sign Up to"
 
msgstr "登入"
 

	
 
#: rhodecode/templates/register.html:38
 
msgid "Re-enter password"
 
msgstr "確認密碼"
 

	
 
#: rhodecode/templates/register.html:47
 
#: rhodecode/templates/admin/users/user_add.html:50
 
#: rhodecode/templates/admin/users/user_edit.html:74
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:63
 
msgid "First Name"
 
msgstr "名"
 

	
 
#: rhodecode/templates/register.html:56
 
#: rhodecode/templates/admin/users/user_add.html:59
 
#: rhodecode/templates/admin/users/user_edit.html:83
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:72
 
msgid "Last Name"
 
msgstr "姓"
 

	
 
#: rhodecode/templates/register.html:65
 
#: rhodecode/templates/admin/users/user_add.html:68
 
#: rhodecode/templates/admin/users/user_edit.html:92
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:81
 
#: rhodecode/templates/summary/summary.html:108
 
msgid "Email"
 
msgstr "電子郵件"
 

	
 
#: rhodecode/templates/register.html:76
 
msgid "Your account will be activated right after registration"
 
msgstr "您的帳號註冊後將會啟用"
 

	
 
#: rhodecode/templates/register.html:78
 
msgid "Your account must wait for activation by administrator"
 
msgstr "您的帳號註冊後將等待管理員啟用"
 

	
 
#: rhodecode/templates/repo_switcher_list.html:14
 
msgid "Private repository"
 
msgstr "私有的版本庫"
 

	
 
#: rhodecode/templates/repo_switcher_list.html:19
 
msgid "Public repository"
 
msgstr "公開的版本庫"
 

	
 
#: rhodecode/templates/admin/admin.html:5
 
#: rhodecode/templates/admin/admin.html:9
 
msgid "Admin journal"
 
msgstr "管理員日誌"
 

	
 
#: rhodecode/templates/admin/admin_log.html:6
 
msgid "Action"
 
msgstr "動作"
 

	
 
#: rhodecode/templates/admin/admin_log.html:7
 
msgid "Repository"
 
msgstr "版本庫"
 

	
 
#: rhodecode/templates/admin/admin_log.html:8
 
msgid "Date"
 
msgstr "時間"
 

	
 
#: rhodecode/templates/admin/admin_log.html:9
 
msgid "From IP"
 
msgstr "來源IP"
 

	
 
#: rhodecode/templates/admin/admin_log.html:52
 
msgid "No actions yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:5
 
msgid "LDAP administration"
 
msgstr "LDAP管理者"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:11
 
msgid "Ldap"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:28
 
msgid "Connection settings"
 
msgstr "連接設定"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:30
 
msgid "Enable LDAP"
 
msgstr "啟動LDAP"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:34
 
msgid "Host"
 
msgstr "主機"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:38
 
msgid "Port"
 
msgstr "連接埠"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:42
 
msgid "Account"
 
msgstr "帳號"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:50
 
msgid "Connection security"
 
msgstr "連接安全性"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:54
 
msgid "Certificate Checks"
 
msgstr "憑證確認"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:57
 
msgid "Search settings"
 
msgstr "搜尋選項"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:59
 
msgid "Base DN"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:63
 
msgid "LDAP Filter"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:67
 
msgid "LDAP Search Scope"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:70
 
msgid "Attribute mappings"
 
msgstr "屬性對應"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:72
 
msgid "Login Attribute"
 
msgstr "登入屬性"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:76
 
msgid "First Name Attribute"
 
msgstr "名"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:80
 
msgid "Last Name Attribute"
 
msgstr "姓"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:84
 
msgid "E-mail Attribute"
 
msgstr "電子郵件屬性"
 

	
 
#: rhodecode/templates/admin/ldap/ldap.html:89
 
#: rhodecode/templates/admin/settings/hooks.html:73
 
#: rhodecode/templates/admin/users/user_edit.html:117
 
#: rhodecode/templates/admin/users/user_edit.html:142
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:89
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:263
 
msgid "Save"
 
msgstr "儲存"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:5
 
msgid "Permissions administration"
 
msgstr "權限管理員"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:11
 
#: rhodecode/templates/admin/repos/repo_edit.html:109
 
#: rhodecode/templates/admin/users/user_edit.html:127
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:248
 
#: rhodecode/templates/settings/repo_settings.html:58
 
msgid "Permissions"
 
msgstr "權限"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:24
 
msgid "Default permissions"
 
msgstr "預設權限"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:31
 
msgid "Anonymous access"
 
msgstr "訪客權限"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:41
 
msgid "Repository permission"
 
msgstr "版本庫權限"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:49
 
msgid "All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:50
 
msgid "overwrite existing settings"
 
msgstr "複寫已存在設定"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:55
 
msgid "Registration"
 
msgstr "註冊"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:63
 
msgid "Repository creation"
 
msgstr "版本庫建立"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:71
 
msgid "set"
 
msgstr "設定"
 

	
 
#: rhodecode/templates/admin/repos/repo_add.html:5
 
#: rhodecode/templates/admin/repos/repo_add_create_repository.html:5
 
msgid "Add repository"
 
msgstr "新增版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_add.html:11
 
#: rhodecode/templates/admin/repos/repo_edit.html:11
 
#: rhodecode/templates/admin/repos/repos.html:10
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:10
 
msgid "Repositories"
 
msgstr "版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_add.html:13
 
msgid "add new"
 
msgstr "新增"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:20
 
#: rhodecode/templates/summary/summary.html:80
 
#: rhodecode/templates/summary/summary.html:82
 
msgid "Clone from"
 
msgstr "複製由"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:28
 
#: rhodecode/templates/admin/repos/repo_edit.html:48
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:4
 
msgid "Repository group"
 
msgstr "版本庫群組"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:36
 
#: rhodecode/templates/admin/repos/repo_edit.html:56
 
msgid "Type"
 
msgstr "類型"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:52
 
#: rhodecode/templates/admin/repos/repo_edit.html:73
 
#: rhodecode/templates/settings/repo_fork.html:48
 
#: rhodecode/templates/settings/repo_settings.html:49
 
msgid "Private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:59
 
msgid "add"
 
msgstr "新增"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_create_repository.html:9
 
msgid "add new repository"
 
msgstr "新增版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:5
 
msgid "Edit repository"
 
msgstr "編輯版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit.html:13
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:148
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:13
 
#: rhodecode/templates/files/files_annotate.html:49
 
#: rhodecode/templates/files/files_source.html:20
 
msgid "edit"
 
msgstr "編輯"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:40
 
msgid "Clone uri"
 
msgstr "複製URL"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:81
 
msgid "Enable statistics"
 
msgstr "啟用統計"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:89
 
msgid "Enable downloads"
 
msgstr "啟用下載"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:127
 
msgid "Administration"
 
msgstr "管理者"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:130
 
msgid "Statistics"
 
msgstr "統計"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:134
 
msgid "Reset current statistics"
 
msgstr "重設目前的統計"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:134
 
msgid "Confirm to remove current statistics"
 
msgstr "確認移除目前的統計"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:137
 
msgid "Fetched to rev"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:138
 
msgid "Percentage of stats gathered"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:147
 
msgid "Remote"
 
msgstr "遠端"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:151
 
msgid "Pull changes from remote location"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:151
 
msgid "Confirm to pull changes from remote side"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:162
 
msgid "Cache"
 
msgstr "快取"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:166
 
msgid "Invalidate repository cache"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:166
 
msgid "Confirm to invalidate repository cache"
 
msgstr "確認廢止版本庫快取"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:177
 
msgid "Remove from public journal"
 
msgstr "從公開日誌移除"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:179
 
msgid "Add to public journal"
 
msgstr "新增至公開日誌"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:185
 
msgid "Delete"
 
msgstr "移除"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:189
 
msgid "Remove this repository"
 
msgstr "移除版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:189
 
#: rhodecode/templates/admin/repos/repos.html:79
 
msgid "Confirm to delete this repository"
 
msgstr "確認移除這個版本庫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:3
 
msgid "none"
 
msgstr "無"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:4
 
msgid "read"
 
msgstr "讀"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:5
 
msgid "write"
 
msgstr "寫"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:6
 
#: rhodecode/templates/admin/users/users.html:38
 
#: rhodecode/templates/base/base.html:296
 
msgid "admin"
 
msgstr "管理員"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:7
 
msgid "member"
 
msgstr "成員"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:33
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:53
 
msgid "revoke"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:75
 
msgid "Add another member"
 
msgstr "新增另ㄧ位成員"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:89
 
msgid "Failed to remove user"
 
msgstr "移除使用者失敗"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:104
 
msgid "Failed to remove users group"
 
msgstr "移除使用者群組失敗"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:205
 
msgid "Group"
 
msgstr "群組"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:206
 
#: rhodecode/templates/admin/users_groups/users_groups.html:33
 
msgid "members"
 
msgstr "成員"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr "版本庫管理員"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:34
 
#: rhodecode/templates/summary/summary.html:100
 
msgid "Contact"
 
msgstr "聯絡方式"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:35
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:36
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:119
 
#: rhodecode/templates/admin/users/users.html:40
 
#: rhodecode/templates/admin/users_groups/users_groups.html:35
 
msgid "action"
 
msgstr "動作"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:51
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:134
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:148
 
msgid "private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:53
 
#: rhodecode/templates/admin/repos/repos.html:59
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:136
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:142
 
#: rhodecode/templates/summary/summary.html:68
 
msgid "public"
 
msgstr "公開"
 

	
 
#: rhodecode/templates/admin/repos/repos.html:79
 
#: rhodecode/templates/admin/users/users.html:55
 
msgid "delete"
 
msgstr "刪除"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:8
 
msgid "Groups"
 
msgstr "群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:13
 
msgid "with"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:5
 
msgid "Add repos group"
 
msgstr "新增版本庫群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:10
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:10
 
msgid "Repos groups"
 
msgstr "版本庫群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:12
 
msgid "add new repos group"
 
msgstr "新增版本庫群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:50
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:50
 
msgid "Group parent"
 
msgstr "父群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:58
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:58
 
#: rhodecode/templates/admin/users/user_add.html:85
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:49
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:90
 
msgid "save"
 
msgstr "儲存"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:5
 
msgid "Edit repos group"
 
msgstr "編輯版本庫群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:12
 
msgid "edit repos group"
 
msgstr "編輯版本庫群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:5
 
msgid "Repositories groups administration"
 
msgstr "版本庫群組管理員"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:22
 
msgid "ADD NEW GROUP"
 
msgstr "新增群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:35
 
msgid "Number of repositories"
 
msgstr "版本庫數量"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:54
 
msgid "Confirm to delete this group"
 
msgstr "確認刪除這個群組"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:62
 
msgid "There are no repositories groups yet"
 
msgstr "沒有任何版本庫群組"
 

	
 
#: rhodecode/templates/admin/settings/hooks.html:5
 
#: rhodecode/templates/admin/settings/settings.html:5
 
msgid "Settings administration"
 
msgstr "設定管理員"
 

	
 
#: rhodecode/templates/admin/settings/hooks.html:9
 
#: rhodecode/templates/admin/settings/settings.html:9
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#: rhodecode/templates/settings/repo_settings.html:13
 
msgid "Settings"
 
msgstr "設定"
 

	
 
#: rhodecode/templates/admin/settings/hooks.html:24
 
msgid "Built in hooks - read only"
 
msgstr "內建hook - 唯讀"
 

	
 
#: rhodecode/templates/admin/settings/hooks.html:40
 
msgid "Custom hooks"
 
msgstr "自訂hook"
 

	
 
#: rhodecode/templates/admin/settings/hooks.html:56
 
msgid "remove"
 
msgstr "移除"
 

	
 
#: rhodecode/templates/admin/settings/hooks.html:88
 
msgid "Failed to remove hook"
 
msgstr "移除hook失敗"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:24
 
msgid "Remap and rescan repositories"
 
msgstr "重新對映與掃描版本庫"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:32
 
msgid "rescan option"
 
msgstr "重新掃描選項"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:38
 
msgid "In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it."
 
msgstr "如果版本庫已從檔案系統中刪除,但是資料還留在資料庫,請勾選這個項目清理資料庫中舊的資料"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:39
 
msgid "destroy old data"
 
msgstr "移除舊資料"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:45
 
msgid "Rescan repositories"
 
msgstr "重新掃描版本庫"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:51
 
msgid "Whoosh indexing"
 
msgstr "Whoosh 索引"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:59
 
msgid "index build option"
 
msgstr "索引選項"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:64
 
msgid "build from scratch"
 
msgstr "重頭建立索引"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:70
 
msgid "Reindex"
 
msgstr "重新索引"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:76
 
msgid "Global application settings"
 
msgstr "全域設定"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:85
 
msgid "Application name"
 
msgstr "應用名稱"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:94
 
msgid "Realm text"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/settings/settings.html:103
 
msgid "GA code"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/settings/settings.html:111
 
#: rhodecode/templates/admin/settings/settings.html:177
 
msgid "Save settings"
 
msgstr "儲存設定"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:112
 
#: rhodecode/templates/admin/settings/settings.html:178
 
#: rhodecode/templates/admin/users/user_edit.html:118
 
#: rhodecode/templates/admin/users/user_edit.html:143
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:90
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:264
 
#: rhodecode/templates/files/files_edit.html:50
 
msgid "Reset"
 
msgstr "重設"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:118
 
msgid "Mercurial settings"
 
msgstr "Mercurial 設定"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:127
 
msgid "Web"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/settings/settings.html:132
 
msgid "require ssl for pushing"
 
msgstr "推送時要求使用SSL"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:139
 
msgid "Hooks"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/settings/settings.html:142
 
msgid "advanced setup"
 
msgstr "進階設定"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:147
 
msgid "Update repository after push (hg update)"
 
msgstr "push後更新版本庫 (hg update)"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:151
 
msgid "Show repository size after push"
 
msgstr "push 後顯示版本庫大小"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:155
 
msgid "Log user push commands"
 
msgstr "紀錄使用者推送命令"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:159
 
msgid "Log user pull commands"
 
msgstr "紀錄使用者抓取命令"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:166
 
msgid "Repositories location"
 
msgstr "版本庫路徑"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:171
 
msgid "This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock."
 
msgstr "這是一個關鍵的設定,如果您確定要修改這個設定,請重新啟動應用程式以套用設定"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:172
 
msgid "unlock"
 
msgstr "解鎖"
 

	
 
#: rhodecode/templates/admin/users/user_add.html:5
 
msgid "Add user"
 
msgstr "新增使用者"
 

	
 
#: rhodecode/templates/admin/users/user_add.html:10
 
#: rhodecode/templates/admin/users/user_edit.html:11
 
#: rhodecode/templates/admin/users/users.html:9
 
msgid "Users"
 
msgstr "使用者"
 

	
 
#: rhodecode/templates/admin/users/user_add.html:12
 
msgid "add new user"
 
msgstr "新增使用者"
 

	
 
#: rhodecode/templates/admin/users/user_add.html:77
 
#: rhodecode/templates/admin/users/user_edit.html:101
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:41
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:42
 
msgid "Active"
 
msgstr "啟用"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:5
 
msgid "Edit user"
 
msgstr "編輯使用者"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:33
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:32
 
msgid "Change your avatar at"
 
msgstr "修改您的頭像於"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:34
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:33
 
msgid "Using"
 
msgstr "使用中"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:40
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:39
 
msgid "API key"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:56
 
msgid "LDAP DN"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:65
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:54
 
msgid "New password"
 
msgstr "新密碼"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:135
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:256
 
msgid "Create repositories"
 
msgstr "建立版本庫"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:5
 
msgid "My account"
 
msgstr "我的帳號"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:9
 
msgid "My Account"
 
msgstr "我的帳號"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:101
 
msgid "My repositories"
 
msgstr "我的版本庫"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:107
 
msgid "ADD REPOSITORY"
 
msgstr "新增版本庫"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:118
 
#: rhodecode/templates/branches/branches_data.html:7
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
#: rhodecode/templates/tags/tags_data.html:7
 
msgid "revision"
 
msgstr "修訂"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:157
 
msgid "No repositories yet"
 
msgstr "沒有任何版本庫"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:159
 
msgid "create one now"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/users.html:5
 
msgid "Users administration"
 
msgstr "使用者管理員"
 

	
 
#: rhodecode/templates/admin/users/users.html:23
 
msgid "ADD NEW USER"
 
msgstr "新增使用者"
 

	
 
#: rhodecode/templates/admin/users/users.html:33
 
msgid "username"
 
msgstr "使用者名稱"
 

	
 
#: rhodecode/templates/admin/users/users.html:34
 
#: rhodecode/templates/branches/branches_data.html:5
 
#: rhodecode/templates/tags/tags_data.html:5
 
msgid "name"
 
msgstr "名字"
 

	
 
#: rhodecode/templates/admin/users/users.html:35
 
msgid "lastname"
 
msgstr "姓"
 

	
 
#: rhodecode/templates/admin/users/users.html:36
 
msgid "last login"
 
msgstr "最後登入"
 

	
 
#: rhodecode/templates/admin/users/users.html:37
 
#: rhodecode/templates/admin/users_groups/users_groups.html:34
 
msgid "active"
 
msgstr "啟用"
 

	
 
#: rhodecode/templates/admin/users/users.html:39
 
#: rhodecode/templates/base/base.html:305
 
msgid "ldap"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users/users.html:56
 
msgid "Confirm to delete this user"
 
msgstr "確認刪除這個使用者"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:5
 
msgid "Add users group"
 
msgstr "新增使用者群組"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:10
 
#: rhodecode/templates/admin/users_groups/users_groups.html:9
 
msgid "Users groups"
 
msgstr "使用者群組"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:12
 
msgid "add new users group"
 
msgstr "新增使用者群組"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:5
 
msgid "Edit users group"
 
msgstr "編輯使用者群組"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:11
 
msgid "UsersGroups"
 
msgstr "使用者群組"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:50
 
msgid "Members"
 
msgstr "成員"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:58
 
msgid "Choosen group members"
 
msgstr "選擇群組成員"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:61
 
msgid "Remove all elements"
 
msgstr "移除所有元素"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:75
 
msgid "Available members"
 
msgstr "啟用的成員"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:79
 
msgid "Add all elements"
 
msgstr "新增索有元素"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:5
 
msgid "Users groups administration"
 
msgstr "使用者群組管理員"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:23
 
msgid "ADD NEW USER GROUP"
 
msgstr "建立新的使用者群組"
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:32
 
msgid "group name"
 
msgstr "群組名稱"
 

	
 
#: rhodecode/templates/base/base.html:32
 
msgid "Forgot password ?"
 
msgstr "忘記密碼?"
 

	
 
#: rhodecode/templates/base/base.html:57
 
#: rhodecode/templates/base/base.html:338
 
#: rhodecode/templates/base/base.html:340
 
#: rhodecode/templates/base/base.html:342
 
msgid "Home"
 
msgstr "首頁"
 

	
 
#: rhodecode/templates/base/base.html:61
 
#: rhodecode/templates/base/base.html:347
 
#: rhodecode/templates/base/base.html:349
 
#: rhodecode/templates/base/base.html:351
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/journal.html:17
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "日誌"
 

	
 
#: rhodecode/templates/base/base.html:66
 
msgid "Login"
 
msgstr "登入"
 

	
 
#: rhodecode/templates/base/base.html:68
 
msgid "Log Out"
 
msgstr "登出"
 

	
 
#: rhodecode/templates/base/base.html:107
 
msgid "Submit a bug"
 
msgstr "回報錯誤"
 

	
 
#: rhodecode/templates/base/base.html:141
 
msgid "Switch repository"
 
msgstr "切換版本庫"
 

	
 
#: rhodecode/templates/base/base.html:143
 
msgid "Products"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:149
 
msgid "loading..."
 
msgstr "載入中..."
 

	
 
#: rhodecode/templates/base/base.html:234
 
#: rhodecode/templates/base/base.html:236
 
#: rhodecode/templates/base/base.html:238
 
msgid "Switch to"
 
msgstr "切換至"
 

	
 
#: rhodecode/templates/base/base.html:242
 
#: rhodecode/templates/branches/branches.html:13
 
msgid "branches"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/base/base.html:249
 
#: rhodecode/templates/branches/branches_data.html:52
 
msgid "There are no branches yet"
 
msgstr "沒有任何分支"
 

	
 
#: rhodecode/templates/base/base.html:254
 
#: rhodecode/templates/shortlog/shortlog_data.html:10
 
#: rhodecode/templates/tags/tags.html:14
 
msgid "tags"
 
msgstr "標籤"
 

	
 
#: rhodecode/templates/base/base.html:261
 
#: rhodecode/templates/tags/tags_data.html:32
 
msgid "There are no tags yet"
 
msgstr "沒有任何標籤"
 

	
 
#: rhodecode/templates/base/base.html:277
 
#: rhodecode/templates/base/base.html:281
 
#: rhodecode/templates/files/files_annotate.html:40
 
#: rhodecode/templates/files/files_source.html:11
 
msgid "Options"
 
msgstr "選項"
 

	
 
#: rhodecode/templates/base/base.html:286
 
#: rhodecode/templates/base/base.html:288
 
#: rhodecode/templates/base/base.html:306
 
msgid "settings"
 
msgstr "設定"
 

	
 
#: rhodecode/templates/base/base.html:292
 
msgid "search"
 
msgstr "搜尋"
 

	
 
#: rhodecode/templates/base/base.html:299
 
msgid "journal"
 
msgstr "日誌"
 

	
 
#: rhodecode/templates/base/base.html:301
 
msgid "repositories groups"
 
msgstr "版本庫群組"
 

	
 
#: rhodecode/templates/base/base.html:302
 
msgid "users"
 
msgstr "使用者"
 

	
 
#: rhodecode/templates/base/base.html:303
 
msgid "users groups"
 
msgstr "使用者群組"
 

	
 
#: rhodecode/templates/base/base.html:304
 
msgid "permissions"
 
msgstr "權限"
 

	
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/followers/followers.html:5
 
msgid "Followers"
 
msgstr "追蹤者"
 

	
 
#: rhodecode/templates/base/base.html:325
 
#: rhodecode/templates/base/base.html:327
 
#: rhodecode/templates/forks/forks.html:5
 
msgid "Forks"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:356
 
#: rhodecode/templates/base/base.html:358
 
#: rhodecode/templates/base/base.html:360
 
#: rhodecode/templates/search/search.html:4
 
#: rhodecode/templates/search/search.html:24
 
#: rhodecode/templates/search/search.html:46
 
msgid "Search"
 
msgstr "搜尋"
 

	
 
#: rhodecode/templates/base/root.html:57
 
#: rhodecode/templates/journal/journal.html:48
 
#: rhodecode/templates/summary/summary.html:36
 
msgid "Stop following this repository"
 
msgstr "停止追蹤這個版本庫"
 

	
 
#: rhodecode/templates/base/root.html:66
 
#: rhodecode/templates/summary/summary.html:40
 
msgid "Start following this repository"
 
msgstr "開始追蹤這個版本庫"
 

	
 
#: rhodecode/templates/branches/branches_data.html:4
 
#: rhodecode/templates/tags/tags_data.html:4
 
msgid "date"
 
msgstr "日期"
 

	
 
#: rhodecode/templates/branches/branches_data.html:6
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
#: rhodecode/templates/tags/tags_data.html:6
 
msgid "author"
 
msgstr "作者"
 

	
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/shortlog/shortlog_data.html:11
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "links"
 
msgstr "連結"
 

	
 
#: rhodecode/templates/branches/branches_data.html:23
 
#: rhodecode/templates/branches/branches_data.html:43
 
#: rhodecode/templates/shortlog/shortlog_data.html:39
 
#: rhodecode/templates/tags/tags_data.html:24
 
msgid "changeset"
 
msgstr "修改"
 

	
 
#: rhodecode/templates/branches/branches_data.html:25
 
#: rhodecode/templates/branches/branches_data.html:45
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/shortlog/shortlog_data.html:41
 
#: rhodecode/templates/summary/summary.html:233
 
#: rhodecode/templates/tags/tags_data.html:26
 
msgid "files"
 
msgstr "檔案"
 

	
 
#: rhodecode/templates/changelog/changelog.html:14
 
msgid "showing "
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:14
 
msgid "out of"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgid "Show"
 
msgstr "顯示"
 

	
 
#: rhodecode/templates/changelog/changelog.html:50
 
#: rhodecode/templates/changeset/changeset.html:42
 
#: rhodecode/templates/summary/summary.html:609
 
msgid "commit"
 
msgstr "遞交"
 

	
 
#: rhodecode/templates/changelog/changelog.html:63
 
msgid "Affected number of files, click to show more details"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:67
 
#: rhodecode/templates/changeset/changeset.html:66
 
msgid "merge"
 
msgstr "合併"
 

	
 
#: rhodecode/templates/changelog/changelog.html:72
 
#: rhodecode/templates/changeset/changeset.html:72
 
msgid "Parent"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:77
 
#: rhodecode/templates/changeset/changeset.html:77
 
msgid "No parents"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:82
 
#: rhodecode/templates/changeset/changeset.html:80
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_annotate.html:25
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/changelog/changelog.html:86
 
#: rhodecode/templates/changeset/changeset.html:83
 
msgid "tag"
 
msgstr "標籤"
 

	
 
#: rhodecode/templates/changelog/changelog.html:122
 
msgid "Show selected changes __S -> __E"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:172
 
#: rhodecode/templates/shortlog/shortlog_data.html:61
 
msgid "There are no changes yet"
 
msgstr "尚未有任何變更"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:2
 
#: rhodecode/templates/changeset/changeset.html:55
 
msgid "removed"
 
msgstr "移除"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:3
 
#: rhodecode/templates/changeset/changeset.html:56
 
msgid "changed"
 
msgstr "修改"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:57
 
msgid "added"
 
msgstr "新增"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changelog/changelog_details.html:7
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changeset/changeset.html:59
 
#: rhodecode/templates/changeset/changeset.html:60
 
#: rhodecode/templates/changeset/changeset.html:61
 
#, python-format
 
msgid "affected %s files"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#: rhodecode/templates/changeset/changeset.html:14
 
#: rhodecode/templates/changeset/changeset.html:31
 
msgid "Changeset"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:32
 
#: rhodecode/templates/changeset/changeset.html:121
 
#: rhodecode/templates/changeset/changeset_range.html:78
 
#: rhodecode/templates/files/file_diff.html:32
 
#: rhodecode/templates/files/file_diff.html:42
 
msgid "raw diff"
 
msgstr "原始差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:34
 
#: rhodecode/templates/changeset/changeset.html:123
 
#: rhodecode/templates/changeset/changeset_range.html:80
 
#: rhodecode/templates/files/file_diff.html:34
 
msgid "download diff"
 
msgstr "下載差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:90
 
#, python-format
 
msgid "%s files affected with %s additions and %s deletions."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:101
 
msgid "Changeset was too big and was cut off..."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:119
 
#: rhodecode/templates/changeset/changeset_range.html:76
 
#: rhodecode/templates/files/file_diff.html:30
 
msgid "diff"
 
msgstr "差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:132
 
#: rhodecode/templates/changeset/changeset_range.html:89
 
msgid "No changes in this file"
 
msgstr "這個檔案沒有任何變更"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:30
 
msgid "Compare View"
 
msgstr "比較顯示"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:52
 
msgid "Files affected"
 
msgstr ""
 

	
 
#: rhodecode/templates/errors/error_document.html:44
 
#, python-format
 
msgid "You will be redirected to %s in %s seconds"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "檔案差異"
 

	
 
#: rhodecode/templates/files/file_diff.html:42
 
msgid "Diff is to big to display"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files.html:37
 
#: rhodecode/templates/files/files_annotate.html:31
 
#: rhodecode/templates/files/files_edit.html:39
 
msgid "Location"
 
msgstr "位置"
 

	
 
#: rhodecode/templates/files/files.html:46
 
msgid "Go back"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files.html:47
 
msgid "No files at given path"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_annotate.html:4
 
msgid "File annotate"
 
msgstr "檔案註釋"
 

	
 
#: rhodecode/templates/files/files_annotate.html:12
 
msgid "annotate"
 
msgstr "註釋"
 

	
 
#: rhodecode/templates/files/files_annotate.html:33
 
#: rhodecode/templates/files/files_browser.html:160
 
#: rhodecode/templates/files/files_source.html:2
 
msgid "Revision"
 
msgstr "修訂"
 

	
 
#: rhodecode/templates/files/files_annotate.html:36
 
#: rhodecode/templates/files/files_browser.html:158
 
#: rhodecode/templates/files/files_source.html:7
 
msgid "Size"
 
msgstr "大小"
 

	
 
#: rhodecode/templates/files/files_annotate.html:38
 
#: rhodecode/templates/files/files_browser.html:159
 
#: rhodecode/templates/files/files_source.html:9
 
msgid "Mimetype"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_annotate.html:41
 
msgid "show source"
 
msgstr "顯示原始碼"
 

	
 
#: rhodecode/templates/files/files_annotate.html:43
 
#: rhodecode/templates/files/files_annotate.html:78
 
#: rhodecode/templates/files/files_source.html:14
 
#: rhodecode/templates/files/files_source.html:51
 
msgid "show as raw"
 
msgstr "顯示原始文件"
 

	
 
#: rhodecode/templates/files/files_annotate.html:45
 
#: rhodecode/templates/files/files_source.html:16
 
msgid "download as raw"
 
msgstr "下載原始文件"
 

	
 
#: rhodecode/templates/files/files_annotate.html:54
 
#: rhodecode/templates/files/files_source.html:25
 
msgid "History"
 
msgstr "歷史"
 

	
 
#: rhodecode/templates/files/files_annotate.html:73
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr "二進位檔 (%s)"
 

	
 
#: rhodecode/templates/files/files_annotate.html:78
 
#: rhodecode/templates/files/files_source.html:51
 
msgid "File is too big to display"
 
msgstr "顯示的檔案太大"
 

	
 
#: rhodecode/templates/files/files_browser.html:13
 
msgid "view"
 
msgstr "顯示"
 

	
 
#: rhodecode/templates/files/files_browser.html:14
 
msgid "previous revision"
 
msgstr "前一個修訂"
 

	
 
#: rhodecode/templates/files/files_browser.html:16
 
msgid "next revision"
 
msgstr "下一個修訂"
 

	
 
#: rhodecode/templates/files/files_browser.html:23
 
msgid "follow current branch"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:27
 
msgid "search file list"
 
msgstr "搜尋檔案列表"
 

	
 
#: rhodecode/templates/files/files_browser.html:32
 
msgid "Loading file list..."
 
msgstr "載入檔案列表..."
 

	
 
#: rhodecode/templates/files/files_browser.html:111
 
msgid "search truncated"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:122
 
msgid "no matching files"
 
msgstr "無符合的檔案"
 

	
 
#: rhodecode/templates/files/files_browser.html:161
 
msgid "Last modified"
 
msgstr "最後修改"
 

	
 
#: rhodecode/templates/files/files_browser.html:162
 
msgid "Last commiter"
 
msgstr "最後的遞交者"
 

	
 
#: rhodecode/templates/files/files_edit.html:4
 
msgid "Edit file"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/files/files_edit.html:45
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "commit message"
 
msgstr "遞交資訊"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
msgid "Commit changes"
 
msgstr "遞交修改"
 

	
 
#: rhodecode/templates/files/files_source.html:12
 
msgid "show annotation"
 
msgstr "險是註釋"
 

	
 
#: rhodecode/templates/files/files_source.html:153
 
msgid "Selection link"
 
msgstr ""
 

	
 
#: rhodecode/templates/followers/followers.html:13
 
msgid "followers"
 
msgstr "追蹤者"
 

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following"
 
msgstr "開始追蹤"
 

	
 
#: rhodecode/templates/forks/forks.html:13
 
msgid "forks"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/forks/forks_data.html:17
 
msgid "forked"
 
msgstr "已建立分支"
 

	
 
#: rhodecode/templates/forks/forks_data.html:34
 
msgid "There are no forks yet"
 
msgstr "尚未有任何 fork"
 

	
 
#: rhodecode/templates/journal/journal.html:34
 
msgid "Following"
 
msgstr "已追蹤"
 

	
 
#: rhodecode/templates/journal/journal.html:41
 
msgid "following user"
 
msgstr "追蹤使用者"
 

	
 
#: rhodecode/templates/journal/journal.html:41
 
msgid "user"
 
msgstr "使用者"
 

	
 
#: rhodecode/templates/journal/journal.html:65
 
msgid "You are not following any users or repositories"
 
msgstr "您尚未追蹤任何使用者或版本庫"
 

	
 
#: rhodecode/templates/journal/journal_data.html:46
 
msgid "No entries yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/public_journal.html:17
 
msgid "Public Journal"
 
msgstr "開放日誌"
 

	
 
#: rhodecode/templates/search/search.html:7
 
#: rhodecode/templates/search/search.html:26
 
msgid "in repository: "
 
msgstr "於版本庫:"
 

	
 
#: rhodecode/templates/search/search.html:9
 
#: rhodecode/templates/search/search.html:28
 
msgid "in all repositories"
 
msgstr "於所有的版本庫"
 

	
 
#: rhodecode/templates/search/search.html:42
 
msgid "Search term"
 
msgstr "搜尋關鍵字"
 

	
 
#: rhodecode/templates/search/search.html:54
 
msgid "Search in"
 
msgstr "搜尋範圍"
 

	
 
#: rhodecode/templates/search/search.html:57
 
msgid "File contents"
 
msgstr "文件內容"
 

	
 
#: rhodecode/templates/search/search.html:59
 
msgid "File names"
 
msgstr "檔案名稱"
 

	
 
#: rhodecode/templates/search/search_content.html:20
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr "權限不足"
 

	
 
#: rhodecode/templates/settings/repo_fork.html:5
 
msgid "Fork"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/settings/repo_fork.html:31
 
msgid "Fork name"
 
msgstr "分支名稱"
 

	
 
#: rhodecode/templates/settings/repo_fork.html:55
 
msgid "fork this repository"
 
msgstr "fork 這個版本庫"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#: rhodecode/templates/summary/summary.html:666
 
msgid "Shortlog"
 
msgstr "簡短紀錄"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:14
 
msgid "shortlog"
 
msgstr "簡短紀錄"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "age"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:12
 
msgid "summary"
 
msgstr "概況"
 

	
 
#: rhodecode/templates/summary/summary.html:79
 
msgid "remote clone"
 
msgstr "遠端複製"
 

	
 
#: rhodecode/templates/summary/summary.html:121
 
msgid "by"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:128
 
msgid "Clone url"
 
msgstr "複製連結"
 

	
 
#: rhodecode/templates/summary/summary.html:137
 
msgid "Trending source files"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:146
 
msgid "Download"
 
msgstr "下載"
 

	
 
#: rhodecode/templates/summary/summary.html:150
 
msgid "There are no downloads yet"
 
msgstr "沒有任何下載"
 

	
 
#: rhodecode/templates/summary/summary.html:152
 
msgid "Downloads are disabled for this repository"
 
msgstr "這個版本庫的下載已停用"
 

	
 
#: rhodecode/templates/summary/summary.html:154
 
#: rhodecode/templates/summary/summary.html:320
 
msgid "enable"
 
msgstr "啟用"
 

	
 
#: rhodecode/templates/summary/summary.html:162
 
#: rhodecode/templates/summary/summary.html:297
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "下載 %s 為 %s"
 

	
 
#: rhodecode/templates/summary/summary.html:168
 
msgid "Check this to download archive with subrepos"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:168
 
msgid "with subrepos"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:176
 
msgid "Feeds"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:257
 
#: rhodecode/templates/summary/summary.html:684
 
#: rhodecode/templates/summary/summary.html:695
 
msgid "show more"
 
msgstr "顯示更多"
 

	
 
#: rhodecode/templates/summary/summary.html:312
 
msgid "Commit activity by day / author"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:324
 
msgid "Loaded in"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:603
 
msgid "commits"
 
msgstr "遞交"
 

	
 
#: rhodecode/templates/summary/summary.html:604
 
msgid "files added"
 
msgstr "多個檔案新增"
 

	
 
#: rhodecode/templates/summary/summary.html:605
 
msgid "files changed"
 
msgstr "多個檔案修改"
 

	
 
#: rhodecode/templates/summary/summary.html:606
 
msgid "files removed"
 
msgstr "移除多個檔案"
 

	
 
#: rhodecode/templates/summary/summary.html:610
 
msgid "file added"
 
msgstr "檔案新增"
 

	
 
#: rhodecode/templates/summary/summary.html:611
 
msgid "file changed"
 
msgstr "檔案修改"
 

	
 
#: rhodecode/templates/summary/summary.html:612
 
msgid "file removed"
 
msgstr "移除檔案"
 

	
rhodecode/lib/auth.py
Show inline comments
 
@@ -64,7 +64,7 @@ class PasswordGenerator(object):
 
        passwd_gen = PasswordGenerator()
 
        #print 8-letter password containing only big and small letters
 
            of alphabet
 
        print passwd_gen.gen_password(8, passwd_gen.ALPHABETS_BIG_SMALL)
 
        passwd_gen.gen_password(8, passwd_gen.ALPHABETS_BIG_SMALL)
 
    """
 
    ALPHABETS_NUM = r'''1234567890'''
 
    ALPHABETS_SMALL = r'''qwertyuiopasdfghjklzxcvbnm'''
rhodecode/lib/ext_json.py
Show inline comments
 
@@ -81,22 +81,24 @@ except ImportError:
 
    _sj = None
 

	
 

	
 
# simplejson not found try out regular json module
 
import json as _json
 

	
 
try:
 
    # simplejson not found try out regular json module
 
    import json as _json
 

	
 
# extended JSON encoder for json
 
class ExtendedEncoder(_json.JSONEncoder):
 
    def default(self, obj):
 
        try:
 
            return _obj_dump(obj)
 
        except NotImplementedError:
 
            pass
 
        return _json.JSONEncoder.default(self, obj)
 
# monkey-patch JSON encoder to use extended version
 
_json.dumps = functools.partial(_json.dumps, cls=ExtendedEncoder)
 
_json.dump = functools.partial(_json.dump, cls=ExtendedEncoder)
 
stdlib = _json
 
    # extended JSON encoder for json
 
    class ExtendedEncoder(_json.JSONEncoder):
 
        def default(self, obj):
 
            try:
 
                return _obj_dump(obj)
 
            except NotImplementedError:
 
                pass
 
            return _json.JSONEncoder.default(self, obj)
 
    # monkey-patch JSON encoder to use extended version
 
    _json.dumps = functools.partial(_json.dumps, cls=ExtendedEncoder)
 
    _json.dump = functools.partial(_json.dump, cls=ExtendedEncoder)
 
    stdlib = _json
 
except ImportError:
 
    _json = None
 

	
 
# set all available json modules
 
simplejson = _sj
rhodecode/lib/utils.py
Show inline comments
 
@@ -150,7 +150,7 @@ def action_logger(user, action, repo, ip
 

	
 
        user_log = UserLog()
 
        user_log.user_id = user_obj.user_id
 
        user_log.action = action
 
        user_log.action = safe_unicode(action)
 

	
 
        user_log.repository_id = repo_obj.repo_id
 
        user_log.repository_name = repo_name
rhodecode/lib/utils2.py
Show inline comments
 
@@ -215,7 +215,6 @@ def safe_str(unicode_, to_encoding=None)
 
    try:
 
        import chardet
 
        encoding = chardet.detect(unicode_)['encoding']
 
        print encoding
 
        if encoding is None:
 
            raise UnicodeEncodeError()
 

	
rhodecode/lib/vcs/backends/git/changeset.py
Show inline comments
 
@@ -240,11 +240,11 @@ class GitChangeset(BaseChangeset):
 
        which is generally not good. Should be replaced with algorithm
 
        iterating commits.
 
        """
 
        cmd = 'log --pretty="format: %%H" --name-status -p %s -- "%s"' % (
 
        cmd = 'log --pretty="format: %%H" -s -p %s -- "%s"' % (
 
                  self.id, path
 
               )
 
        so, se = self.repository.run_git_command(cmd)
 
        ids = re.findall(r'\w{40}', so)
 
        ids = re.findall(r'[0-9a-fA-F]{40}', so)
 
        return [self.repository.get_changeset(id) for id in ids]
 

	
 
    def get_file_annotate(self, path):
rhodecode/lib/vcs/backends/hg/changeset.py
Show inline comments
 
@@ -37,6 +37,10 @@ class MercurialChangeset(BaseChangeset):
 
        return  safe_unicode(self._ctx.branch())
 

	
 
    @LazyProperty
 
    def bookmarks(self):
 
        return map(safe_unicode, self._ctx.bookmarks())
 

	
 
    @LazyProperty
 
    def message(self):
 
        return safe_unicode(self._ctx.description())
 

	
 
@@ -259,8 +263,6 @@ class MercurialChangeset(BaseChangeset):
 
        archival.archive(self.repository._repo, stream, self.raw_id,
 
                         kind, prefix=prefix, subrepos=subrepos)
 

	
 
        #stream.close()
 

	
 
        if stream.closed and hasattr(stream, 'name'):
 
            stream = open(stream.name, 'rb')
 
        elif hasattr(stream, 'mode') and 'r' not in stream.mode:
rhodecode/lib/vcs/utils/__init__.py
Show inline comments
 
@@ -90,7 +90,6 @@ def safe_str(unicode_, to_encoding=None)
 
    try:
 
        import chardet
 
        encoding = chardet.detect(unicode_)['encoding']
 
        print encoding
 
        if encoding is None:
 
            raise UnicodeEncodeError()
 

	
rhodecode/model/db.py
Show inline comments
 
@@ -647,7 +647,7 @@ class Repository(Base, BaseModel):
 
    # SCM PROPERTIES
 
    #==========================================================================
 

	
 
    def get_changeset(self, rev):
 
    def get_changeset(self, rev=None):
 
        return get_changeset_safe(self.scm_instance, rev)
 

	
 
    @property
 
@@ -1297,7 +1297,8 @@ class Notification(Base, BaseModel):
 
    @property
 
    def recipients(self):
 
        return [x.user for x in UserNotification.query()\
 
                .filter(UserNotification.notification == self).all()]
 
                .filter(UserNotification.notification == self)\
 
                .order_by(UserNotification.user).all()]
 

	
 
    @classmethod
 
    def create(cls, created_by, subject, body, recipients, type_=None):
rhodecode/model/user.py
Show inline comments
 
@@ -225,10 +225,8 @@ class UserModel(BaseModel):
 
        from rhodecode.model.notification import NotificationModel
 

	
 
        try:
 
            new_user = User()
 
            for k, v in form_data.items():
 
                if k != 'admin':
 
                    setattr(new_user, k, v)
 
            form_data['admin'] = False
 
            new_user = self.create(form_data)
 

	
 
            self.sa.add(new_user)
 
            self.sa.flush()
 
@@ -533,7 +531,6 @@ class UserModel(BaseModel):
 

	
 
        for perm in user_repo_group_perms_from_users_groups:
 
            g_k = perm.UsersGroupRepoGroupToPerm.group.group_name
 
            print perm, g_k
 
            p = perm.Permission.permission_name
 
            cur_perm = user.permissions[GK][g_k]
 
            # overwrite permission only if it's greater than permission
rhodecode/public/css/style.css
Show inline comments
 
@@ -2545,6 +2545,10 @@ h3.files_location {
 
.right .logtags{
 
	padding: 2px 2px 2px 2px;
 
}
 
.right .logtags .branchtag,.right .logtags .tagtag,.right .logtags .booktag{
 
    margin: 0px 2px;
 
}
 
 
.right .logtags .branchtag,.logtags .branchtag {
 
  padding: 1px 3px 1px 3px;
 
  background-color: #bfbfbf;
 
@@ -2583,10 +2587,10 @@ h3.files_location {
 
    text-decoration: none;
 
    color: #ffffff;
 
}
 
.right .logbooks .bookbook,.logbooks .bookbook {
 
  padding: 1px 3px 2px;
 
.right .logbooks .bookbook,.logbooks .bookbook,.right .logtags .bookbook,.logtags .bookbook {
 
  padding: 1px 3px 1px 3px;
 
  background-color: #46A546;
 
  font-size: 9.75px;
 
  font-size: 10px;
 
  font-weight: bold;
 
  color: #ffffff;
 
  text-transform: uppercase;
 
@@ -2595,10 +2599,10 @@ h3.files_location {
 
  -moz-border-radius: 3px;
 
  border-radius: 3px;
 
}
 
.right .logbooks .bookbook,.logbooks .bookbook a{
 
.right .logbooks .bookbook,.logbooks .bookbook a,.right .logtags .bookbook,.logtags .bookbook a{
 
	color: #ffffff;
 
}
 
.right .logbooks .bookbook,.logbooks .bookbook a:hover{
 
.right .logbooks .bookbook,.logbooks .bookbook a:hover,.right .logtags .bookbook,.logtags .bookbook a:hover{
 
    text-decoration: none;
 
    color: #ffffff;
 
}
rhodecode/templates/changelog/changelog.html
Show inline comments
 
@@ -100,8 +100,16 @@ ${c.repo_name} ${_('Changelog')} - ${c.r
 
									%endif
 
									%if cs.branch:
 
									<span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
 
									   ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
 
									   ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
 
                                    </span>
 
									%endif
 
                                    %if h.is_hg(c.rhodecode_repo):
 
                                      %for book in cs.bookmarks:
 
                                      <span class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
 
                                         ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
 
                                      </span>
 
                                      %endfor
 
                                    %endif
 
									%for tag in cs.tags:
 
										<span class="tagtag"  title="${'%s %s' % (_('tag'),tag)}">
 
										${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
rhodecode/tests/__init__.py
Show inline comments
 
@@ -21,13 +21,15 @@ from pylons import config, url
 
from routes.util import URLGenerator
 
from webtest import TestApp
 

	
 
from rhodecode import is_windows
 
from rhodecode.model.meta import Session
 
from rhodecode.model.db import User
 

	
 
import pylons.test
 

	
 
os.environ['TZ'] = 'UTC'
 
time.tzset()
 
if not is_windows:
 
    time.tzset()
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -71,6 +73,7 @@ NEW_GIT_REPO = 'vcs_test_git_new'
 
HG_FORK = 'vcs_test_hg_fork'
 
GIT_FORK = 'vcs_test_git_fork'
 

	
 

	
 
class TestController(TestCase):
 

	
 
    def __init__(self, *args, **kwargs):
rhodecode/tests/functional/test_files.py
Show inline comments
 
@@ -190,18 +190,22 @@ class TestFilesController(TestController
 
        self.log_user()
 

	
 
        for arch_ext, info in ARCHIVE_SPECS.items():
 
            short = '27cd5cce30c9%s' % arch_ext
 
            fname = '27cd5cce30c96924232dffcd24178a07ffeb5dfc%s' % arch_ext
 
            filename = '%s-%s' % (HG_REPO, fname)
 

	
 
            response = self.app.get(url(controller='files', action='archivefile',
 
            filename = '%s-%s' % (HG_REPO, short)
 
            response = self.app.get(url(controller='files', 
 
                                        action='archivefile',
 
                                        repo_name=HG_REPO,
 
                                        fname=fname))
 

	
 
            assert response.status == '200 OK', 'wrong response code'
 
            assert response.response._headers.items() == [('Pragma', 'no-cache'),
 
                                                  ('Cache-Control', 'no-cache'),
 
                                                  ('Content-Type', '%s; charset=utf-8' % info[0]),
 
                                                  ('Content-Disposition', 'attachment; filename=%s' % filename), ], 'wrong headers'
 
            self.assertEqual(response.status, '200 OK')
 
            self.assertEqual(response.response._headers.items(),
 
             [('Pragma', 'no-cache'),
 
              ('Cache-Control', 'no-cache'),
 
              ('Content-Type', '%s; charset=utf-8' % info[0]),
 
              ('Content-Disposition', 'attachment; filename=%s' % filename),
 
             ]
 
            )
 

	
 
    def test_archival_wrong_ext(self):
 
        self.log_user()
 
@@ -212,8 +216,7 @@ class TestFilesController(TestController
 
            response = self.app.get(url(controller='files', action='archivefile',
 
                                        repo_name=HG_REPO,
 
                                        fname=fname))
 
            assert 'Unknown archive type' in response.body
 

	
 
            response.mustcontain('Unknown archive type')
 

	
 
    def test_archival_wrong_revision(self):
 
        self.log_user()
 
@@ -224,7 +227,7 @@ class TestFilesController(TestController
 
            response = self.app.get(url(controller='files', action='archivefile',
 
                                        repo_name=HG_REPO,
 
                                        fname=fname))
 
            assert 'Unknown revision' in response.body
 
            response.mustcontain('Unknown revision')
 

	
 
    #==========================================================================
 
    # RAW FILE
 
@@ -236,8 +239,8 @@ class TestFilesController(TestController
 
                                    revision='27cd5cce30c96924232dffcd24178a07ffeb5dfc',
 
                                    f_path='vcs/nodes.py'))
 

	
 
        assert response.content_disposition == "attachment; filename=nodes.py"
 
        assert response.content_type == "text/x-python"
 
        self.assertEqual(response.content_disposition, "attachment; filename=nodes.py")
 
        self.assertEqual(response.content_type, "text/x-python")
 

	
 
    def test_raw_file_wrong_cs(self):
 
        self.log_user()
 
@@ -277,7 +280,7 @@ class TestFilesController(TestController
 
                                    revision='27cd5cce30c96924232dffcd24178a07ffeb5dfc',
 
                                    f_path='vcs/nodes.py'))
 

	
 
        assert response.content_type == "text/plain"
 
        self.assertEqual(response.content_type, "text/plain")
 

	
 
    def test_raw_wrong_cs(self):
 
        self.log_user()
rhodecode/tests/functional/test_login.py
Show inline comments
 
@@ -54,7 +54,6 @@ class TestLoginController(TestController
 
        self.assertEqual(response.status, '200 OK')
 
        self.assertTrue('Users administration' in response.body)
 

	
 

	
 
    def test_login_short_password(self):
 
        response = self.app.post(url(controller='login', action='index'),
 
                                 {'username':'test_admin',
 
@@ -101,7 +100,7 @@ class TestLoginController(TestController
 
                                             'lastname':'test'})
 

	
 
        self.assertEqual(response.status , '200 OK')
 
        assert 'This e-mail address is already taken' in response.body
 
        response.mustcontain('This e-mail address is already taken')
 

	
 
    def test_register_err_same_email_case_sensitive(self):
 
        response = self.app.post(url(controller='login', action='register'),
 
@@ -112,7 +111,7 @@ class TestLoginController(TestController
 
                                             'name':'test',
 
                                             'lastname':'test'})
 
        self.assertEqual(response.status , '200 OK')
 
        assert 'This e-mail address is already taken' in response.body
 
        response.mustcontain('This e-mail address is already taken')
 

	
 
    def test_register_err_wrong_data(self):
 
        response = self.app.post(url(controller='login', action='register'),
 
@@ -123,9 +122,8 @@ class TestLoginController(TestController
 
                                             'name':'test',
 
                                             'lastname':'test'})
 
        self.assertEqual(response.status , '200 OK')
 
        assert 'An email address must contain a single @' in response.body
 
        assert 'Enter a value 6 characters long or more' in response.body
 

	
 
        response.mustcontain('An email address must contain a single @')
 
        response.mustcontain('Enter a value 6 characters long or more')
 

	
 
    def test_register_err_username(self):
 
        response = self.app.post(url(controller='login', action='register'),
 
@@ -137,11 +135,11 @@ class TestLoginController(TestController
 
                                             'lastname':'test'})
 

	
 
        self.assertEqual(response.status , '200 OK')
 
        assert 'An email address must contain a single @' in response.body
 
        assert ('Username may only contain '
 
        response.mustcontain('An email address must contain a single @')
 
        response.mustcontain('Username may only contain '
 
                'alphanumeric characters underscores, '
 
                'periods or dashes and must begin with '
 
                'alphanumeric character') in response.body
 
                'alphanumeric character')
 

	
 
    def test_register_err_case_sensitive(self):
 
        response = self.app.post(url(controller='login', action='register'),
 
@@ -156,8 +154,6 @@ class TestLoginController(TestController
 
        self.assertTrue('An email address must contain a single @' in response.body)
 
        self.assertTrue('This username already exists' in response.body)
 

	
 

	
 

	
 
    def test_register_special_chars(self):
 
        response = self.app.post(url(controller='login', action='register'),
 
                                            {'username':'xxxaxn',
 
@@ -170,7 +166,6 @@ class TestLoginController(TestController
 
        self.assertEqual(response.status , '200 OK')
 
        self.assertTrue('Invalid characters in password' in response.body)
 

	
 

	
 
    def test_register_password_mismatch(self):
 
        response = self.app.post(url(controller='login', action='register'),
 
                                            {'username':'xs',
 
@@ -180,8 +175,8 @@ class TestLoginController(TestController
 
                                             'name':'test',
 
                                             'lastname':'test'})
 

	
 
        self.assertEqual(response.status , '200 OK')
 
        assert 'Passwords do not match' in response.body
 
        self.assertEqual(response.status, '200 OK')
 
        response.mustcontain('Passwords do not match')
 

	
 
    def test_register_ok(self):
 
        username = 'test_regular4'
 
@@ -196,28 +191,32 @@ class TestLoginController(TestController
 
                                             'password_confirmation':password,
 
                                             'email':email,
 
                                             'name':name,
 
                                             'lastname':lastname})
 
        self.assertEqual(response.status , '302 Found')
 
        assert 'You have successfully registered into rhodecode' in response.session['flash'][0], 'No flash message about user registration'
 
                                             'lastname':lastname,
 
                                             'admin':True}) # This should be overriden
 
        self.assertEqual(response.status, '302 Found')
 
        self.checkSessionFlash(response, 'You have successfully registered into rhodecode')
 

	
 
        ret = self.Session.query(User).filter(User.username == 'test_regular4').one()
 
        assert ret.username == username , 'field mismatch %s %s' % (ret.username, username)
 
        assert check_password(password, ret.password) == True , 'password mismatch'
 
        assert ret.email == email , 'field mismatch %s %s' % (ret.email, email)
 
        assert ret.name == name , 'field mismatch %s %s' % (ret.name, name)
 
        assert ret.lastname == lastname , 'field mismatch %s %s' % (ret.lastname, lastname)
 

	
 
        self.assertEqual(ret.username, username)
 
        self.assertEqual(check_password(password, ret.password), True)
 
        self.assertEqual(ret.email, email)
 
        self.assertEqual(ret.name, name)
 
        self.assertEqual(ret.lastname, lastname)
 
        self.assertNotEqual(ret.api_key, None)
 
        self.assertEqual(ret.admin, False)
 

	
 
    def test_forgot_password_wrong_mail(self):
 
        response = self.app.post(url(controller='login', action='password_reset'),
 
                                            {'email':'marcin@wrongmail.org', })
 
        response = self.app.post(
 
                        url(controller='login', action='password_reset'),
 
                            {'email': 'marcin@wrongmail.org',}
 
        )
 

	
 
        assert "This e-mail address doesn't exist" in response.body, 'Missing error message about wrong email'
 
        response.mustcontain("This e-mail address doesn't exist")
 

	
 
    def test_forgot_password(self):
 
        response = self.app.get(url(controller='login',
 
                                    action='password_reset'))
 
        self.assertEqual(response.status , '200 OK')
 
        self.assertEqual(response.status, '200 OK')
 

	
 
        username = 'test_password_reset_1'
 
        password = 'qweqwe'
rhodecode/tests/test_models.py
Show inline comments
 
@@ -5,7 +5,8 @@ from rhodecode.tests import *
 
from rhodecode.model.repos_group import ReposGroupModel
 
from rhodecode.model.repo import RepoModel
 
from rhodecode.model.db import RepoGroup, User, Notification, UserNotification, \
 
    UsersGroup, UsersGroupMember, Permission, UsersGroupRepoGroupToPerm
 
    UsersGroup, UsersGroupMember, Permission, UsersGroupRepoGroupToPerm,\
 
    Repository
 
from sqlalchemy.exc import IntegrityError
 
from rhodecode.model.user import UserModel
 

	
 
@@ -153,24 +154,23 @@ class TestReposGroups(unittest.TestCase)
 
        self.assertTrue(self.__check_path('g2', 'g1'))
 

	
 
        # test repo
 
        self.assertEqual(r.repo_name, os.path.join('g2', 'g1', r.just_name))
 

	
 
        self.assertEqual(r.repo_name, RepoGroup.url_sep().join(['g2', 'g1', r.just_name]))
 

	
 
    def test_move_to_root(self):
 
        g1 = _make_group('t11')
 
        Session.commit()
 
        g2 = _make_group('t22',parent_id=g1.group_id)
 
        g2 = _make_group('t22', parent_id=g1.group_id)
 
        Session.commit()
 

	
 
        self.assertEqual(g2.full_path,'t11/t22')
 
        self.assertEqual(g2.full_path, 't11/t22')
 
        self.assertTrue(self.__check_path('t11', 't22'))
 

	
 
        g2 = self.__update_group(g2.group_id, 'g22', parent_id=None)
 
        Session.commit()
 

	
 
        self.assertEqual(g2.group_name,'g22')
 
        self.assertEqual(g2.group_name, 'g22')
 
        # we moved out group from t1 to '' so it's full path should be 'g2'
 
        self.assertEqual(g2.full_path,'g22')
 
        self.assertEqual(g2.full_path, 'g22')
 
        self.assertFalse(self.__check_path('t11', 't22'))
 
        self.assertTrue(self.__check_path('g22'))
 

	
 
@@ -620,7 +620,7 @@ class TestPermissions(unittest.TestCase)
 
        # add repo to group
 
        form_data = {
 
            'repo_name':HG_REPO,
 
            'repo_name_full':os.path.join(self.g1.group_name,HG_REPO),
 
            'repo_name_full':RepoGroup.url_sep().join([self.g1.group_name,HG_REPO]),
 
            'repo_type':'hg',
 
            'clone_uri':'',
 
            'repo_group':self.g1.group_id,
0 comments (0 inline, 0 general)