Changeset - 0065f7fe60f6
docs/changelog.rst
Show inline comments
 
.. _changelog:
 

	
 
=========
 
Changelog
 
=========
 

	
 
1.6.0 (**2013-XX-XX**)
 
----------------------
 

	
 
:status: in-progress
 
:branch: beta
 

	
 
news
 
++++
 

	
 
fixes
 
+++++
 

	
 
1.5.3 (**2013-02-12**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- IP restrictions now also enabled for IPv6
 

	
 
fixes
 
+++++
 

	
 
- fixed issues with private checkbox not always working
 
- fixed #746 unicodeDedode errors on feed controllers
 
- fixes issue #756 cleanup repos didn't properly compose paths of repos to be cleaned up.
 
- fixed cache invalidation issues together with vcs_full_cache option
 
- repo scan should skip directories with starting with '.'
 
- fixes for issue #731, update-repoinfo sometimes failed to update data when changesets
 
  were initial commits
 
- recursive mode of setting permission skips private repositories
 

	
 
1.5.2 (**2013-01-14**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- IP restrictions for users. Each user can get a set of whitelist IP+mask for
 
  extra protection. Useful for buildbots etc.
 
- added full last changeset info to lightweight dashboard. lightweight dashboard
 
  is now fully functional replacement of original dashboard.
 
- implemented certain API calls for non-admin users.
 
- enabled all Markdown Extra plugins
 
- implemented #725 Pull Request View - Show origin repo URL
 
- show comments from pull requests into associated changesets
 

	
 
fixes
 
+++++
 

	
 
- update repoinfo script is more failsafe
 
- fixed #687  Lazy loaded tooltip bug with simultaneous ajax requests
 
- fixed #691: Notifications for pull requests: move link to top for better
 
  readability
 
- fixed #699: fix missing fork docs for API
 
- fixed #693 Opening changeset from pull request fails
 
- fixed #710 File view stripping empty lines from beginning and end of file
 
- fixed issues with getting repos by path on windows, caused GIT hooks to fail
 
- fixed issues with groups paginator on main dashboard
 
- improved fetch/pull command for git repos, now pulling all refs
 
- fixed issue #719 Journal revision ID tooltip AJAX query path is incorrect
 
  when running in a subdir
 
- fixed issue #702 API methods without arguments fail when "args":null
 
- set the status of changesets initially on pull request. Fixes issues #690 and #587
 

	
 
1.5.1 (**2012-12-13**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- implements #677: Don't allow to close pull requests when they are
 
  under-review status
 
- implemented #670 Implementation of Roles in Pull Request
 

	
 
fixes
 
+++++
 

	
 
- default permissions can get duplicated after migration
 
- fixed changeset status labels, they now select radio buttons
 
- #682 translation difficult for multi-line text
 
- #683 fixed difference between messages about not mapped repositories
 
- email: fail nicely when no SMTP server has been configured
 

	
 
1.5.0 (**2012-12-12**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- new rewritten from scratch diff engine. 10x faster in edge cases. Handling
 
  of file renames, copies, change flags and binary files
 
- added lightweight dashboard option. ref #500. New version of dashboard
 
  page that doesn't use any VCS data and is super fast to render. Recommended
 
  for large amount of repositories.
 
- implements #648 write Script for updating last modification time for
 
  lightweight dashboard
 
- implemented compare engine for git repositories.
 
- LDAP failover, option to specify multiple servers
 
- added Errormator and Sentry support for monitoring RhodeCode
 
- implemented #628: Pass server URL to rc-extensions hooks
 
- new tooltip implementation - added lazy loading of changesets from journal
 
  pages. This can significantly improve speed of rendering the page
 
- implements #632,added branch/tag/bookmarks info into feeds
 
  added changeset link to body of message
 
- implemented #638 permissions overview to groups
 
- implements #636, lazy loading of history and authors to speed up source
 
  pages rendering
 
- implemented #647, option to pass list of default encoding used to
 
  encode to/decode from unicode
 
- added caching layer into RSS/ATOM feeds.
 
- basic implementation of cherry picking changesets for pull request, ref #575
 
- implemented #661 Add option to include diff in RSS feed
 
- implemented file history page for showing detailed changelog for a given file
 
- implemented #663 Admin/permission: specify default repogroup perms
 
- implemented #379 defaults settings page for creation of repositories, locking
 
  statistics, downloads, repository type
 
- implemented #210 filtering of admin journal based on Whoosh Query language
 
- added parents/children links in changeset viewref #650
 

	
 
fixes
 
+++++
 

	
 
- fixed git version checker
 
- #586 patched basic auth handler to fix issues with git behind proxy
 
- #589 search urlgenerator didn't properly escape special characters
 
- fixed issue #614 Include repo name in delete confirmation dialog
 
- fixed #623: Lang meta-tag doesn't work with C#/C++
 
- fixes #612 Double quotes to Single quotes result in bad html in diff
 
- fixes #630 git statistics do too much work making them slow.
 
- fixes #625 Git-Tags are not displayed in Shortlog
 
- fix for issue #602, enforce str when setting mercurial UI object.
 
  When this is used together with mercurial internal translation system
 
  it can lead to UnicodeDecodeErrors
 
- fixes #645 Fix git handler when doing delete remote branch
 
- implements #649 added two seperate method for author and commiter to VCS
 
  changeset class switch author for git backed to be the real author not commiter
 
- implements #649 added two seperate method for author and committer to VCS
 
  changeset class switch author for git backed to be the real author not committer
 
- fix issue #504 RhodeCode is showing different versions of README on
 
  different summary page loads
 
- implemented #658 Changing username in LDAP-Mode should not be allowed.
 
- fixes #652 switch to generator approach when doing file annotation to prevent
 
  huge memory consumption
 
- fixes #666 move lockkey path location to cache_dir to ensure this path is
 
  always writable for rhodecode server
 
- many more small fixes and improvements
 
- fixed issues with recursive scans on removed repositories that could take
 
  long time on instance start
 

	
 
1.4.4 (**2012-10-08**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- obfuscate db password in logs for engine connection string
 
- #574 Show pull request status also in shortlog (if any)
 
- remember selected tab in my account page
 
- Bumped mercurial version to 2.3.2
 
- #595 rcextension hook for repository delete
 

	
 
fixes
 
+++++
 

	
 
- Add git version detection to warn users that Git used in system is to
 
  old. Ref #588 - also show git version in system details in settings page
 
- fixed files quick filter links
 
- #590 Add GET flag that controls the way the diff are generated, for pull
 
  requests we want to use non-bundle based diffs, That are far better for
 
  doing code reviews. The /compare url still uses bundle compare for full
 
  comparison including the incoming changesets
 
- Fixed #585, checks for status of revision where to strict, and made
 
  opening pull request with those revision impossible due to previously set
 
  status. Checks now are made also for the repository.
 
- fixes #591 git backend was causing encoding errors when handling binary
 
  files - added a test case for VCS lib tests
 
- fixed #597 commits in future get negative age.
 
- fixed #598 API docs methods had wrong members parameter as returned data
 

	
 
1.4.3 (**2012-09-28**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- #558 Added config file to hooks extra data
 
- bumped mercurial version to 2.3.1
 
- #518 added possibility of specifying multiple patterns for issues
 
- update codemirror to latest version
 

	
 
fixes
 
+++++
 

	
 
- fixed #570 explicit user group permissions can overwrite owner permissions
 
- fixed #578 set proper PATH with current Python for Git
 
  hooks to execute within same Python as RhodeCode
 
- fixed issue with Git bare repos that ends with .git in name
 

	
 
1.4.2 (**2012-09-12**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- added option to menu to quick lock/unlock repository for users that have
 
  write access to
 
- Implemented permissions for writing to repo
 
  groups. Now only write access to group allows to create a repostiory
 
  within that group
 
- #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
 
- updated translation for zh_CN
 

	
 
fixes
 
+++++
 

	
 
- fixed visual permissions check on repos groups inside groups
 
- fixed issues with non-ascii search terms in search, and indexers
 
- fixed parsing of page number in GET parameters
 
- fixed issues with generating pull-request overview for repos with
 
  bookmarks and tags, also preview doesn't loose chosen revision from
 
  select dropdown
 

	
 
1.4.1 (**2012-09-07**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- always put a comment about code-review status change even if user send
 
  empty data
 
- modified_on column saves repository update and it's going to be used
 
  later for light version of main page ref #500
 
- pull request notifications send much nicer emails with details about pull
 
  request
 
- #551 show breadcrumbs in summary view for repositories inside a group
 

	
 
fixes
 
+++++
 

	
 
- fixed migrations of permissions that can lead to inconsistency.
 
  Some users sent feedback that after upgrading from older versions issues
 
  with updating default permissions occurred. RhodeCode detects that now and
 
  resets default user permission to initial state if there is a need for that.
 
  Also forces users to set the default value for new forking permission.
 
- #535 improved apache wsgi example configuration in docs
 
- fixes #550 mercurial repositories comparision failed when origin repo had
 
  additional not-common changesets
 
- fixed status of code-review in preview windows of pull request
 
- git forks were not initialized at bare repos
 
- fixes #555 fixes issues with comparing non-related repositories
 
- fixes #557 follower counter always counts up
 
- fixed issue #560 require push ssl checkbox wasn't shown when option was
 
  enabled
 
- fixed #559
 
- fixed issue #559 fixed bug in routing that mapped repo names with <name>_<num> in name as
 
  if it was a request to url by repository ID
 

	
 
1.4.0 (**2012-09-03**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- new codereview system
 
- email map, allowing users to have multiple email addresses mapped into
 
  their accounts
 
- improved git-hook system. Now all actions for git are logged into journal
 
  including pushed revisions, user and IP address
 
- changed setup-app into setup-rhodecode and added default options to it.
 
- new git repos are created as bare now by default
 
- #464 added links to groups in permission box
 
- #465 mentions autocomplete inside comments boxes
 
- #469 added --update-only option to whoosh to re-index only given list
 
  of repos in index
 
- rhodecode-api CLI client
 
- new git http protocol replaced buggy dulwich implementation.
 
  Now based on pygrack & gitweb
 
- Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
 
  reformated based on user suggestions. Additional rss/atom feeds for user
 
  journal
 
- various i18n improvements
 
- #478 permissions overview for admin in user edit view
 
- File view now displays small gravatars off all authors of given file
 
- Implemented landing revisions. Each repository will get landing_rev attribute
 
  that defines 'default' revision/branch for generating readme files
 
- Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
 
  earliest possible call.
 
- Import remote svn repositories to mercurial using hgsubversion.
 
- Fixed #508 RhodeCode now has a option to explicitly set forking permissions
 
- RhodeCode can use alternative server for generating avatar icons
 
- implemented repositories locking. Pull locks, push unlocks. Also can be done
 
  via API calls
 
- #538 form for permissions can handle multiple users at once
 

	
 
fixes
 
+++++
 

	
 
- improved translations
 
- fixes issue #455 Creating an archive generates an exception on Windows
 
- fixes #448 Download ZIP archive keeps file in /tmp open and results
 
  in out of disk space
 
- fixes issue #454 Search results under Windows include proceeding
 
  backslash
 
- fixed issue #450. Rhodecode no longer will crash when bad revision is
 
  present in journal data.
 
- fix for issue #417, git execution was broken on windows for certain
 
  commands.
 
- fixed #413. Don't disable .git directory for bare repos on deleting
 
- fixed issue #459. Changed the way of obtaining logger in reindex task.
 
- fixed #453 added ID field in whoosh SCHEMA that solves the issue of
 
  reindexing modified files
 
- fixed #481 rhodecode emails are sent without Date header
 
- fixed #458 wrong count when no repos are present
 
- fixed issue #492 missing `\ No newline at end of file` test at the end of
 
  new chunk in html diff
 
- full text search now works also for commit messages
 

	
 
1.3.6 (**2012-05-17**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- chinese traditional translation
 
- changed setup-app into setup-rhodecode and added arguments for auto-setup
 
  mode that doesn't need user interaction
 

	
 
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
 
- don't clear DB session when CELERY_EAGER is turned ON
 

	
 
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
 
- #419 don't strip passwords for login forms, make rhodecode
 
  more compatible with LDAP servers
 
- Added HTTP_X_FORWARDED_FOR as another method of extracting
 
  IP for pull/push logs. - moved all to base controller
 
- #415: Adding comment to changeset causes reload.
 
  Comments are now added via ajax and doesn't reload the page
 
- #374 LDAP config is discarded when LDAP can't be activated
 
- 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
 
+++++
 

	
 
- fixed dev-version marker for stable when served from source codes
 
- fixed missing permission checks on show forks page
 
- #418 cast to unicode fixes in notification objects
 
- #426 fixed mention extracting regex
 
- 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**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- Whoosh logging is now controlled by the .ini files logging setup
 
- added clone-url into edit form on /settings page
 
- added help text into repo add/edit forms
 
- created rcextensions module with additional mappings (ref #322) and
 
  post push/pull/create repo hooks callbacks
 
- implemented #377 Users view for his own permissions on account page
 
- #399 added inheritance of permissions for user group on repos groups
 
- #401 repository group is automatically pre-selected when adding repos
 
  inside a repository group
 
- added alternative HTTP 403 response when client failed to authenticate. Helps
 
  solving issues with Mercurial and LDAP
 
- #402 removed group prefix from repository name when listing repositories
 
  inside a group
 
- added gravatars into permission view and permissions autocomplete
 
- #347 when running multiple RhodeCode instances, properly invalidates cache
 
  for all registered servers
 

	
 
fixes
 
+++++
 

	
 
- fixed #390 cache invalidation problems on repos inside group
 
- fixed #385 clone by ID url was loosing proxy prefix in URL
 
- fixed some unicode problems with waitress
 
- fixed issue with escaping < and > in changeset commits
 
- fixed error occurring during recursive group creation in API
 
  create_repo function
 
- fixed #393 py2.5 fixes for routes url generator
 
- fixed #397 Private repository groups shows up before login
 
- fixed #396 fixed problems with revoking users in nested groups
 
- fixed mysql unicode issues + specified InnoDB as default engine with
 
  utf8 charset
 
- #406 trim long branch/tag names in changelog to not break UI
 

	
 
1.3.3 (**2012-03-02**)
 
----------------------
 

	
 
news
 
++++
 

	
 

	
 
fixes
 
+++++
 

	
 
- fixed some python2.5 compatibility issues
 
- fixed issues with removed repos was accidentally added as groups, after
 
  full rescan of paths
 
- fixes #376 Cannot edit user (using container auth)
 
- fixes #378 Invalid image urls on changeset screen with proxy-prefix
 
  configuration
 
- fixed initial sorting of repos inside repo group
 
- fixes issue when user tried to resubmit same permission into user/user_groups
 
- bumped beaker version that fixes #375 leap error bug
 
- fixed raw_changeset for git. It was generated with hg patch headers
 
- fixed vcs issue with last_changeset for filenodes
 
- fixed missing commit after hook delete
 
- fixed #372 issues with git operation detection that caused a security issue
 
  for git repos
 

	
 
1.3.2 (**2012-02-28**)
 
----------------------
 

	
 
news
 
++++
 

	
 

	
 
fixes
 
+++++
 

	
 
- fixed git protocol issues with repos-groups
 
- fixed git remote repos validator that prevented from cloning remote git repos
 
- fixes #370 ending slashes fixes for repo and groups
 
- fixes #368 improved git-protocol detection to handle other clients
 
- fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
 
  Moved To Root
 
- fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
 
- fixed #373 missing cascade drop on user_group_to_perm table
 

	
 
1.3.1 (**2012-02-27**)
 
----------------------
 

	
 
news
 
++++
 

	
 

	
 
fixes
 
+++++
 

	
 
- redirection loop occurs when remember-me wasn't checked during login
 
- fixes issues with git blob history generation
 
- don't fetch branch for git in file history dropdown. Causes unneeded slowness
 

	
 
1.3.0 (**2012-02-26**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- code review, inspired by github code-comments
 
- #215 rst and markdown README files support
 
- #252 Container-based and proxy pass-through authentication support
 
- #44 branch browser. Filtering of changelog by branches
 
- mercurial bookmarks support
 
- new hover top menu, optimized to add maximum size for important views
 
- configurable clone url template with possibility to specify  protocol like
 
  ssh:// or http:// and also manually alter other parts of clone_url.
 
- enabled largefiles extension by default
 
- optimized summary file pages and saved a lot of unused space in them
 
- #239 option to manually mark repository as fork
 
- #320 mapping of commit authors to RhodeCode users
 
- #304 hashes are displayed using monospace font
 
- diff configuration, toggle white lines and context lines
 
- #307 configurable diffs, whitespace toggle, increasing context lines
 
- sorting on branches, tags and bookmarks using YUI datatable
 
- improved file filter on files page
 
- implements #330 api method for listing nodes ar particular revision
 
- #73 added linking issues in commit messages to chosen issue tracker url
 
  based on user defined regular expression
 
- added linking of changesets in commit messages
 
- new compact changelog with expandable commit messages
 
- firstname and lastname are optional in user creation
 
- #348 added post-create repository hook
 
- #212 global encoding settings is now configurable from .ini files
 
- #227 added repository groups permissions
 
- markdown gets codehilite extensions
 
- new API methods, delete_repositories, grante/revoke permissions for groups
 
  and repos
 

	
 

	
 
fixes
 
+++++
 

	
 
- rewrote dbsession management for atomic operations, and better error handling
 
- fixed sorting of repo tables
 
- #326 escape of special html entities in diffs
 
- normalized user_name => username in api attributes
 
- fixes #298 ldap created users with mixed case emails created conflicts
 
  on saving a form
 
- fixes issue when owner of a repo couldn't revoke permissions for users
 
  and groups
 
- fixes #271 rare JSON serialization problem with statistics
 
- fixes #337 missing validation check for conflicting names of a group with a
 
  repository group
 
- #340 fixed session problem for mysql and celery tasks
 
- fixed #331 RhodeCode mangles repository names if the a repository group
 
  contains the "full path" to the repositories
 
- #355 RhodeCode doesn't store encrypted LDAP passwords
 

	
 
1.2.5 (**2012-01-28**)
 
----------------------
 

	
 
news
 
++++
 

	
 
fixes
 
+++++
 

	
 
- #340 Celery complains about MySQL server gone away, added session cleanup
 
  for celery tasks
 
- #341 "scanning for repositories in None" log message during Rescan was missing
 
  a parameter
 
- fixed creating archives with subrepos. Some hooks were triggered during that
 
  operation leading to crash.
 
- fixed missing email in account page.
 
- Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
 
  forking on windows impossible
 

	
 
1.2.4 (**2012-01-19**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- RhodeCode is bundled with mercurial series 2.0.X by default, with
 
  full support to largefiles extension. Enabled by default in new installations
 
- #329 Ability to Add/Remove Groups to/from a Repository via AP
 
- added requires.txt file with requirements
 

	
 
fixes
 
+++++
 

	
 
- fixes db session issues with celery when emailing admins
 
- #331 RhodeCode mangles repository names if the a repository group
 
  contains the "full path" to the repositories
 
- #298 Conflicting e-mail addresses for LDAP and RhodeCode users
 
- DB session cleanup after hg protocol operations, fixes issues with
 
  `mysql has gone away` errors
 
- #333 doc fixes for get_repo api function
 
- #271 rare JSON serialization problem with statistics enabled
 
- #337 Fixes issues with validation of repository name conflicting with
 
  a group name. A proper message is now displayed.
 
- #292 made ldap_dn in user edit readonly, to get rid of confusion that field
 
  doesn't work
 
- #316 fixes issues with web description in hgrc files
 

	
 
1.2.3 (**2011-11-02**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- added option to manage repos group for non admin users
 
- added following API methods for get_users, create_user, get_users_groups,
 
  get_users_group, create_users_group, add_user_to_users_groups, get_repos,
 
  get_repo, create_repo, add_user_to_repo
 
- implements #237 added password confirmation for my account
 
  and admin edit user.
 
- implements #291 email notification for global events are now sent to all
 
  administrator users, and global config email.
 

	
 
fixes
 
+++++
 

	
 
- added option for passing auth method for smtp mailer
 
- #276 issue with adding a single user with id>10 to usergroups
 
- #277 fixes windows LDAP settings in which missing values breaks the ldap auth
 
- #288 fixes managing of repos in a group for non admin user
 

	
 
1.2.2 (**2011-10-17**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- #226 repo groups are available by path instead of numerical id
 

	
 
fixes
 
+++++
 

	
 
- #259 Groups with the same name but with different parent group
 
- #260 Put repo in group, then move group to another group -> repo becomes unavailable
 
- #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
 
- #265 ldap save fails sometimes on converting attributes to booleans,
 
  added getter and setter into model that will prevent from this on db model level
 
- fixed problems with timestamps issues #251 and #213
 
- fixes #266 RhodeCode allows to create repo with the same name and in
 
  the same parent as group
 
- fixes #245 Rescan of the repositories on Windows
 
- fixes #248 cannot edit repos inside a group on windows
 
- fixes #219 forking problems on windows
 

	
 
1.2.1 (**2011-10-08**)
 
----------------------
 

	
 
news
 
++++
 

	
 

	
 
fixes
 
+++++
 

	
 
- fixed problems with basic auth and push problems
 
- gui fixes
 
- fixed logger
 

	
 
1.2.0 (**2011-10-07**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- implemented #47 repository groups
 
- implemented #89 Can setup google analytics code from settings menu
 
- implemented #91 added nicer looking archive urls with more download options
 
  like tags, branches
 
- implemented #44 into file browsing, and added follow branch option
 
- implemented #84 downloads can be enabled/disabled for each repository
 
- anonymous repository can be cloned without having to pass default:default
 
  into clone url
 
- fixed #90 whoosh indexer can index chooses repositories passed in command
 
  line
 
- extended journal with day aggregates and paging
 
- implemented #107 source code lines highlight ranges
 
- implemented #93 customizable changelog on combined revision ranges -
 
  equivalent of githubs compare view
 
- implemented #108 extended and more powerful LDAP configuration
 
- implemented #56 user groups
 
- major code rewrites optimized codes for speed and memory usage
 
- raw and diff downloads are now in git format
 
- setup command checks for write access to given path
 
- fixed many issues with international characters and unicode. It uses utf8
 
  decode with replace to provide less errors even with non utf8 encoded strings
 
- #125 added API KEY access to feeds
 
- #109 Repository can be created from external Mercurial link (aka. remote
 
  repository, and manually updated (via pull) from admin panel
 
- beta git support - push/pull server + basic view for git repos
 
- added followers page and forks page
 
- server side file creation (with binary file upload interface)
 
  and edition with commits powered by codemirror
 
- #111 file browser file finder, quick lookup files on whole file tree
 
- added quick login sliding menu into main page
 
- changelog uses lazy loading of affected files details, in some scenarios
 
  this can improve speed of changelog page dramatically especially for
 
  larger repositories.
 
- implements #214 added support for downloading subrepos in download menu.
 
- Added basic API for direct operations on rhodecode via JSON
 
- Implemented advanced hook management
 

	
 
fixes
 
+++++
 

	
 
- fixed file browser bug, when switching into given form revision the url was
 
  not changing
 
- fixed propagation to error controller on simplehg and simplegit middlewares
 
- fixed error when trying to make a download on empty repository
 
- fixed problem with '[' chars in commit messages in journal
 
- fixed #99 Unicode errors, on file node paths with non utf-8 characters
 
- journal fork fixes
 
- removed issue with space inside renamed repository after deletion
 
- fixed strange issue on formencode imports
 
- fixed #126 Deleting repository on Windows, rename used incompatible chars.
 
- #150 fixes for errors on repositories mapped in db but corrupted in
 
  filesystem
 
- fixed problem with ascendant characters in realm #181
 
- fixed problem with sqlite file based database connection pool
 
- whoosh indexer and code stats share the same dynamic extensions map
 
- fixes #188 - relationship delete of repo_to_perm entry on user removal
 
- fixes issue #189 Trending source files shows "show more" when no more exist
 
- fixes issue #197 Relative paths for pidlocks
 
- fixes issue #198 password will require only 3 chars now for login form
 
- fixes issue #199 wrong redirection for non admin users after creating a repository
 
- fixes issues #202, bad db constraint made impossible to attach same group
 
  more than one time. Affects only mysql/postgres
 
- fixes #218 os.kill patch for windows was missing sig param
 
- improved rendering of dag (they are not trimmed anymore when number of
 
  heads exceeds 5)
 

	
 
1.1.8 (**2011-04-12**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- improved windows support
 

	
 
fixes
 
+++++
 

	
 
- fixed #140 freeze of python dateutil library, since new version is python2.x
 
  incompatible
 
- setup-app will check for write permission in given path
 
- cleaned up license info issue #149
 
- fixes for issues #137,#116 and problems with unicode and accented characters.
 
- fixes crashes on gravatar, when passed in email as unicode
 
- fixed tooltip flickering problems
 
- fixed came_from redirection on windows
 
- fixed logging modules, and sql formatters
 
- windows fixes for os.kill issue #133
 
- fixes path splitting for windows issues #148
 
- fixed issue #143 wrong import on migration to 1.1.X
 
- fixed problems with displaying binary files, thanks to Thomas Waldmann
 
- removed name from archive files since it's breaking ui for long repo names
 
- fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
 
- fixed compatibility for 1024px displays, and larger dpi settings, thanks to
 
  Thomas Waldmann
 
- fixed issue #166 summary pager was skipping 10 revisions on second page
 

	
 

	
 
1.1.7 (**2011-03-23**)
 
----------------------
 

	
 
news
 
++++
 

	
 
fixes
 
+++++
 

	
 
- fixed (again) #136 installation support for FreeBSD
 

	
 

	
 
1.1.6 (**2011-03-21**)
 
----------------------
 

	
 
news
 
++++
 

	
 
fixes
 
+++++
 

	
 
- fixed #136 installation support for FreeBSD
 
- RhodeCode will check for python version during installation
 

	
 
1.1.5 (**2011-03-17**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- basic windows support, by exchanging pybcrypt into sha256 for windows only
 
  highly inspired by idea of mantis406
 

	
 
fixes
 
+++++
 

	
 
- fixed sorting by author in main page
 
- fixed crashes with diffs on binary files
 
- fixed #131 problem with boolean values for LDAP
 
- fixed #122 mysql problems thanks to striker69
 
- fixed problem with errors on calling raw/raw_files/annotate functions
 
  with unknown revisions
 
- fixed returned rawfiles attachment names with international character
 
- cleaned out docs, big thanks to Jason Harris
 

	
 
1.1.4 (**2011-02-19**)
 
----------------------
 

	
 
news
 
++++
 

	
 
fixes
 
+++++
 

	
 
- fixed formencode import problem on settings page, that caused server crash
 
  when that page was accessed as first after server start
 
- journal fixes
 
- fixed option to access repository just by entering http://server/<repo_name>
 

	
 
1.1.3 (**2011-02-16**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- implemented #102 allowing the '.' character in username
 
- added option to access repository just by entering http://server/<repo_name>
 
- celery task ignores result for better performance
 

	
 
fixes
 
+++++
 

	
 
- fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
 
  apollo13 and Johan Walles
 
- small fixes in journal
 
- fixed problems with getting setting for celery from .ini files
 
- registration, password reset and login boxes share the same title as main
 
  application now
 
- fixed #113: to high permissions to fork repository
 
- fixed problem with '[' chars in commit messages in journal
 
- removed issue with space inside renamed repository after deletion
 
- db transaction fixes when filesystem repository creation failed
 
- fixed #106 relation issues on databases different than sqlite
 
- fixed static files paths links to use of url() method
 

	
 
1.1.2 (**2011-01-12**)
 
----------------------
 

	
 
news
 
++++
 

	
 

	
 
fixes
 
+++++
 

	
 
- fixes #98 protection against float division of percentage stats
 
- fixed graph bug
 
- forced webhelpers version since it was making troubles during installation
 

	
 
1.1.1 (**2011-01-06**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- added force https option into ini files for easier https usage (no need to
 
  set server headers with this options)
 
- small css updates
 

	
 
fixes
 
+++++
 

	
 
- fixed #96 redirect loop on files view on repositories without changesets
 
- fixed #97 unicode string passed into server header in special cases (mod_wsgi)
 
  and server crashed with errors
 
- fixed large tooltips problems on main page
 
- fixed #92 whoosh indexer is more error proof
 

	
 
1.1.0 (**2010-12-18**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- rewrite of internals for vcs >=0.1.10
 
- uses mercurial 1.7 with dotencode disabled for maintaining compatibility
 
  with older clients
 
- anonymous access, authentication via ldap
 
- performance upgrade for cached repos list - each repository has its own
 
  cache that's invalidated when needed.
 
- performance upgrades on repositories with large amount of commits (20K+)
 
- main page quick filter for filtering repositories
 
- user dashboards with ability to follow chosen repositories actions
 
- sends email to admin on new user registration
 
- added cache/statistics reset options into repository settings
 
- more detailed action logger (based on hooks) with pushed changesets lists
 
  and options to disable those hooks from admin panel
 
- introduced new enhanced changelog for merges that shows more accurate results
 
- new improved and faster code stats (based on pygments lexers mapping tables,
 
  showing up to 10 trending sources for each repository. Additionally stats
 
  can be disabled in repository settings.
 
- gui optimizations, fixed application width to 1024px
 
- added cut off (for large files/changesets) limit into config files
 
- whoosh, celeryd, upgrade moved to paster command
 
- other than sqlite database backends can be used
 

	
 
fixes
 
+++++
 

	
 
- fixes #61 forked repo was showing only after cache expired
 
- fixes #76 no confirmation on user deletes
 
- fixes #66 Name field misspelled
 
- fixes #72 block user removal when he owns repositories
 
- fixes #69 added password confirmation fields
 
- fixes #87 RhodeCode crashes occasionally on updating repository owner
 
- fixes #82 broken annotations on files with more than 1 blank line at the end
 
- a lot of fixes and tweaks for file browser
 
- fixed detached session issues
 
- fixed when user had no repos he would see all repos listed in my account
 
- fixed ui() instance bug when global hgrc settings was loaded for server
 
  instance and all hgrc options were merged with our db ui() object
 
- numerous small bugfixes
 

	
 
(special thanks for TkSoh for detailed feedback)
 

	
 

	
 
1.0.2 (**2010-11-12**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- tested under python2.7
docs/setup.rst
Show inline comments
 
.. _setup:
 

	
 
=====
 
Setup
 
=====
 

	
 

	
 
Setting up RhodeCode
 
--------------------
 

	
 
First, you will need to create a RhodeCode configuration file. Run the
 
following command to do this::
 

	
 
    paster make-config RhodeCode production.ini
 

	
 
- This will create the file `production.ini` in the current directory. This
 
  configuration file contains the various settings for RhodeCode, e.g proxy
 
  port, email settings, usage of static files, cache, celery settings and
 
  logging.
 

	
 

	
 
Next, you need to create the databases used by RhodeCode. I recommend that you
 
use postgresql or sqlite (default). If you choose a database other than the
 
default ensure you properly adjust the db url in your production.ini
 
configuration file to use this other database. RhodeCode currently supports
 
postgresql, sqlite and mysql databases. Create the database by running
 
the following command::
 

	
 
    paster setup-rhodecode production.ini
 

	
 
This will prompt you for a "root" path. This "root" path is the location where
 
RhodeCode will store all of its repositories on the current machine. After
 
entering this "root" path ``setup-rhodecode`` will also prompt you for a username
 
and password for the initial admin account which ``setup-rhodecode`` sets
 
up for you.
 

	
 
setup process can be fully automated, example for lazy::
 

	
 
    paster setup-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
 

	
 

	
 
- The ``setup-rhodecode`` command will create all of the needed tables and an
 
  admin account. When choosing a root path you can either use a new empty
 
  location, or a location which already contains existing repositories. If you
 
  choose a location which contains existing repositories RhodeCode will simply
 
  add all of the repositories at the chosen location to it's database.
 
  (Note: make sure you specify the correct path to the root).
 
- Note: the given path for mercurial_ repositories **must** be write accessible
 
  for the application. It's very important since the RhodeCode web interface
 
  will work without write access, but when trying to do a push it will
 
  eventually fail with permission denied errors unless it has write access.
 

	
 
You are now ready to use RhodeCode, to run it simply execute::
 

	
 
    paster serve production.ini
 

	
 
- This command runs the RhodeCode server. The web app should be available at the
 
  127.0.0.1:5000. This ip and port is configurable via the production.ini
 
  file created in previous step
 
- Use the admin account you created above when running ``setup-rhodecode``
 
  to login to the web app.
 
- The default permissions on each repository is read, and the owner is admin.
 
  Remember to update these if needed.
 
- In the admin panel you can toggle ldap, anonymous, permissions settings. As
 
  well as edit more advanced options on users and repositories
 

	
 
Optionally users can create `rcextensions` package that extends RhodeCode
 
functionality. To do this simply execute::
 

	
 
    paster make-rcext production.ini
 

	
 
This will create `rcextensions` package in the same place that your `ini` file
 
lives. With `rcextensions` it's possible to add additional mapping for whoosh,
 
stats and add additional code into the push/pull/create/delete repo hooks.
 
For example for sending signals to build-bots such as jenkins.
 
Please see the `__init__.py` file inside `rcextensions` package
 
for more details.
 

	
 

	
 
Using RhodeCode with SSH
 
------------------------
 

	
 
RhodeCode currently only hosts repositories using http and https. (The addition
 
of ssh hosting is a planned future feature.) However you can easily use ssh in
 
parallel with RhodeCode. (Repository access via ssh is a standard "out of
 
the box" feature of mercurial_ and you can use this to access any of the
 
repositories that RhodeCode is hosting. See PublishingRepositories_)
 

	
 
RhodeCode repository structures are kept in directories with the same name
 
as the project. When using repository groups, each group is a subdirectory.
 
This allows you to easily use ssh for accessing repositories.
 

	
 
In order to use ssh you need to make sure that your web-server and the users
 
login accounts have the correct permissions set on the appropriate directories.
 
(Note that these permissions are independent of any permissions you have set up
 
using the RhodeCode web interface.)
 

	
 
If your main directory (the same as set in RhodeCode settings) is for example
 
set to **/home/hg** and the repository you are using is named `rhodecode`, then
 
to clone via ssh you should run::
 

	
 
    hg clone ssh://user@server.com/home/hg/rhodecode
 

	
 
Using other external tools such as mercurial-server_ or using ssh key based
 
authentication is fully supported.
 

	
 
Note: In an advanced setup, in order for your ssh access to use the same
 
permissions as set up via the RhodeCode web interface, you can create an
 
authentication hook to connect to the rhodecode db and runs check functions for
 
permissions against that.
 

	
 
Setting up Whoosh full text search
 
----------------------------------
 

	
 
Starting from version 1.1 the whoosh index can be build by using the paster
 
command ``make-index``. To use ``make-index`` you must specify the configuration
 
file that stores the location of the index. You may specify the location of the
 
repositories (`--repo-location`).  If not specified, this value is retrieved
 
from the RhodeCode database.  This was required prior to 1.2.  Starting from
 
version 1.2 it is also possible to specify a comma separated list of
 
repositories (`--index-only`) to build index only on chooses repositories
 
skipping any other found in repos location
 

	
 
You may optionally pass the option `-f` to enable a full index rebuild. Without
 
the `-f` option, indexing will run always in "incremental" mode.
 

	
 
For an incremental index build use::
 

	
 
    paster make-index production.ini
 

	
 
For a full index rebuild use::
 

	
 
    paster make-index production.ini -f
 

	
 

	
 
building index just for chosen repositories is possible with such command::
 

	
 
 paster make-index production.ini --index-only=vcs,rhodecode
 

	
 

	
 
In order to do periodical index builds and keep your index always up to date.
 
It's recommended to do a crontab entry for incremental indexing.
 
An example entry might look like this::
 

	
 
    /path/to/python/bin/paster make-index /path/to/rhodecode/production.ini
 

	
 
When using incremental mode (the default) whoosh will check the last
 
modification date of each file and add it to be reindexed if a newer file is
 
available. The indexing daemon checks for any removed files and removes them
 
from index.
 

	
 
If you want to rebuild index from scratch, you can use the `-f` flag as above,
 
or in the admin panel you can check `build from scratch` flag.
 

	
 

	
 
Setting up LDAP support
 
-----------------------
 

	
 
RhodeCode starting from version 1.1 supports ldap authentication. In order
 
to use LDAP, you have to install the python-ldap_ package. This package is
 
available via pypi, so you can install it by running
 

	
 
using easy_install::
 

	
 
    easy_install python-ldap
 

	
 
using pip::
 

	
 
    pip install python-ldap
 

	
 
.. note::
 
   python-ldap requires some certain libs on your system, so before installing
 
   it check that you have at least `openldap`, and `sasl` libraries.
 

	
 
LDAP settings are located in admin->ldap section,
 

	
 
Here's a typical ldap setup::
 

	
 
 Connection settings
 
 Enable LDAP          = checked
 
 Host                 = host.example.org
 
 Port                 = 389
 
 Account              = <account>
 
 Password             = <password>
 
 Connection Security  = LDAPS connection
 
 Certificate Checks   = DEMAND
 

	
 
 Search settings
 
 Base DN              = CN=users,DC=host,DC=example,DC=org
 
 LDAP Filter          = (&(objectClass=user)(!(objectClass=computer)))
 
 LDAP Search Scope    = SUBTREE
 

	
 
 Attribute mappings
 
 Login Attribute      = uid
 
 First Name Attribute = firstName
 
 Last Name Attribute  = lastName
 
 E-mail Attribute     = mail
 

	
 
.. _enable_ldap:
 

	
 
Enable LDAP : required
 
    Whether to use LDAP for authenticating users.
 

	
 
.. _ldap_host:
 

	
 
Host : required
 
    LDAP server hostname or IP address. Can be also a comma separated
 
    list of servers to support LDAP fail-over.
 

	
 
.. _Port:
 

	
 
Port : required
 
    389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
 

	
 
.. _ldap_account:
 

	
 
Account : optional
 
    Only required if the LDAP server does not allow anonymous browsing of
 
    records.  This should be a special account for record browsing.  This
 
    will require `LDAP Password`_ below.
 

	
 
.. _LDAP Password:
 

	
 
Password : optional
 
    Only required if the LDAP server does not allow anonymous browsing of
 
    records.
 

	
 
.. _Enable LDAPS:
 

	
 
Connection Security : required
 
    Defines the connection to LDAP server
 

	
 
    No encryption
 
        Plain non encrypted connection
 

	
 
    LDAPS connection
 
        Enable ldaps connection. It will likely require `Port`_ to be set to
 
        a different value (standard LDAPS port is 636). When LDAPS is enabled
 
        then `Certificate Checks`_ is required.
 

	
 
    START_TLS on LDAP connection
 
        START TLS connection
 

	
 
.. _Certificate Checks:
 

	
 
Certificate Checks : optional
 
    How SSL certificates verification is handled - this is only useful when
 
    `Enable LDAPS`_ is enabled.  Only DEMAND or HARD offer full SSL security
 
    while the other options are susceptible to man-in-the-middle attacks.  SSL
 
    certificates can be installed to /etc/openldap/cacerts so that the
 
    DEMAND or HARD options can be used with self-signed certificates or
 
    certificates that do not have traceable certificates of authority.
 

	
 
    NEVER
 
        A serve certificate will never be requested or checked.
 

	
 
    ALLOW
 
        A server certificate is requested.  Failure to provide a
 
        certificate or providing a bad certificate will not terminate the
 
        session.
 

	
 
    TRY
 
        A server certificate is requested.  Failure to provide a
 
        certificate does not halt the session; providing a bad certificate
 
        halts the session.
 

	
 
    DEMAND
 
        A server certificate is requested and must be provided and
 
        authenticated for the session to proceed.
 

	
 
    HARD
 
        The same as DEMAND.
 

	
 
.. _Base DN:
 

	
 
Base DN : required
 
    The Distinguished Name (DN) where searches for users will be performed.
 
    Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
 

	
 
.. _LDAP Filter:
 

	
 
LDAP Filter : optional
 
    A LDAP filter defined by RFC 2254.  This is more useful when `LDAP
 
    Search Scope`_ is set to SUBTREE.  The filter is useful for limiting
 
    which LDAP objects are identified as representing Users for
 
    authentication.  The filter is augmented by `Login Attribute`_ below.
 
    This can commonly be left blank.
 

	
 
.. _LDAP Search Scope:
 

	
 
LDAP Search Scope : required
 
    This limits how far LDAP will search for a matching object.
 

	
 
    BASE
 
        Only allows searching of `Base DN`_ and is usually not what you
 
        want.
 

	
 
    ONELEVEL
 
        Searches all entries under `Base DN`_, but not Base DN itself.
 

	
 
    SUBTREE
 
        Searches all entries below `Base DN`_, but not Base DN itself.
 
        When using SUBTREE `LDAP Filter`_ is useful to limit object
 
        location.
 

	
 
.. _Login Attribute:
 

	
 
Login Attribute : required
 
    The LDAP record attribute that will be matched as the USERNAME or
 
    ACCOUNT used to connect to RhodeCode.  This will be added to `LDAP
 
    Filter`_ for locating the User object.  If `LDAP Filter`_ is specified as
 
    "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
 
    connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
 
    ::
 

	
 
        (&(LDAPFILTER)(uid=jsmith))
 

	
 
.. _ldap_attr_firstname:
 

	
 
First Name Attribute : required
 
    The LDAP record attribute which represents the user's first name.
 

	
 
.. _ldap_attr_lastname:
 

	
 
Last Name Attribute : required
 
    The LDAP record attribute which represents the user's last name.
 

	
 
.. _ldap_attr_email:
 

	
 
Email Attribute : required
 
    The LDAP record attribute which represents the user's email address.
 

	
 
If all data are entered correctly, and python-ldap_ is properly installed
 
users should be granted access to RhodeCode with ldap accounts.  At this
 
time user information is copied from LDAP into the RhodeCode user database.
 
This means that updates of an LDAP user object may not be reflected as a
 
user update in RhodeCode.
 

	
 
If You have problems with LDAP access and believe You entered correct
 
information check out the RhodeCode logs, any error messages sent from LDAP
 
will be saved there.
 

	
 
Active Directory
 
''''''''''''''''
 

	
 
RhodeCode can use Microsoft Active Directory for user authentication.  This
 
is done through an LDAP or LDAPS connection to Active Directory.  The
 
following LDAP configuration settings are typical for using Active
 
Directory ::
 

	
 
 Base DN              = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
 
 Login Attribute      = sAMAccountName
 
 First Name Attribute = givenName
 
 Last Name Attribute  = sn
 
 E-mail Attribute     = mail
 

	
 
All other LDAP settings will likely be site-specific and should be
 
appropriately configured.
 

	
 

	
 
Authentication by container or reverse-proxy
 
--------------------------------------------
 

	
 
Starting with version 1.3, RhodeCode supports delegating the authentication
 
of users to its WSGI container, or to a reverse-proxy server through which all
 
clients access the application.
 

	
 
When these authentication methods are enabled in RhodeCode, it uses the
 
username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
 
perform the authentication itself. The authorization, however, is still done by
 
RhodeCode according to its settings.
 

	
 
When a user logs in for the first time using these authentication methods,
 
a matching user account is created in RhodeCode with default permissions. An
 
administrator can then modify it using RhodeCode's admin interface.
 
It's also possible for an administrator to create accounts and configure their
 
permissions before the user logs in for the first time.
 

	
 
Container-based authentication
 
''''''''''''''''''''''''''''''
 

	
 
In a container-based authentication setup, RhodeCode reads the user name from
 
the ``REMOTE_USER`` server variable provided by the WSGI container.
 

	
 
After setting up your container (see `Apache's WSGI config`_), you'd need
 
to configure it to require authentication on the location configured for
 
RhodeCode.
 

	
 
In order for RhodeCode to start using the provided username, you should set the
 
following in the [app:main] section of your .ini file::
 

	
 
    container_auth_enabled = true
 

	
 

	
 
Proxy pass-through authentication
 
'''''''''''''''''''''''''''''''''
 

	
 
In a proxy pass-through authentication setup, RhodeCode reads the user name
 
from the ``X-Forwarded-User`` request header, which should be configured to be
 
sent by the reverse-proxy server.
 

	
 
After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
 
`Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
 
configure the authentication and add the username in a request header named
 
``X-Forwarded-User``.
 

	
 
For example, the following config section for Apache sets a subdirectory in a
 
reverse-proxy setup with basic auth::
 

	
 
    <Location /<someprefix> >
 
      ProxyPass http://127.0.0.1:5000/<someprefix>
 
      ProxyPassReverse http://127.0.0.1:5000/<someprefix>
 
      SetEnvIf X-Url-Scheme https HTTPS=1
 

	
 
      AuthType Basic
 
      AuthName "RhodeCode authentication"
 
      AuthUserFile /home/web/rhodecode/.htpasswd
 
      require valid-user
 

	
 
      RequestHeader unset X-Forwarded-User
 

	
 
      RewriteEngine On
 
      RewriteCond %{LA-U:REMOTE_USER} (.+)
 
      RewriteRule .* - [E=RU:%1]
 
      RequestHeader set X-Forwarded-User %{RU}e
 
    </Location>
 

	
 
In order for RhodeCode to start using the forwarded username, you should set
 
the following in the [app:main] section of your .ini file::
 

	
 
    proxypass_auth_enabled = true
 

	
 
.. note::
 
   If you enable proxy pass-through authentication, make sure your server is
 
   only accessible through the proxy. Otherwise, any client would be able to
 
   forge the authentication header and could effectively become authenticated
 
   using any account of their liking.
 

	
 
Integration with Issue trackers
 
-------------------------------
 

	
 
RhodeCode provides a simple integration with issue trackers. It's possible
 
to define a regular expression that will fetch issue id stored in commit
 
messages and replace that with an url to this issue. To enable this simply
 
uncomment following variables in the ini file::
 

	
 
    url_pat = (?:^#|\s#)(\w+)
 
    issue_server_link = https://myissueserver.com/{repo}/issue/{id}
 
    issue_prefix = #
 

	
 
`url_pat` is the regular expression that will fetch issues from commit messages.
 
Default regex will match issues in format of #<number> eg. #300.
 

	
 
Matched issues will be replace with the link specified as `issue_server_link`
 
{id} will be replaced with issue id, and {repo} with repository name.
 
Since the # is striped `issue_prefix` is added as a prefix to url.
 
`issue_prefix` can be something different than # if you pass
 
ISSUE- as issue prefix this will generate an url in format::
 

	
 
  <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
 

	
 
Hook management
 
---------------
 

	
 
Hooks can be managed in similar way to this used in .hgrc files.
 
To access hooks setting click `advanced setup` on Hooks section of Mercurial
 
Settings in Admin.
 

	
 
There are 4 built in hooks that cannot be changed (only enable/disable by
 
checkboxes on previos section).
 
To add another custom hook simply fill in first section with
 
<name>.<hook_type> and the second one with hook path. Example hooks
 
can be found at *rhodecode.lib.hooks*.
 

	
 

	
 
Changing default encoding
 
-------------------------
 

	
 
By default RhodeCode uses utf8 encoding, starting from 1.3 series this
 
can be changed, simply edit default_encoding in .ini file to desired one.
 
This affects many parts in rhodecode including commiters names, filenames,
 
This affects many parts in rhodecode including committers names, filenames,
 
encoding of commit messages. In addition RhodeCode can detect if `chardet`
 
library is installed. If `chardet` is detected RhodeCode will fallback to it
 
when there are encode/decode errors.
 

	
 

	
 
Setting Up Celery
 
-----------------
 

	
 
Since version 1.1 celery is configured by the rhodecode ini configuration files.
 
Simply set use_celery=true in the ini file then add / change the configuration
 
variables inside the ini file.
 

	
 
Remember that the ini files use the format with '.' not with '_' like celery.
 
So for example setting `BROKER_HOST` in celery means setting `broker.host` in
 
the config file.
 

	
 
In order to start using celery run::
 

	
 
 paster celeryd <configfile.ini>
 

	
 

	
 
.. note::
 
   Make sure you run this command from the same virtualenv, and with the same
 
   user that rhodecode runs.
 

	
 
HTTPS support
 
-------------
 

	
 
There are two ways to enable https:
 

	
 
- Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
 
  recognize this headers and make proper https redirections
 
- Alternatively, change the `force_https = true` flag in the ini configuration
 
  to force using https, no headers are needed than to enable https
 

	
 

	
 
Nginx virtual host example
 
--------------------------
 

	
 
Sample config for nginx using proxy::
 

	
 
    upstream rc {
 
        server 127.0.0.1:5000;
 
        # add more instances for load balancing
 
        #server 127.0.0.1:5001;
 
        #server 127.0.0.1:5002;
 
    }
 

	
 
    server {
 
       listen          443;
 
       server_name     rhodecode.myserver.com;
 
       access_log      /var/log/nginx/rhodecode.access.log;
 
       error_log       /var/log/nginx/rhodecode.error.log;
 

	
 
       ssl on;
 
       ssl_certificate     rhodecode.myserver.com.crt;
 
       ssl_certificate_key rhodecode.myserver.com.key;
 

	
 
       ssl_session_timeout 5m;
 

	
 
       ssl_protocols SSLv3 TLSv1;
 
       ssl_ciphers DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:EDH-RSA-DES-CBC3-SHA:AES256-SHA:DES-CBC3-SHA:AES128-SHA:RC4-SHA:RC4-MD5;
 
       ssl_prefer_server_ciphers on;
 

	
 
       # uncomment if you have nginx with chunking module compiled
 
       # fixes the issues of having to put postBuffer data for large git
 
       # pushes
 
       #chunkin on;
 
       #error_page 411 = @my_411_error;
 
       #location @my_411_error {
 
       #    chunkin_resume;
 
       #}
 

	
 
       # uncomment if you want to serve static files by nginx
 
       #root /path/to/installation/rhodecode/public;
 

	
 
       location / {
 
            try_files $uri @rhode;
 
       }
 

	
 
       location @rhode {
 
            proxy_pass      http://rc;
 
            include         /etc/nginx/proxy.conf;
 
       }
 

	
 
    }
 

	
 
Here's the proxy.conf. It's tuned so it will not timeout on long
 
pushes or large pushes::
 

	
 
    proxy_redirect              off;
 
    proxy_set_header            Host $host;
 
    proxy_set_header            X-Url-Scheme $scheme;
 
    proxy_set_header            X-Host $http_host;
 
    proxy_set_header            X-Real-IP $remote_addr;
 
    proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
 
    proxy_set_header            Proxy-host $proxy_host;
 
    client_max_body_size        400m;
 
    client_body_buffer_size     128k;
 
    proxy_buffering             off;
 
    proxy_connect_timeout       7200;
 
    proxy_send_timeout          7200;
 
    proxy_read_timeout          7200;
 
    proxy_buffers               8 32k;
 

	
 
Also, when using root path with nginx you might set the static files to false
 
in the production.ini file::
 

	
 
    [app:main]
 
      use = egg:rhodecode
 
      full_stack = true
 
      static_files = false
 
      lang=en
 
      cache_dir = %(here)s/data
 

	
 
In order to not have the statics served by the application. This improves speed.
 

	
 

	
 
Apache virtual host reverse proxy example
 
-----------------------------------------
 

	
 
Here is a sample configuration file for apache using proxy::
 

	
 
    <VirtualHost *:80>
 
            ServerName hg.myserver.com
 
            ServerAlias hg.myserver.com
 

	
 
            <Proxy *>
 
              Order allow,deny
 
              Allow from all
 
            </Proxy>
 

	
 
            #important !
 
            #Directive to properly generate url (clone url) for pylons
 
            ProxyPreserveHost On
 

	
 
            #rhodecode instance
 
            ProxyPass / http://127.0.0.1:5000/
 
            ProxyPassReverse / http://127.0.0.1:5000/
 

	
 
            #to enable https use line below
 
            #SetEnvIf X-Url-Scheme https HTTPS=1
 

	
 
    </VirtualHost>
 

	
 

	
 
Additional tutorial
 
http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
 

	
 

	
 
Apache as subdirectory
 
----------------------
 

	
 
Apache subdirectory part::
 

	
 
    <Location /<someprefix> >
 
      ProxyPass http://127.0.0.1:5000/<someprefix>
 
      ProxyPassReverse http://127.0.0.1:5000/<someprefix>
 
      SetEnvIf X-Url-Scheme https HTTPS=1
 
    </Location>
 

	
 
Besides the regular apache setup you will need to add the following line
 
into [app:main] section of your .ini file::
 

	
 
    filter-with = proxy-prefix
 

	
 
Add the following at the end of the .ini file::
 

	
 
    [filter:proxy-prefix]
 
    use = egg:PasteDeploy#prefix
 
    prefix = /<someprefix>
 

	
 

	
 
then change <someprefix> into your choosen prefix
 

	
 
Apache's WSGI config
 
--------------------
 

	
 
Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
 
that, you'll need to:
 

	
 
- Install mod_wsgi. If using a Debian-based distro, you can install
 
  the package libapache2-mod-wsgi::
 

	
 
    aptitude install libapache2-mod-wsgi
 

	
 
- Enable mod_wsgi::
 

	
 
    a2enmod wsgi
 

	
 
- Create a wsgi dispatch script, like the one below. Make sure you
 
  check the paths correctly point to where you installed RhodeCode
 
  and its Python Virtual Environment.
 
- Enable the WSGIScriptAlias directive for the wsgi dispatch script,
 
  as in the following example. Once again, check the paths are
 
  correctly specified.
 

	
 
Here is a sample excerpt from an Apache Virtual Host configuration file::
 

	
 
    WSGIDaemonProcess pylons \
 
        threads=4 \
 
        python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
 
    WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
 
    WSGIPassAuthorization On
 

	
 
.. note::
 
   when running apache as root please add: `user=www-data group=www-data`
 
   into above configuration
 

	
 
.. note::
 
   Running RhodeCode in multiprocess mode in apache is not supported,
 
   make sure you don't specify `processes=num` directive in the config
 

	
 

	
 
Example wsgi dispatch script::
 

	
 
    import os
 
    os.environ["HGENCODING"] = "UTF-8"
 
    os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
 

	
 
    # sometimes it's needed to set the curent dir
 
    os.chdir('/home/web/rhodecode/')
 

	
 
    import site
 
    site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
 

	
 
    from paste.deploy import loadapp
 
    from paste.script.util.logging_config import fileConfig
 

	
 
    fileConfig('/home/web/rhodecode/production.ini')
 
    application = loadapp('config:/home/web/rhodecode/production.ini')
 

	
 
Note: when using mod_wsgi you'll need to install the same version of
 
Mercurial that's inside RhodeCode's virtualenv also on the system's Python
 
environment.
 

	
 

	
 
Other configuration files
 
-------------------------
 

	
 
Some example init.d scripts can be found in init.d directory::
 

	
 
  https://secure.rhodecode.org/rhodecode/files/beta/init.d
 

	
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv
 
.. _python: http://www.python.org/
 
.. _mercurial: http://mercurial.selenic.com/
 
.. _celery: http://celeryproject.org/
 
.. _rabbitmq: http://www.rabbitmq.com/
 
.. _python-ldap: http://www.python-ldap.org/
 
.. _mercurial-server: http://www.lshift.net/mercurial-server.html
 
.. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
 
.. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
 
.. _google group rhodecode: http://groups.google.com/group/rhodecode
rhodecode/i18n/en/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -2965,1340 +2965,1340 @@ msgstr ""
 
#: rhodecode/templates/base/base.html:41
 
msgid "Submit a bug"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:76
 
msgid "Not logged in"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:83
 
msgid "Login to your account"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:106
 
msgid "Forgot password ?"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:113
 
msgid "Log In"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:124
 
msgid "Inbox"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:129
 
#: rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
msgid "repository settings"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
msgid "open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:221
 
msgid "compare fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:229
 
msgid "lock"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:245
 
msgid "defaults"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr ""
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
msgid "Compare branches"
 
msgstr ""
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
msgid "Compare"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgid "Clear selection"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
msgid "Compare fork with parent"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr ""
 

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

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

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:94
 
msgid "removed"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:5
 
#: rhodecode/templates/changeset/changeset.html:95
 
msgid "changed"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, python-format
 
msgid "%s Changeset"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
msgid "No children"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
msgid "patch diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, python-format
 
msgid "Status from pull request %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, python-format
 
msgid "Comment from pull request %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "change status"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
msgid "Show combined compare"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr ""
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
msgid "No changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
msgid "No files"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
msgid "New status$"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
msgid "This is a notification from RhodeCode."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
msgid "title"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
msgid "description"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
msgid "View this pull request here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
msgid "New status"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
msgid "A new user have registered in RhodeCode"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, python-format
 
msgid "%s File diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, python-format
 
msgid "%s files"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
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:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
msgid "diff to revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
#, fuzzy
 
msgid "show at revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
msgid "show full history"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, fuzzy, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
msgid "Load file history"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, python-format
 
msgid "edit on branch:%s"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr ""
 

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

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

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, python-format
 
msgid "%s Followers"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following -"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
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:21
 
msgid "Compare fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
msgid "ATOM journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
msgid "RSS journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
msgid "ATOM public journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
msgid "RSS public journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
msgid "Detailed compare view"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "owner"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
msgid "Create new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
msgid "Status"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
msgid "Origin repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
msgid "Created on"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
msgid "Compare view"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
#, fuzzy
 
msgid "reviewer"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
msgid "Search in all repositories"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:64
 
msgid "Commit messages"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr ""
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, python-format
 
msgid "%s Settings"
 
msgstr ""
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
msgid "Delete repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
msgid "Remove repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, python-format
 
msgid "%s Shortlog"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, python-format
 
msgid "Repository locked by %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
msgid "Repository unlocked"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
msgid "Download as zip"
 
msgstr ""
 

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

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

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

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr ""
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr ""
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
msgid "Compare tags"
 
msgstr ""
 

	
rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -3104,1346 +3104,1346 @@ msgstr "Connexion"
 
#: rhodecode/templates/base/base.html:124
 
msgid "Inbox"
 
msgstr "Boîte de réception"
 

	
 
#: rhodecode/templates/base/base.html:129
 
#: rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "Historique"
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr "Se déconnecter"
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr "Aller au dépôt"
 

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

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr "Chargement…"
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr "Résumé"
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr "Historique"
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr "Aller"
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr "Fichiers"
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr "Options"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
msgid "repository settings"
 
msgstr "Réglages de dépôt"
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "Fork"
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
#, fuzzy
 
msgid "open new pull request"
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/base/base.html:221
 
#, fuzzy
 
msgid "compare fork"
 
msgstr "Comparer le fork"
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr "Rechercher"
 

	
 
#: rhodecode/templates/base/base.html:229
 
msgid "lock"
 
msgstr "Verrouiller"
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr "Groupes de dépôts"
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr "Groupes d’utilisateurs"
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr "Permissions"
 

	
 
#: rhodecode/templates/base/base.html:245
 
#, fuzzy
 
msgid "defaults"
 
msgstr "[Par défaut]"
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr "Réglages"
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr "Followers"
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr "Forks"
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "Rechercher"
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "Nouveau commentaire"
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr "Arrêter de suivre ce dépôt"
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr "Suivre ce dépôt"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "Groupe"
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr "Résultats tronqués"
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr "Aucun fichier ne correspond"
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/base/root.html:51
 
#, fuzzy
 
msgid "Open new pull request for selected changesets"
 
msgstr "a ouvert une nouvelle requête de pull"
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr "Afficher les changements sélections de __S à __E"
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr "Lien vers la sélection"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr "Signets de %s"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr "Auteur"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr "Révision"
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr "Branches de %s"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
msgid "Compare branches"
 
msgstr "Comparer les branches"
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
msgid "Compare"
 
msgstr "Comparer"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr "Historique de %s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] "Affichage de %d révision sur %d"
 
msgstr[1] "Affichage de %d révisions sur %d"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
#, fuzzy
 
msgid "Clear selection"
 
msgstr "Réglages de recherche"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr "Comparer le fork avec %s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#, fuzzy
 
msgid "Compare fork with parent"
 
msgstr "Comparer le fork avec %s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr "Afficher"
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr "montrer plus"
 

	
 
#: rhodecode/templates/changelog/changelog.html:78
 
msgid "Affected number of files, click to show more details"
 
msgstr "Nombre de fichiers modifiés, cliquez pour plus de détails"
 

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr "Statut du changeset"
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr "Cliquez ici pour ouvrir la requête de pull associée #%s."
 

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

	
 
#: rhodecode/templates/changelog/changelog.html:110
 
#: rhodecode/templates/changeset/changeset.html:42
 
msgid "No parents"
 
msgstr "Aucun parent"
 

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr "Fusion"
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "Branche"
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr "Signet"
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr "Tag"
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr "Il n’y a aucun changement pour le moment"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:94
 
msgid "removed"
 
msgstr "Supprimés"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:5
 
#: rhodecode/templates/changeset/changeset.html:95
 
msgid "changed"
 
msgstr "Modifiés"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr "Ajoutés"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr "%s fichiers affectés"
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, python-format
 
msgid "%s Changeset"
 
msgstr "Changeset de %s"
 

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

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
#, fuzzy
 
msgid "No children"
 
msgstr "Appliquer aux enfants"
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr "Diff brut"
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
#, fuzzy
 
msgid "patch diff"
 
msgstr "Diff brut"
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr "Télécharger le diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "%d commentaire"
 
msgstr[1] "%d commentaires"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] "(et %d en ligne)"
 
msgstr[1] "(et %d en ligne)"
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, fuzzy, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] "%s fichié modifié"
 
msgstr[1] "%s fichié modifié"
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, fuzzy, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] "%s fichiers affectés avec %s insertions et %s suppressions"
 
msgstr[1] "%s fichiers affectés avec %s insertions et %s suppressions"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, python-format
 
msgid "Status from pull request %s"
 
msgstr "Requêtes de pull %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, python-format
 
msgid "Comment from pull request %s"
 
msgstr "[a commenté] la requête de pull pour %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr "Envoi…"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr "Commentaire sur la ligne {1}."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 
"Les commentaires sont analysés avec la syntaxe %s, avec le support de la "
 
"commande %s."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 
"Utilisez @nomutilisateur dans ce texte pour envoyer une notification à "
 
"l’utilisateur RhodeCode en question."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr "Commentaire"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr "Masquer"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr "Vous devez être connecté pour poster des commentaires."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr "Se connecter maintenant"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr "Laisser un commentaire"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr "Cochez pour changer le statut de la relecture de code pour ce changeset"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "change status"
 
msgstr "Modifier le statut"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr "Commenter et fermer"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr "Changesets de %s"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "Comparaison"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#, fuzzy
 
msgid "Show combined compare"
 
msgstr "Afficher les commentaires"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
msgid "Files affected"
 
msgstr "Fichiers affectés"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr "Afficher les commentaires"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
msgid "No changesets"
 
msgstr "Aucun changeset"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, fuzzy, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] "Afficher %s les commentaires"
 
msgstr[1] "Afficher %s les commentaires"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
#, fuzzy
 
msgid "No files"
 
msgstr "Fichiers"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr "Fork"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr "Dépôt Mercurial"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr "Dépôt Git"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr "Dépôt public"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr "Fork de"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr "Dépôt vide"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "S’abonner au flux RSS de %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "S’abonner au flux ATOM de %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "Voulez-vous vraiment supprimer le dépôt %s ?"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr "Voulez-vous vraiment supprimer l’utilisateur « %s » ?"
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
#, fuzzy
 
msgid "New status$"
 
msgstr "Modifier le statut"
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
#, fuzzy
 
msgid "This is a notification from RhodeCode."
 
msgstr "Ceci est une notification de RhodeCode."
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
#, fuzzy
 
msgid "title"
 
msgstr "Titre"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
msgid "description"
 
msgstr "Description"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
#, fuzzy
 
msgid "View this pull request here"
 
msgstr "Ajouter un relecteur à cette requête de pull."
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, fuzzy, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
#, fuzzy
 
msgid "New status"
 
msgstr "Modifier le statut"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
#, fuzzy
 
msgid "A new user have registered in RhodeCode"
 
msgstr "Vous vous êtes inscrits avec succès à RhodeCode"
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr ""
 

	
 
#: rhodecode/templates/errors/error_document.html:46
 
#, python-format
 
msgid "You will be redirected to %s in %s seconds"
 
msgstr "Vous serez redirigé vers %s dans %s secondes."
 

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, python-format
 
msgid "%s File diff"
 
msgstr "Diff de fichier de %s"
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "Diff de fichier"
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, python-format
 
msgid "%s files"
 
msgstr "Fichiers de %s"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr "Fichiers"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr "Edition de fichier de %s"
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr "Ajouter un fichier"
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr "Ajouter un nouveau fichier"
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr "Nom de fichier"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr "ou"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr "Téléverser un fichier"
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr "Créer un nouveau fichier"
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr "Emplacement"
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr "Utilisez / pour séparer les répertoires"
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr "Message de commit"
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
msgstr "Commiter les changements"
 

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

	
 
#: rhodecode/templates/files/files_browser.html:14
 
msgid "previous revision"
 
msgstr "révision précédente"
 

	
 
#: rhodecode/templates/files/files_browser.html:16
 
msgid "next revision"
 
msgstr "révision suivante"
 

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

	
 
#: rhodecode/templates/files/files_browser.html:27
 
msgid "search file list"
 
msgstr "Rechercher un fichier"
 

	
 
#: rhodecode/templates/files/files_browser.html:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr "Ajouter un fichier"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "Chargement de la liste des fichiers…"
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr "Taille"
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr "Type MIME"
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr "Dernière révision"
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr "Dernière modification"
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr "Dernier commiteur"
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr "Éditer le fichier"
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr "Afficher les annotations"
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr "montrer le fichier brut"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr "télécharger le fichier brut"
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr "Source"
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr "Édition du fichier"
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr "Historique"
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
msgid "diff to revision"
 
msgstr "Diff avec la révision"
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
msgid "show at revision"
 
msgstr "Afficher à la révision"
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
#, fuzzy
 
msgid "show full history"
 
msgstr "Chargement de la liste des fichiers…"
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "%s auteur"
 
msgstr[1] "%s auteurs"
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
#, fuzzy
 
msgid "Load file history"
 
msgstr "Chargement de la liste des fichiers…"
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr "montrer les sources"
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, fuzzy, python-format
 
msgid "edit on branch:%s"
 
msgstr "Dépôt %s supprimé"
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr "Fichier binaire (%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr "Ce fichier est trop gros pour être affiché."
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "annotation"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
msgstr "Revenir en arrière"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:16
 
msgid "No files at given path"
 
msgstr "Aucun fichier à cet endroit"
 

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, python-format
 
msgid "%s Followers"
 
msgstr "Followers de %s"
 

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

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following -"
 
msgstr "A commencé à suivre le dépôt :"
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr "Fork de %s"
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr "Nom du fork"
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "Privé"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "Copier les permissions"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr "Copier les permissions depuis le dépôt forké"
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "MÀJ après le clonage"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr "Mettre à jour depuis la source après clonage"
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "Forker ce dépôt"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
msgstr "Forks de %s"
 

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

	
 
#: rhodecode/templates/forks/forks_data.html:17
 
msgid "forked"
 
msgstr "forké"
 

	
 
#: rhodecode/templates/forks/forks_data.html:21
 
msgid "Compare fork"
 
msgstr "Comparer le fork"
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr "Il n’y a pas encore de forks."
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
msgid "ATOM journal feed"
 
msgstr "Flux ATOM du journal"
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
msgid "RSS journal feed"
 
msgstr "Flux RSS du journal"
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr "Rafraîchir"
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr "Flux RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr "Flux ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr "Surveillé"
 

	
 
#: rhodecode/templates/journal/journal_data.html:55
 
msgid "No entries yet"
 
msgstr "Aucune entrée pour le moment"
 

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
msgid "ATOM public journal feed"
 
msgstr "Flux ATOM du journal public"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
msgid "RSS public journal feed"
 
msgstr "Flux RSS du journal public"
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr "Journal public"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr "Rafraîchir les informations"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
msgid "Detailed compare view"
 
msgstr "Comparaison détaillée"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr "Relecteurs de la requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "owner"
 
msgstr "Propriétaire"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr "Ajouter un relecteur à cette requête de pull."
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
msgid "Create new pull request"
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr "Titre"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr "Envoyer la requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr "Fermée %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr "avec %s comme statut."
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
msgid "Status"
 
msgstr "Statut"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr "Statut de la requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr "Pas encore relue par"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] "%d relecteur"
 
msgstr[1] "%d relecteurs"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr "La requête de pull a été relue par tous les relecteurs."
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
#, fuzzy
 
msgid "Origin repository"
 
msgstr "Dépôt Git"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
msgid "Created on"
 
msgstr "Créé le"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
msgid "Compare view"
 
msgstr "Vue de comparaison"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
#, fuzzy
 
msgid "reviewer"
 
msgstr "%d relecteur"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr "Requêtes de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr "Toutes les requêtes de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr "Fermée"
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "Rechercher « %s » dans le dépôt : %s"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "Rechercher « %s » dans tous les dépôts"
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr "Rechercher dans le dépôt : %s"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
msgid "Search in all repositories"
 
msgstr "Rechercher dans tous les dépôts"
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr "Termes de la recherches"
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr "Rechercher dans"
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr "Le contenu des fichiers"
 

	
 
#: rhodecode/templates/search/search.html:64
 
msgid "Commit messages"
 
msgstr "Les messages de commit"
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr "Les noms de fichiers"
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr "Permission refusée"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, python-format
 
msgid "%s Settings"
 
msgstr "Réglages de %s"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
#, fuzzy
 
msgid "Delete repository"
 
msgstr "[a supprimé] le dépôt"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
#, fuzzy
 
msgid "Remove repo"
 
msgstr "Enlever"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, python-format
 
msgid "%s Shortlog"
 
msgstr "Résumé de %s"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr "Résumé"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "Révision"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
msgid "age"
 
msgstr "Âge"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr "Auteur"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "Ajouter ou téléverser des fichiers directement via RhodeCode…"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr "Pusher le nouveau dépôt"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr "Le dépôt existe déjà ?"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
msgstr "Résumé de %s"
 

	
 
#: rhodecode/templates/summary/summary.html:12
 
msgid "summary"
 
msgstr "résumé"
 

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "Flux ATOM du dépôt %s"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr "Flux RSS du dépôt %s"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr "ATOM"
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, fuzzy, python-format
 
msgid "Repository locked by %s"
 
msgstr "Ce dépôt n’est pas verrouillé %s."
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
#, fuzzy
 
msgid "Repository unlocked"
 
msgstr "Ce dépôt n’est pas verrouillé."
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr "Identifiant permanent : %s"
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr "publique"
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr "Clone distant"
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr "Contact"
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr "URL de clone"
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr "Afficher par nom"
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr "Afficher par ID"
 

	
 
#: rhodecode/templates/summary/summary.html:151
 
msgid "Trending files"
 
msgstr "Populaires"
 

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr "Activer"
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr "Téléchargements"
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr "Il n’y a pas encore de téléchargements proposés."
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr "Les téléchargements sont désactivés pour ce dépôt."
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
msgid "Download as zip"
 
msgstr "Télécharger en ZIP"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "Check this to download archive with subrepos"
 
msgstr "Télécharger une archive contenant également les sous-dépôts éventuels"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "with subrepos"
 
msgstr "avec les sous-dépôts"
 

	
 
#: rhodecode/templates/summary/summary.html:195
 
msgid "Commit activity by day / author"
 
msgstr "Activité de commit par jour et par auteur"
 

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr "Statistiques obtenues :"
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr "Résumé des changements"
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr "Démarrage rapide"
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr "Fichier « Lisez-moi » à la révision « %s »"
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr "Lien permanent vers ce fichier « Lisez-moi »"
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "Télécharger %s comme archive %s"
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr "commits"
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr "fichiers ajoutés"
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr "fichiers modifiés"
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr "fichiers supprimés"
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr "commit"
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr "fichier ajouté"
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr "fichié modifié"
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr "fichier supprimé"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr "Tags de %s"
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
#, fuzzy
 
msgid "Compare tags"
 
msgstr "Comparer"
 

	
rhodecode/i18n/ja/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -2978,1337 +2978,1337 @@ msgstr "メンバー"
 
msgid "Confirm to delete this users group: %s"
 
msgstr "ユーザグループを削除しますか?: %s"
 

	
 
#: rhodecode/templates/base/base.html:41
 
msgid "Submit a bug"
 
msgstr "バグレポート"
 

	
 
#: rhodecode/templates/base/base.html:76
 
#, fuzzy
 
msgid "Not logged in"
 
msgstr "最終ログイン日"
 

	
 
#: rhodecode/templates/base/base.html:83
 
msgid "Login to your account"
 
msgstr "ログイン"
 

	
 
#: rhodecode/templates/base/base.html:106
 
msgid "Forgot password ?"
 
msgstr "パスワードを忘れた場合はこちら"
 

	
 
#: rhodecode/templates/base/base.html:113
 
msgid "Log In"
 
msgstr "ログイン"
 

	
 
#: rhodecode/templates/base/base.html:124
 
msgid "Inbox"
 
msgstr "受信箱"
 

	
 
#: rhodecode/templates/base/base.html:129
 
#: rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "ジャーナル"
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr "ログアウト"
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr "リポジトリの切り替え"
 

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

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr "読み込み中..."
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr "要約"
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr "履歴"
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr "ブランチの切り替え"
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr "ファイル"
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr "オプション"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
msgid "repository settings"
 
msgstr "リポジトリ設定"
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "フォーク"
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
#, fuzzy
 
msgid "open new pull request"
 
msgstr "新しいプルリクエストを作成"
 

	
 
#: rhodecode/templates/base/base.html:221
 
#, fuzzy
 
msgid "compare fork"
 
msgstr "フォークを比較"
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr "検索"
 

	
 
#: rhodecode/templates/base/base.html:229
 
msgid "lock"
 
msgstr "ロック"
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr "リポジトリグループ"
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr "ユーザーグループ"
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr "権限"
 

	
 
#: rhodecode/templates/base/base.html:245
 
msgid "defaults"
 
msgstr "デフォルト設定"
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr "設定"
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr "フォロワー"
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr "フォーク"
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "検索"
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "別のコメントを追加"
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr "このリポジトリのフォローをやめる"
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr "このリポジトリのフォローする"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "グループ"
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr "検索結果は省略されています"
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr "マッチするファイルはありません"
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr "新しいプルリクエストを作成"
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr "選択したチェンジセットから新しいプルリクエストを作成"
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr "選択した変更 __S -> __E を表示"
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr "%s ブックマーク"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr "作成者"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr "リビジョン"
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr "%s ブランチ"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
msgid "Compare branches"
 
msgstr "ブランチの比較"
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
msgid "Compare"
 
msgstr "比較"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr "%s チェンジログ"
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgid "Clear selection"
 
msgstr "選択を解除"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr "%s とフォークを比較"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
msgid "Compare fork with parent"
 
msgstr "フォークを比較"
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr "表示"
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr "もっと表示"
 

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

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr "リビジョンステータス"
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, fuzzy, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr "関連するプルリクエストを開く"
 

	
 
#: rhodecode/templates/changelog/changelog.html:104
 
msgid "Parent"
 
msgstr "親リビジョン"
 

	
 
#: rhodecode/templates/changelog/changelog.html:110
 
#: rhodecode/templates/changeset/changeset.html:42
 
msgid "No parents"
 
msgstr "親リビジョンはありません"
 

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr "マージ"
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "ブランチ"
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr "ブックマーク"
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr "タグ"
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr "まだ変更がありません"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:94
 
msgid "removed"
 
msgstr "削除"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:5
 
#: rhodecode/templates/changeset/changeset.html:95
 
msgid "changed"
 
msgstr "変更"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr "追加"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr "%s ファイルに影響"
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, python-format
 
msgid "%s Changeset"
 
msgstr "%s チェンジセット"
 

	
 
#: rhodecode/templates/changeset/changeset.html:14
 
msgid "Changeset"
 
msgstr "チェンジセット"
 

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
msgid "No children"
 
msgstr "子リビジョンはありません"
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr "差分を表示"
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
msgid "patch diff"
 
msgstr "パッチとして差分を表示"
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr "差分をダウンロード"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "%d コメント"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] "(%d インライン)"
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] "%s ファイルに影響"
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] "%s ファイルに影響。 %s 個の追加と %s 個の削除"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, fuzzy, python-format
 
msgid "Status from pull request %s"
 
msgstr "すべてのプルリクエスト"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, fuzzy, python-format
 
msgid "Comment from pull request %s"
 
msgstr "プルリクエストに[コメント]"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr "サブミット中..."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr "{1} 行目にコメント"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr "コメントには %s 構文 ( %s サポートつき ) が利用出来ます"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr "テキスト内で @username を使うと、この RhodeCode のユーザーに通知を送信します"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr "コメント"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr "隠す"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr "コメントするにはログインが必要です"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr "今すぐログインする"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr "コメントを残す"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr "チェックするとチェンジセットの現在のコードレビューステータスを変更出来ます"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "change status"
 
msgstr "ステータスを変更する"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr "コメントしてクローズ"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr "%s チェンジセット"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "比較ビュー"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
msgid "Show combined compare"
 
msgstr "結合した比較ビューを表示"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
msgid "Files affected"
 
msgstr "影響のあるファイル"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr "このファイルの全差分を表示"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr "インラインコメントを表示"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
msgid "No changesets"
 
msgstr "チェンジセットはありません"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] "%s コミットを表示"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
msgid "No files"
 
msgstr "ファイルはありません"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr "フォーク"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr "Mercurialリポジトリ"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr "Gitリポジトリ"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr "公開リポジトリ"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr "フォーク元: "
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr "まだチェンジセットがありません"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "%s の RSS フィードを購読"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "%s の ATOM フィードを購読"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "このリポジトリを削除しますか? : %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr "このユーザーを本当に削除してよろしいですか?: %s"
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
msgid "New status$"
 
msgstr "新しいステータス$"
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
msgid "This is a notification from RhodeCode."
 
msgstr "RhodeCodeからの通知です"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr "こんにちは"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr "あなたのアカウントの新しいパスワードの生成リクエストを受け取りました。"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr "下のURLをクリックすることで再生成が行えます。"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr "新しいパスワードのリクエストをしていない場合は、このメールを無視して下さい。"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr "ユーザ %s がリポジトリ %s で新しいプルリクエストを作成しました。変更をレビューしてください。"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
msgid "title"
 
msgstr "タイトル"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
msgid "description"
 
msgstr "説明"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
msgid "View this pull request here"
 
msgstr "このプルリクエストを閲覧する"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr "レビュー対象のリビジョン"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr "ユーザ %s がプルリクエスト #%s (リポジトリ %s) にコメントしました。"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
msgid "New status"
 
msgstr "新しいステータス"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr "このコメントを閲覧する"
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
msgid "A new user have registered in RhodeCode"
 
msgstr "新しいユーザがRhodeCodeへ登録しました"
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr "このユーザを閲覧する"
 

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

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, python-format
 
msgid "%s File diff"
 
msgstr "%s ファイル差分"
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "ファイル差分"
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, python-format
 
msgid "%s files"
 
msgstr "%s ファイル"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr "ファイル"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr "ファイルを追加"
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr "新しいファイルを追加"
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr "ファイル名"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr "または"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr "アップロード"
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr "新しいファイルを作成"
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr "場所"
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr "ディレクトリの区切りには / を使います"
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr "コミットメッセージ"
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
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:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr "新しいファイルを追加"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "ファイル一覧を読み込み中..."
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr "サイズ"
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr "Mimetype"
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr "最後のリビジョン"
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr "最終更新日"
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr "最後の作成者"
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr "ファイルを編集"
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr "アノテーションを表示"
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr "元のファイルを表示"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr "元のファイルをダウンロード"
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr "ソース"
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr "ファイルを編集"
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr "変更履歴"
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
msgid "diff to revision"
 
msgstr "このリビジョンの差分を見る"
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
msgid "show at revision"
 
msgstr "このリビジョンを見る"
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
msgid "show full history"
 
msgstr "すべての履歴を表示"
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "%s 作成者"
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
msgid "Load file history"
 
msgstr "ファイルの履歴を読み込む"
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr "ソースを表示"
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, fuzzy, python-format
 
msgid "edit on branch:%s"
 
msgstr "削除されたブランチ: %s"
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr "バイナリファイル (%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr "表示するには大きすぎるファイルです"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "アノテーション"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
msgstr "戻る"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:16
 
msgid "No files at given path"
 
msgstr "そのパスにはファイルはありません"
 

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, python-format
 
msgid "%s Followers"
 
msgstr "%s フォロワー"
 

	
 
#: rhodecode/templates/followers/followers.html:13
 
msgid "followers"
 
msgstr "フォロワー"
 

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following -"
 
msgstr "フォロー開始日 -"
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr "%s フォーク"
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr "フォーク名"
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "非公開"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "権限のコピー"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr "フォーク元リポジトリから権限をコピーします"
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "クローン後にupdateする"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr "クローンした後にソースをチェックアウトします"
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "このリポジトリをフォーク"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
msgstr "%s フォーク"
 

	
 
#: 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:21
 
msgid "Compare fork"
 
msgstr "フォークを比較"
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr "まだフォークがありません"
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
msgid "ATOM journal feed"
 
msgstr "ATOM ジャーナルフィード"
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
msgid "RSS journal feed"
 
msgstr "RSS ジャーナルフィード"
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr "更新"
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr "RSSフィード"
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr "ATOMフィード"
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr "ウォッチ"
 

	
 
#: rhodecode/templates/journal/journal_data.html:55
 
msgid "No entries yet"
 
msgstr "まだエントリがありません"
 

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
msgid "ATOM public journal feed"
 
msgstr "ATOM 公開ジャーナルフィード"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
msgid "RSS public journal feed"
 
msgstr "RSS 公開ジャーナルフィード"
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr "公開ジャーナル"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr "新しいプルリクエスト"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr "概要の更新"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
msgid "Detailed compare view"
 
msgstr "比較ビュー詳細"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr "プルリクエストレビュアー"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "owner"
 
msgstr "所有者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr "このプルリクエストにレビュアーを追加"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
msgid "Create new pull request"
 
msgstr "新しいプルリクエストを作成"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr "タイトル"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr "プルリクエストを送る"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr "%s にクローズ"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr "ステータス: %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
msgid "Status"
 
msgstr "ステータス"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr "プルリクエストステータス"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr "未レビュー"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] "%d レビュアー"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr "プルリクエストはすべてのレビュアーにレビューされました"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
#, fuzzy
 
msgid "Origin repository"
 
msgstr "Gitリポジトリ"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
msgid "Created on"
 
msgstr "作成日"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
msgid "Compare view"
 
msgstr "比較ビュー"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "reviewer"
 
msgstr "レビュアー"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr "すべてのプルリクエスト"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr "すべてのプルリクエスト"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr "クローズ"
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "\"%s\" を %s リポジトリから検索"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "\"%s\" を全てのリポジトリから検索"
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr "%s リポジトリから検索"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
msgid "Search in all repositories"
 
msgstr "全てのリポジトリから検索"
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr "検索キーワード"
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr "検索対象"
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr "ファイル内容"
 

	
 
#: rhodecode/templates/search/search.html:64
 
msgid "Commit messages"
 
msgstr "コミットメッセージ"
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr "ファイル名"
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr "権限がありません"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, python-format
 
msgid "%s Settings"
 
msgstr "%s 設定"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
msgid "Delete repository"
 
msgstr "リポジトリを削除"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
msgid "Remove repo"
 
msgstr "削除"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, python-format
 
msgid "%s Shortlog"
 
msgstr "%s 短いログ"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr "ログ"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "リビジョン"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
msgid "age"
 
msgstr "経過時間"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr "作成者"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "RhodeCode経由で直接ファイルを追加またはアップロード"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr "新しいリポジトリをプッシュ"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr "存在するリポジトリをプッシュ"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
msgstr "%s 要約"
 

	
 
#: rhodecode/templates/summary/summary.html:12
 
msgid "summary"
 
msgstr "要約"
 

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "リポジトリ %s ATOM フィード"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr "リポジトリ %s RSS フィード"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr "ATOM"
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, python-format
 
msgid "Repository locked by %s"
 
msgstr "リポジトリは %s によってロックされました"
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
msgid "Repository unlocked"
 
msgstr "リポジトリはロックされていません"
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr "変更不能ID %s"
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr "公開"
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr "リモートクローン"
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr "コンタクト"
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr "クローンURL"
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr "名前で表示"
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr "IDで表示"
 

	
 
#: rhodecode/templates/summary/summary.html:151
 
msgid "Trending files"
 
msgstr "トレンドファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr "有効にする"
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr "ダウンロード"
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr "まだダウンロードがありません"
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr "このリポジトリのダウンロードは無効化されています"
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
msgid "Download as zip"
 
msgstr "ZIPとしてダウンロード"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "Check this to download archive with subrepos"
 
msgstr "チェックするとダウンロードアーカイブにサブリポジトリが含まれます"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "with subrepos"
 
msgstr "サブリポジトリを含む"
 

	
 
#: rhodecode/templates/summary/summary.html:195
 
msgid "Commit activity by day / author"
 
msgstr "コミットアクティビティ 日/作成者"
 

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr "収集した統計情報: "
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr "ログ"
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr "クイックスタート"
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr "リビジョン '%s' のReadmeファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr "パーマリンク"
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "%s を %sとしてダウンロード"
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr "コミット"
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr "追加されたファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr "変更されたファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr "削除されたファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr "コミット"
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr "追加されたファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr "変更されたファイル"
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr "削除されたファイル"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr "%s タグ"
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
msgid "Compare tags"
 
msgstr "タグの比較"
 

	
rhodecode/i18n/pl/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -3071,1341 +3071,1341 @@ msgstr "Nie pamiętasz hasła?"
 

	
 
#: rhodecode/templates/base/base.html:113
 
msgid "Log In"
 
msgstr "Zaloguj się"
 

	
 
#: rhodecode/templates/base/base.html:124
 
msgid "Inbox"
 
msgstr "Odebrana poczta"
 

	
 
#: rhodecode/templates/base/base.html:129
 
#: rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "Dziennik"
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr "Wyloguj się"
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr "Przełącz repozytorium"
 

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

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr "wczytywanie..."
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr "Podsumowanie"
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr "Dziennik zmian"
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr "Przełącz do"
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr "Pliki"
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr "Opcje"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
msgid "repository settings"
 
msgstr "ustawienia repozytorium"
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "gałąż"
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
#, fuzzy
 
msgid "open new pull request"
 
msgstr "Otwórz nową prośbę o połączenie gałęzi"
 

	
 
#: rhodecode/templates/base/base.html:221
 
#, fuzzy
 
msgid "compare fork"
 
msgstr "Porównaj rozwidlenie"
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr "szukaj"
 

	
 
#: rhodecode/templates/base/base.html:229
 
msgid "lock"
 
msgstr "zablokowane"
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr "grupy w repozytorium"
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr "grupy użytkowników"
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr "uprawnienia"
 

	
 
#: rhodecode/templates/base/base.html:245
 
msgid "defaults"
 
msgstr "domyślne"
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr "ustawienia"
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr "Obserwowane"
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr "Gałęzie"
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "Szukaj"
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "dodaj kolejny komentarz"
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr "Zakończyć obserwację tego repozytorium"
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr "Zacznij obserwację tego repozytorium"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "Grupa"
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr "wyszukaj obcięte"
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr "nie ma plików pasujących"
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr "Otwórz nową prośbę o połączenie gałęzi"
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr "Otwórz nową prośbę o połączenie gałęzi w zestawieniu zmian"
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr "Pokaż wybrane zmiany __S -> __E"
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr "Wybór linku"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr "%s Zakładki"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr "Autor"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr "Rewizja"
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr "%s Gałęzie"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
msgid "Compare branches"
 
msgstr "porównaj gałęzie"
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
msgid "Compare"
 
msgstr "Porównaj"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr "%s Dziennik zmian"
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] "pokazano %d z rewizji %d"
 
msgstr[1] "pokazano %d w rewizjach %d"
 
msgstr[2] "pokazano %d w rewizjach %d"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgid "Clear selection"
 
msgstr "Wyczyść zaznaczenie"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr "porównaj gałęzie %s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
msgid "Compare fork with parent"
 
msgstr "porównaj gałąź w rodzicem"
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr "Wyświetl"
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr "pokaż więcej"
 

	
 
#: rhodecode/templates/changelog/changelog.html:78
 
msgid "Affected number of files, click to show more details"
 
msgstr "Dotyczy liczby plików, kliknij, aby zobaczyć więcej szczegółów"
 

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr "Status grupy zmian"
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, fuzzy, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr "Kliknij żeby otworzyć prośbę o połączenie gałęzi #%s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:104
 
msgid "Parent"
 
msgstr "Rewizja"
 

	
 
#: rhodecode/templates/changelog/changelog.html:110
 
#: rhodecode/templates/changeset/changeset.html:42
 
msgid "No parents"
 
msgstr "Brak rewizji"
 

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr "połącz"
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "gałąź"
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr "zakładka"
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr "etykieta"
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr "Nie ma jeszcze zmian"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:94
 
msgid "removed"
 
msgstr "usunięto"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:5
 
#: rhodecode/templates/changeset/changeset.html:95
 
msgid "changed"
 
msgstr "zmiana"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr "dodana"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr "zarażone pliki %s"
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, python-format
 
msgid "%s Changeset"
 
msgstr "%s Grupy zmian"
 

	
 
#: rhodecode/templates/changeset/changeset.html:14
 
msgid "Changeset"
 
msgstr "Grupy zmian"
 

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
#, fuzzy
 
msgid "No children"
 
msgstr "Brak dzieci"
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr "raw różnic"
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
msgid "patch diff"
 
msgstr "poprawka różnic"
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr "pobierz różnice"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "%d komentarz"
 
msgstr[1] "%d komentarzy"
 
msgstr[2] "%d komentarzy"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] "(%d linii)"
 
msgstr[1] "(%d linii)"
 
msgstr[2] "(%d linii)"
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] "%s plik został zmieniony"
 
msgstr[1] "%s pliki zostały zmienione"
 
msgstr[2] "%s plików zostało zmienionych"
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] "%s plik został zmieniony z %s inercjami i %s usunięciami"
 
msgstr[1] "%s plików zostało zmienionych z %s inercjami i %s usunięciami"
 
msgstr[2] "%s plików zostało zmienionych z %s inercjami i %s usunięciami"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, python-format
 
msgid "Status from pull request %s"
 
msgstr "wszystkie prośby połączenia gałęzi %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, python-format
 
msgid "Comment from pull request %s"
 
msgstr "[komentarz] wniosek o połączenie gałęzi %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr "Przesyłanie..."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr "Komentując linię {1}."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr "Komentarze analizowane za pomocą %s składni od %s wsparcia."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 
"Użyj @username wewnątrz tego tekstu, aby wysłać powiadomienie do "
 
"użytkownika strony"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr "Komentarz"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr "Ukryj"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr "Musisz być zalogowany żeby komentarz."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr "Zaloguj się teraz"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr "Napisz komentarz"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr "Zaznacz to, aby zmienić bieżący stan code przeglądu tego zestawienia zmian"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "change status"
 
msgstr "zmień status"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr "Skomentuj i zamknij"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr "%s Zestawienie zmian"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "Wyświetl Porównanie"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
msgid "Show combined compare"
 
msgstr "Pokaż połączone porównaj"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
msgid "Files affected"
 
msgstr "pliki naruszone"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr "pokaż pełną edycja tego pliku"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr "pokaż online komentarz"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
msgid "No changesets"
 
msgstr "Brak zestawienia zmian"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] "Pokaż %s komentarz"
 
msgstr[1] "Pokaż %s komentarze"
 
msgstr[2] "Pokaż %s komentarze"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
msgid "No files"
 
msgstr "Brak plików"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr "Gałąź"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr "Repozytorium mercurial"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr "Repozytorium git"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr "Publiczne repozytorium"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr "Gałąź z"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr "Nie ma jeszcze zestawienia zmian"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "Subskrybuj %s kanał rss"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "Subskrybuj %s kanał atom"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "Potwierdź usunięcie repozytorium: %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr "Potwierdź usunięcie tego użytkownika: %s"
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
msgid "New status$"
 
msgstr "Nowy status$"
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
msgid "This is a notification from RhodeCode."
 
msgstr "To jest powiadomienie z strony"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr "Witaj"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr "Otrzymaliśmy prośbę o utworzenie nowego hasła do twojego konta."
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr "Możesz wygenerować nowe hasło klikając w link URL poniżej:"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr "Jeśli nie chcesz wygenerować nowego hasła to zignoruj tą wiadomość."
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr ""
 
"Użytkownik %s zgłosił wniosek połączenia w repozytorium %s i chce żeby "
 
"sprawdzić zmiany."
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
msgid "title"
 
msgstr "tytuł"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
msgid "description"
 
msgstr "opis"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
msgid "View this pull request here"
 
msgstr "Wyświetl prośby pobrania tutaj"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr "korekty dotyczące rewizji"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr ""
 
"Użytkownik %s skomentował wniosek o połączenie gałęzi #%s dla "
 
"repozytorium %s"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
msgid "New status"
 
msgstr "Nowy status"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr "Zobacz ten komentarz tutaj"
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
msgid "A new user have registered in RhodeCode"
 
msgstr "Nowy użytkownik został zarejestrowany na stronie"
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr "Zobacz tego użytkownika tutaj"
 

	
 
#: rhodecode/templates/errors/error_document.html:46
 
#, python-format
 
msgid "You will be redirected to %s in %s seconds"
 
msgstr "Zostaniesz przekierowany do %s za %s sekund"
 

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, python-format
 
msgid "%s File diff"
 
msgstr "%s Pliki różnic"
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "Pliki różnic"
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, python-format
 
msgid "%s files"
 
msgstr "Pliki %s"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr "pliki"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr "Edytuj plik %s"
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr "dodaj plik"
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr "Dodaj nowy plik"
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr "Nazwa Pliku"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr "lub"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr "Dodaj plik"
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr "Utwórz nowy plik"
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr "Położenie"
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr "Użyj / do oddzielenia katalogów"
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr "komentarz"
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
msgstr "Zatwierdź zmiany"
 

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

	
 
#: rhodecode/templates/files/files_browser.html:14
 
msgid "previous revision"
 
msgstr "poprzednia wersja"
 

	
 
#: rhodecode/templates/files/files_browser.html:16
 
msgid "next revision"
 
msgstr "następna wersja"
 

	
 
#: rhodecode/templates/files/files_browser.html:23
 
msgid "follow current branch"
 
msgstr "śledź mierzącą gałąź"
 

	
 
#: rhodecode/templates/files/files_browser.html:27
 
msgid "search file list"
 
msgstr "lista szukanych plików"
 

	
 
#: rhodecode/templates/files/files_browser.html:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr "dodaj nowy plik"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "Wczytywanie listy plików..."
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr "Rozmiar"
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr "Typ MIME"
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr "Rewizja"
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr "Ostatnio modyfikowany"
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr "Autor"
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr "edytuj plik"
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr "pokaż adnotacje"
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr "wyświetl jako raw"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr "Pobierz jako raw"
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr "źródło"
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr "Edycja pliku"
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr "Historia"
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
msgid "diff to revision"
 
msgstr "różnice do rewizji"
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
msgid "show at revision"
 
msgstr "wskaż zmiany"
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
msgid "show full history"
 
msgstr "pokaż pełną historię"
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "%s autor"
 
msgstr[1] "%s autorzy"
 
msgstr[2] "%s autorzy"
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
msgid "Load file history"
 
msgstr "Załaduj historię pliku"
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr "pokaż źródło"
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, fuzzy, python-format
 
msgid "edit on branch:%s"
 
msgstr "Usunięta gałąź: %s"
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr "Plik binarny (%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr "Plik jest za duży do wyświetlenia"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "adnotacja"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
msgstr "Idź wstecz"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:16
 
msgid "No files at given path"
 
msgstr "Brak plików w danej ścieżce"
 

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, python-format
 
msgid "%s Followers"
 
msgstr "Obserwatorzy %s"
 

	
 
#: rhodecode/templates/followers/followers.html:13
 
msgid "followers"
 
msgstr "obserwatorzy"
 

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following -"
 
msgstr "Rozpoczęto obserwację -"
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr "Gałęzi %s"
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr "Nazwa rozgałęzienia"
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "Prywatny"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "Skopiuj uprawnienia"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr "Skopiuj zezwolenia z rozwidlenia repozytorium"
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "Aktualizuj po klonowaniu"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr "Sprawdź źródło po wykonaniu klonowania"
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "gałąź tego repozytorium"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
msgstr "Gałęzi %s"
 

	
 
#: rhodecode/templates/forks/forks.html:13
 
msgid "forks"
 
msgstr "gałąź"
 

	
 
#: rhodecode/templates/forks/forks_data.html:17
 
msgid "forked"
 
msgstr "rozgałęziony"
 

	
 
#: rhodecode/templates/forks/forks_data.html:21
 
msgid "Compare fork"
 
msgstr "Porównaj rozwidlenie"
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr "Nie ma jeszcze gałęzi"
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
msgid "ATOM journal feed"
 
msgstr "Dziennik kanału ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
msgid "RSS journal feed"
 
msgstr "Dziennik kanału RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr "Odśwież"
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr "Kanał RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr "Kanał ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr "Obserwowane"
 

	
 
#: rhodecode/templates/journal/journal_data.html:55
 
msgid "No entries yet"
 
msgstr "Brak wpisów jeszcze"
 

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
msgid "ATOM public journal feed"
 
msgstr "Publiczny dziennik kanału ATOM"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
msgid "RSS public journal feed"
 
msgstr "Publiczny dziennik kanału RSS"
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr "Dziennik Publiczny"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr "Nowa prośba o połączenie gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr "odśwież informacje"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
msgid "Detailed compare view"
 
msgstr "Szczegółowe porównanie widoku"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr "Recenzje wniosków połączenia gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "owner"
 
msgstr "właściciel"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr "Pokarz wszystkie zmiany"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
msgid "Create new pull request"
 
msgstr "Stwórz nowe żądanie połączenia gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr "Tytuł"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr "Wyślij prośbę o połączenie gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr "Zamknięty %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr "stanu z %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
msgid "Status"
 
msgstr "Status"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr "Żądanie statusu połączenia gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr "Nie ma jeszcze recenzenta"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] "%d recenzent"
 
msgstr[1] "%d recenzenci"
 
msgstr[2] "%d recenzentów"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr "połączenie gałęzi zostało zweryfikowane przez wszystkich recenzentów"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
#, fuzzy
 
msgid "Origin repository"
 
msgstr "Repozytorium git"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
msgid "Created on"
 
msgstr "Utworzono"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
msgid "Compare view"
 
msgstr "Wyświetl porównanie"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "reviewer"
 
msgstr "recenzent"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr "wszystkie prośby połączenia gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr "Wszystkie prośby połączenia gałęzi"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr "Zamknięte"
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "Wyszukiwanie \"%s\" w repozytorium: %s"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "Wyszukiwanie \"%s\" w wszystkich repozytoriach"
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr "Szukaj w repozytorium: %s"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
msgid "Search in all repositories"
 
msgstr "Szukaj we wszystkich repozytoriach"
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr "Szukana fraza"
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr "Szukaj w"
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr "Zawartość pliku"
 

	
 
#: rhodecode/templates/search/search.html:64
 
msgid "Commit messages"
 
msgstr "Komunikaty"
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr "Nazwy plików"
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr "Brak uprawnień"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, python-format
 
msgid "%s Settings"
 
msgstr "Ustawienia %s"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
msgid "Delete repository"
 
msgstr "Usuń repozytorium"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
msgid "Remove repo"
 
msgstr "Usuń repo"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, python-format
 
msgid "%s Shortlog"
 
msgstr "%s Lista zmian"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr "lista zmian"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "rewizja"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
msgid "age"
 
msgstr "ostatnia zmiana"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr "autor"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "Dodaj lub prześlij pliki bezpośrednio przez stronę"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr "Wyślij zmiany do nowego repo"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr "Istniejące repozytorium?"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
msgstr "Podsumowanie %s"
 

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

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "repo %s kanał ATOM"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr "repo %s kanał RSS"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr "ATOM"
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, python-format
 
msgid "Repository locked by %s"
 
msgstr "Repozytorium zablokowane przez %s"
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
msgid "Repository unlocked"
 
msgstr "Repozytorium odblokowane"
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr "Brak ID pełnej zmiany %s"
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr "publiczny"
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr "zdalne klonowanie"
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr "Kontakt"
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr "Url klonowania"
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr "Pokaż nazwę"
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr "Pokaż ID"
 

	
 
#: rhodecode/templates/summary/summary.html:151
 
msgid "Trending files"
 
msgstr "Statystyki"
 

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr "włącz"
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr "Pobierz"
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr "Nie pobrano jeszcze plików"
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr "Pliki do pobrania są zostały wyłączone dla tego repozytorium"
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
msgid "Download as zip"
 
msgstr "Pobierz jako zip"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "Check this to download archive with subrepos"
 
msgstr "Zaznacz tu żeby pobrać archiwum z subrepozytorium"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "with subrepos"
 
msgstr "z subrepozytorium"
 

	
 
#: rhodecode/templates/summary/summary.html:195
 
msgid "Commit activity by day / author"
 
msgstr "komunikaty aktywne w ciągu dnia / autor"
 

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr "Statystyki zebrane: "
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr "Lista zmian"
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr "Szybki start"
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr "Plik readme w rewizji '%s'"
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr "Link do tego readme"
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "Pobierz %s jak %s"
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr "komunikaty"
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr "pliki dodane"
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr "pliki zmienione"
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr "pliki usunięte"
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr "komunikaty"
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr "plik dodany"
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr "plik zmieniony"
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr "plik usunięty"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr "Etykiety pliku %s"
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
msgid "Compare tags"
 
msgstr "Porównaj tagi"
 

	
rhodecode/i18n/pt_BR/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -3145,1366 +3145,1366 @@ msgstr "Caixa de Entrada"
 
#: rhodecode/templates/base/base.html:129
 
#: rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "Diário"
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr "Sair"
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr "Trocar repositório"
 

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

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr "carregando..."
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr "Sumário"
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr "Registro de alterações"
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr "Trocar para"
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr "Arquivos"
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr "Opções"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
#, fuzzy
 
msgid "repository settings"
 
msgstr "Criação de repositório"
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "bifurcação"
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
#, fuzzy
 
msgid "open new pull request"
 
msgstr "Criar novo arquivo"
 

	
 
#: rhodecode/templates/base/base.html:221
 
#, fuzzy
 
msgid "compare fork"
 
msgstr "comparar exibir"
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr "pesquisar"
 

	
 
#: rhodecode/templates/base/base.html:229
 
#, fuzzy
 
msgid "lock"
 
msgstr "destravar"
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr "grupos de repositórios"
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr "grupos de usuários"
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr "permissões"
 

	
 
#: rhodecode/templates/base/base.html:245
 
#, fuzzy
 
msgid "defaults"
 
msgstr "excluir"
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr "configurações"
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr "Seguidores"
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr "Bifurcações"
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "Pesquisar"
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "adicionar outro comentário"
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr "Parar de seguir este repositório"
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr "Passar a seguir este repositório"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "Grupo"
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr "pesquisa truncada"
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr "nenhum arquivo corresponde"
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr "Mostrar alterações selecionadas __S -> __E"
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr "Link da seleção"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, fuzzy, python-format
 
msgid "%s Bookmarks"
 
msgstr "marcadores"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr "Autor"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr "Revisão"
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, fuzzy, python-format
 
msgid "%s Branches"
 
msgstr "ramos"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
#, fuzzy
 
msgid "Compare branches"
 
msgstr "ramos"
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
#, fuzzy
 
msgid "Compare"
 
msgstr "comparar exibir"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, fuzzy, python-format
 
msgid "%s Changelog"
 
msgstr "Registro de alterações"
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] "mostrando %d de %d revisão"
 
msgstr[1] "mostrando %d de %d revisões"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
#, fuzzy
 
msgid "Clear selection"
 
msgstr "Configurações de busca"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#, fuzzy
 
msgid "Compare fork with parent"
 
msgstr "comparar exibir"
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr "Mostrar"
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr "mostrar mais"
 

	
 
#: rhodecode/templates/changelog/changelog.html:78
 
msgid "Affected number of files, click to show more details"
 
msgstr "Número de arquivos afetados, clique para mostrar mais detalhes"
 

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
#, fuzzy
 
msgid "Changeset status"
 
msgstr "Conjuntos de mudanças"
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, fuzzy, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr "repositório [criado]"
 

	
 
#: rhodecode/templates/changelog/changelog.html:104
 
msgid "Parent"
 
msgstr "Progenitor"
 

	
 
#: rhodecode/templates/changelog/changelog.html:110
 
#: rhodecode/templates/changeset/changeset.html:42
 
msgid "No parents"
 
msgstr "Sem progenitores"
 

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr "mesclar"
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "ramo"
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr "marcador"
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr "etiqueta"
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr "Ainda não há alteações"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:94
 
msgid "removed"
 
msgstr "removidos"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:5
 
#: rhodecode/templates/changeset/changeset.html:95
 
msgid "changed"
 
msgstr "alterados"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr "adicionados"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr "%s arquivos afetados"
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, fuzzy, python-format
 
msgid "%s Changeset"
 
msgstr "Conjunto de Mudanças"
 

	
 
#: rhodecode/templates/changeset/changeset.html:14
 
msgid "Changeset"
 
msgstr "Conjunto de Mudanças"
 

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
msgid "No children"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr "diff bruto"
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
#, fuzzy
 
msgid "patch diff"
 
msgstr "diff bruto"
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr "descarregar diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "%d comentário"
 
msgstr[1] "%d comentários"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] "(%d em linha)"
 
msgstr[1] "(%d em linha)"
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, fuzzy, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] "arquivo alterado"
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, fuzzy, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] "%s arquivos afetados com %s inserções e %s exclusões"
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, fuzzy, python-format
 
msgid "Status from pull request %s"
 
msgstr "Criar novo arquivo"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, fuzzy, python-format
 
msgid "Comment from pull request %s"
 
msgstr "repositório [criado]"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr "Enviando..."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr "Comentando a linha {1}."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr "Comentários interpretados usando a sintaxe %s com suporte a %s."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 
"Use @nomedeusuário dentro desse texto para enviar notificação a este "
 
"usuário do RhodeCode"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr "Comentário"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr "Ocultar"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr "Você precisa estar logado para comentar."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr "Entrar agora"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr "Deixar um comentário"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
#, fuzzy
 
msgid "change status"
 
msgstr "Conjuntos de mudanças"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, fuzzy, python-format
 
msgid "%s Changesets"
 
msgstr "Conjuntos de mudanças"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "Exibir Comparação"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#, fuzzy
 
msgid "Show combined compare"
 
msgstr "mostrar comentários em linha"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
msgid "Files affected"
 
msgstr "Arquivos afetados"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr "mostrar comentários em linha"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
#, fuzzy
 
msgid "No changesets"
 
msgstr "Nenhum conjunto de alterações ainda."
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, fuzzy, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] "mostrar comentários em linha"
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
#, fuzzy
 
msgid "No files"
 
msgstr "arquivos"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr "Bifurcação"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr "Repositório Mercurial"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr "Repositório Git"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr "repositório público"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr "Bifurcação de"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr "Nenhum conjunto de alterações ainda."
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "Assinar o feed rss de %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "Assinar o feed atom de %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "Confirma excluir esse repositório: %s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr "Confirma excluir este usuário: %s"
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
#, fuzzy
 
msgid "New status$"
 
msgstr "Conjuntos de mudanças"
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
#, fuzzy
 
msgid "This is a notification from RhodeCode."
 
msgstr "Esta é uma notificação do RhodeCode."
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
#, fuzzy
 
msgid "title"
 
msgstr "escrever"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
#, fuzzy
 
msgid "description"
 
msgstr "Descrição"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
#, fuzzy
 
msgid "View this pull request here"
 
msgstr "Confirma excluir este repositório"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, fuzzy, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr "repositório [criado]"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
#, fuzzy
 
msgid "New status"
 
msgstr "Conjuntos de mudanças"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
#, fuzzy
 
msgid "A new user have registered in RhodeCode"
 
msgstr "Você se registrou com sucesso no rhodecode"
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr ""
 

	
 
#: rhodecode/templates/errors/error_document.html:46
 
#, python-format
 
msgid "You will be redirected to %s in %s seconds"
 
msgstr "Você será redirecionado para %s em %s segundos"
 

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, fuzzy, python-format
 
msgid "%s File diff"
 
msgstr "Diff do arquivo"
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "Diff do arquivo"
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, fuzzy, python-format
 
msgid "%s files"
 
msgstr "arquivos"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr "arquivos"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, fuzzy, python-format
 
msgid "%s Edit file"
 
msgstr "editar arquivo"
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr "adicionar arquivo"
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr "Adicionar novo arquivo"
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr "Nome de Arquivo"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr "ou"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr "Enviar arquivo"
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr "Criar novo arquivo"
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr "Local"
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr "use / para separar diretórios"
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr "mensagem de commit"
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
msgstr "Realizar commit das alterações"
 

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

	
 
#: rhodecode/templates/files/files_browser.html:14
 
msgid "previous revision"
 
msgstr "revisão anterior"
 

	
 
#: rhodecode/templates/files/files_browser.html:16
 
msgid "next revision"
 
msgstr "próxima revisão"
 

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

	
 
#: rhodecode/templates/files/files_browser.html:27
 
msgid "search file list"
 
msgstr "pesquisar lista de arquivos"
 

	
 
#: rhodecode/templates/files/files_browser.html:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr "adicionar novo arquivo"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "Carregando lista de arquivos..."
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr "Tamanho"
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr "Mimetype"
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr "Última revisão"
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr "Última alteração"
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr "Último commiter"
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr "editar arquivo"
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr "mostrar anotação"
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr "mostrar como bruto"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr "descarregar como bruto"
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr "fonte"
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr "Editando arquivo"
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr "Histórico"
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
#, fuzzy
 
msgid "diff to revision"
 
msgstr "próxima revisão"
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
#, fuzzy
 
msgid "show at revision"
 
msgstr "próxima revisão"
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
#, fuzzy
 
msgid "show full history"
 
msgstr "Carregando lista de arquivos..."
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, fuzzy, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "autor"
 
msgstr[1] "autors"
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
#, fuzzy
 
msgid "Load file history"
 
msgstr "Carregando lista de arquivos..."
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr "mostrar fonte"
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, fuzzy, python-format
 
msgid "edit on branch:%s"
 
msgstr "excluído o repositório %s"
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr "Arquivo binário (%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr "Arquivo é grande demais para exibir"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "anotação"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
msgstr "Voltar"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:16
 
msgid "No files at given path"
 
msgstr "Nenhum arquivo no caminho especificado"
 

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, fuzzy, python-format
 
msgid "%s Followers"
 
msgstr "seguidores"
 

	
 
#: rhodecode/templates/followers/followers.html:13
 
msgid "followers"
 
msgstr "seguidores"
 

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
#, fuzzy
 
msgid "Started following -"
 
msgstr "Passou a seguir"
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, fuzzy, python-format
 
msgid "%s Fork"
 
msgstr "bifurcação"
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr "Nome da bifurcação"
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "Privado"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "Copiar permissões"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "Atualizar após clonar"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "bifurcar este repositório"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, fuzzy, python-format
 
msgid "%s Forks"
 
msgstr "bifurcações"
 

	
 
#: rhodecode/templates/forks/forks.html:13
 
msgid "forks"
 
msgstr "bifurcações"
 

	
 
#: rhodecode/templates/forks/forks_data.html:17
 
msgid "forked"
 
msgstr "bifurcado"
 

	
 
#: rhodecode/templates/forks/forks_data.html:21
 
#, fuzzy
 
msgid "Compare fork"
 
msgstr "comparar exibir"
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr "Ainda não há bifurcações"
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
#, fuzzy
 
msgid "ATOM journal feed"
 
msgstr "diário público de %s - feed %s"
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
#, fuzzy
 
msgid "RSS journal feed"
 
msgstr "diário público de %s - feed %s"
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr "Atualizar"
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
#, fuzzy
 
msgid "RSS feed"
 
msgstr "%s - feed %s"
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr "Seguindo"
 

	
 
#: rhodecode/templates/journal/journal_data.html:55
 
msgid "No entries yet"
 
msgstr "Ainda não há entradas"
 

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
#, fuzzy
 
msgid "ATOM public journal feed"
 
msgstr "diário público de %s - feed %s"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
#, fuzzy
 
msgid "RSS public journal feed"
 
msgstr "diário público de %s - feed %s"
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr "Diário Público"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
#, fuzzy
 
msgid "Detailed compare view"
 
msgstr "comparar exibir"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
#, fuzzy
 
msgid "owner"
 
msgstr "Dono"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
#, fuzzy
 
msgid "Create new pull request"
 
msgstr "Criar novo arquivo"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
#, fuzzy
 
msgid "Title"
 
msgstr "escrever"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
#, fuzzy
 
msgid "Status"
 
msgstr "Conjuntos de mudanças"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
#, fuzzy
 
msgid "Origin repository"
 
msgstr "Repositório Git"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
#, fuzzy
 
msgid "Created on"
 
msgstr "criar um agora"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
#, fuzzy
 
msgid "Compare view"
 
msgstr "comparar exibir"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
#, fuzzy
 
msgid "reviewer"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
#, fuzzy
 
msgid "all pull requests"
 
msgstr "Criar novo arquivo"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, fuzzy, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "no repositório"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, fuzzy, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "em todos os repositórios"
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, fuzzy, python-format
 
msgid "Search in repository: %s"
 
msgstr "no repositório"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
#, fuzzy
 
msgid "Search in all repositories"
 
msgstr "em todos os repositórios"
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr "Termo de pesquisa"
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr "Pesquisando em"
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr "Conteúdo dos arquivos"
 

	
 
#: rhodecode/templates/search/search.html:64
 
#, fuzzy
 
msgid "Commit messages"
 
msgstr "mensagem de commit"
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr "Nomes dos arquivos"
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr "Permissão negada"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, fuzzy, python-format
 
msgid "%s Settings"
 
msgstr "configurações"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
#, fuzzy
 
msgid "Delete repository"
 
msgstr "[excluir] repositório"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
#, fuzzy
 
msgid "Remove repo"
 
msgstr "remover"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, fuzzy, python-format
 
msgid "%s Shortlog"
 
msgstr "log resumido"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr "log resumido"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "revisão"
 

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

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr "autor"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "Adicionar ou enviar arquivos diretamente pelo RhodeCode"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr "Fazer push de novo repositório"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr "Repositório existente?"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, fuzzy, python-format
 
msgid "%s Summary"
 
msgstr "sumário"
 

	
 
#: rhodecode/templates/summary/summary.html:12
 
msgid "summary"
 
msgstr "sumário"
 

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, fuzzy, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "Assinar o feed atom de %s"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, fuzzy, python-format
 
msgid "repo %s RSS feed"
 
msgstr "Assinar o feed rss de %s"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr "ATOM"
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, fuzzy, python-format
 
msgid "Repository locked by %s"
 
msgstr "repositórios"
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
#, fuzzy
 
msgid "Repository unlocked"
 
msgstr "repositórios"
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr "ID não alterável %s"
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr "público"
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr "clone remoto"
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr "Contato"
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr "URL de clonagem"
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr "Mostrar por Nome"
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr "Mostrar por ID"
 

	
 
#: rhodecode/templates/summary/summary.html:151
 
msgid "Trending files"
 
msgstr "Tendências em arquivos"
 

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr "habilitar"
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr "Download"
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr "Ainda não há downloads"
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr "Downloads estão desabilitados para este repositório"
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
#, fuzzy
 
msgid "Download as zip"
 
msgstr "descarregar como bruto"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "Check this to download archive with subrepos"
 
msgstr "Marque isto para descarregar arquivo com subrepositórios"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "with subrepos"
 
msgstr "com subrepositórios"
 

	
 
#: rhodecode/templates/summary/summary.html:195
 
msgid "Commit activity by day / author"
 
msgstr "Atividade de commit por dia / autor"
 

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr "Estatísticas coletadas:"
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr "Log resumido"
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr "Início rápido"
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "Descarregar %s como %s"
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr "commits"
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr "arquivos adicionados"
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr "arquivos alterados"
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr "arquivos removidos"
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr "commit"
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr "arquivo adicionado"
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr "arquivo alterado"
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr "arquivo removido"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, fuzzy, python-format
 
msgid "%s Tags"
 
msgstr "%s atrás"
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
#, fuzzy
 
msgid "Compare tags"
 
msgstr "comparar exibir"
 

	
rhodecode/i18n/rhodecode.pot
Show inline comments
 
@@ -2915,1338 +2915,1338 @@ 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/admin/users_groups/users_groups.html:33
 
#: rhodecode/templates/base/root.html:46
 
msgid "members"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/users_groups/users_groups.html:45
 
#, python-format
 
msgid "Confirm to delete this users group: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:41
 
msgid "Submit a bug"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:76
 
msgid "Not logged in"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:83
 
msgid "Login to your account"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:106
 
msgid "Forgot password ?"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:113
 
msgid "Log In"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:124
 
msgid "Inbox"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:129 rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299 rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/base/base.html:158 rhodecode/templates/base/base.html:189
 
#: rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:166 rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:174 rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:182 rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:193 rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:201 rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:210 rhodecode/templates/base/base.html:212
 
msgid "repository settings"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
msgid "open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:221
 
msgid "compare fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:229
 
msgid "lock"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:245
 
msgid "defaults"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:256 rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:264 rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:315 rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319 rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54 rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55 rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr ""
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
msgid "Compare branches"
 
msgstr ""
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57 rhodecode/templates/tags/tags_data.html:10
 
msgid "Compare"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgid "Clear selection"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
msgid "Compare fork with parent"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr ""
 

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

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

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:4
 
#: rhodecode/templates/changeset/changeset.html:94
 
msgid "removed"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:5
 
#: rhodecode/templates/changeset/changeset.html:95
 
msgid "changed"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, python-format
 
msgid "%s Changeset"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
msgid "No children"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
msgid "patch diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, python-format
 
msgid "Status from pull request %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, python-format
 
msgid "Comment from pull request %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "change status"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
msgid "Show combined compare"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr ""
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
msgid "No changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
msgid "No files"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
msgid "New status$"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
msgid "This is a notification from RhodeCode."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid "User %s opened pull request for repository %s and wants you to review changes."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
msgid "title"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
msgid "description"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
msgid "View this pull request here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
msgid "New status"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
msgid "A new user have registered in RhodeCode"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, python-format
 
msgid "%s File diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files.html:4 rhodecode/templates/files/files.html:74
 
#, python-format
 
msgid "%s files"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
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:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
msgid "diff to revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
msgid "show at revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
msgid "show full history"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
msgid "Load file history"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, python-format
 
msgid "edit on branch:%s"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr ""
 

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

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

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, python-format
 
msgid "%s Followers"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following -"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
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:21
 
msgid "Compare fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
msgid "ATOM journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
msgid "RSS journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
msgid "ATOM public journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
msgid "RSS public journal feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
msgid "Detailed compare view"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "owner"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
msgid "Create new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
msgid "Status"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
msgid "Origin repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
msgid "Created on"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
msgid "Compare view"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "reviewer"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
msgid "Search in all repositories"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:64
 
msgid "Commit messages"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr ""
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, python-format
 
msgid "%s Settings"
 
msgstr ""
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
msgid "Delete repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
msgid "Remove repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, python-format
 
msgid "%s Shortlog"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, python-format
 
msgid "Repository locked by %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
msgid "Repository unlocked"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
msgid "Download as zip"
 
msgstr ""
 

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

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

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

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr ""
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr ""
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
msgid "Compare tags"
 
msgstr ""
 

	
rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -2968,1337 +2968,1337 @@ msgstr "成员"
 
msgid "Confirm to delete this users group: %s"
 
msgstr "确认删除该组:%s"
 

	
 
#: rhodecode/templates/base/base.html:41
 
msgid "Submit a bug"
 
msgstr "提交bug"
 

	
 
#: rhodecode/templates/base/base.html:76
 
#, fuzzy
 
msgid "Not logged in"
 
msgstr "最后登录"
 

	
 
#: rhodecode/templates/base/base.html:83
 
msgid "Login to your account"
 
msgstr "登录"
 

	
 
#: rhodecode/templates/base/base.html:106
 
msgid "Forgot password ?"
 
msgstr "忘记密码?"
 

	
 
#: rhodecode/templates/base/base.html:113
 
msgid "Log In"
 
msgstr "登录"
 

	
 
#: rhodecode/templates/base/base.html:124
 
msgid "Inbox"
 
msgstr "收件箱"
 

	
 
#: rhodecode/templates/base/base.html:129
 
#: rhodecode/templates/base/base.html:297
 
#: rhodecode/templates/base/base.html:299
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "日志"
 

	
 
#: rhodecode/templates/base/base.html:131
 
msgid "Log Out"
 
msgstr "退出"
 

	
 
#: rhodecode/templates/base/base.html:150
 
msgid "Switch repository"
 
msgstr "切换版本库"
 

	
 
#: rhodecode/templates/base/base.html:152
 
msgid "Products"
 
msgstr "产品"
 

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr "载入中..."
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr "概况"
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr "修订记录"
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr "切换到"
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr "浏览"
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr "选项"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
msgid "repository settings"
 
msgstr "版本库选项"
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
#, fuzzy
 
msgid "open new pull request"
 
msgstr "新建拉取请求"
 

	
 
#: rhodecode/templates/base/base.html:221
 
#, fuzzy
 
msgid "compare fork"
 
msgstr "比较复刻"
 

	
 
#: rhodecode/templates/base/base.html:223
 
msgid "search"
 
msgstr "搜索"
 

	
 
#: rhodecode/templates/base/base.html:229
 
msgid "lock"
 
msgstr "锁定"
 

	
 
#: rhodecode/templates/base/base.html:240
 
msgid "repositories groups"
 
msgstr "版本库组"
 

	
 
#: rhodecode/templates/base/base.html:242
 
msgid "users groups"
 
msgstr "用户组"
 

	
 
#: rhodecode/templates/base/base.html:243
 
msgid "permissions"
 
msgstr "权限"
 

	
 
#: rhodecode/templates/base/base.html:245
 
msgid "defaults"
 
msgstr "默认设置"
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr "设置"
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr "关注者"
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "搜索"
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
msgstr "添加新的评论"
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr "停止关注该版本库"
 

	
 
#: rhodecode/templates/base/root.html:44
 
#: rhodecode/templates/summary/summary.html:61
 
msgid "Start following this repository"
 
msgstr "开始关注该版本库"
 

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "组"
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr "搜索被截断"
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr "没有符合的文件"
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr "新建拉取请求"
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr "为选择的变更集创建新的拉取请求"
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr "显示选定的修订集:__S -> __E"
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr "选择链接"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr "%s书签"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
msgid "Author"
 
msgstr "作者"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr "修订"
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr "%s分支"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
msgid "Compare branches"
 
msgstr "比较分支"
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
msgid "Compare"
 
msgstr "比较显示"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr "%s修订记录"
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] "显示%d/%d个版本"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgid "Clear selection"
 
msgstr "清除选择"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr "比较复刻和%s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
msgid "Compare fork with parent"
 
msgstr "比较复刻和源版本库"
 

	
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "Show"
 
msgstr "显示"
 

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr "显示更多"
 

	
 
#: rhodecode/templates/changelog/changelog.html:78
 
msgid "Affected number of files, click to show more details"
 
msgstr "影响的文件数,点击显示详细信息"
 

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr "修订集状态"
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr "点击建立相关的拉取请求 #%s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:104
 
msgid "Parent"
 
msgstr "父版本"
 

	
 
#: rhodecode/templates/changelog/changelog.html:110
 
#: rhodecode/templates/changeset/changeset.html:42
 
msgid "No parents"
 
msgstr "无父版本"
 

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr "合并"
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr "书签"
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr "标签"
 

	
 
#: rhodecode/templates/changelog/changelog.html:302
 
msgid "There are no changes yet"
 
msgstr "没有任何变更"
 

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

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

	
 
#: rhodecode/templates/changelog/changelog_details.html:6
 
#: rhodecode/templates/changeset/changeset.html:96
 
msgid "added"
 
msgstr "添加"
 

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr "影响%s文件"
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, python-format
 
msgid "%s Changeset"
 
msgstr "%s修订集"
 

	
 
#: rhodecode/templates/changeset/changeset.html:14
 
msgid "Changeset"
 
msgstr "修订集"
 

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
msgid "No children"
 
msgstr "无子对象"
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr "原始diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
msgid "patch diff"
 
msgstr "原始diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr "下载diff"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "%d条评论"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] "(%d内嵌)"
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] "修改%s个文件"
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] "修改%s个文件包括%s行插入和%s行删除"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, python-format
 
msgid "Status from pull request %s"
 
msgstr "所有拉取请求 %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, python-format
 
msgid "Comment from pull request %s"
 
msgstr "[评论]拉取请求 %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr "提交中……"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr "在{1}行上评论"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr "评论使用%s语法并支持%s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr "在文本中使用 @用户名 以发送通知到该RhodeCode用户"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
msgid "Comment"
 
msgstr "评论"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr "隐藏"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "You need to be logged in to comment."
 
msgstr "必须登录才能评论"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr "现在登陆"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr "发表评论"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr "勾选以改变这个修订集的代码审查状态"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "change status"
 
msgstr "改变状态"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr "评论并关闭"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr "%s修订集"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "比较显示"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
msgid "Show combined compare"
 
msgstr "显示紧凑比较"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
msgid "Files affected"
 
msgstr "影响文件"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr "显示文件的完整差异"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr "显示内嵌评论"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
msgid "No changesets"
 
msgstr "无修订"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] "显示%s个提交"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
msgid "No files"
 
msgstr "无文件"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr "Mercurial版本库"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr "Git版本库"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr "公共版本库"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr "复刻自"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr "无修订"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "订阅%s的RSS"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "订阅%s的Atom"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "确认删除版本库:%s"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr "确认删除用户:%s"
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
msgid "New status$"
 
msgstr "新状态$"
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
msgid "This is a notification from RhodeCode."
 
msgstr "这是一个RhodeCode通知。"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr "你好"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr "我们收到重置你用户密码的请求。"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr "点击下面的链接以重新生成密码:"
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr "如果你没有要求重置密码,请忽略这封邮件。"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr "用户%s在版本库%s中创建了一个拉取请求需要你检视"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
msgid "title"
 
msgstr "标题"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
msgid "description"
 
msgstr "描述"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
msgid "View this pull request here"
 
msgstr "查看拉取请求"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr "待检视修订"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr "用户%s评论了版本库%s的拉取请求%s"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
msgid "New status"
 
msgstr "新状态"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr "查看评论"
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
msgid "A new user have registered in RhodeCode"
 
msgstr "新用户注册RhodeCode"
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr "查看用户"
 

	
 
#: rhodecode/templates/errors/error_document.html:46
 
#, python-format
 
msgid "You will be redirected to %s in %s seconds"
 
msgstr "重定向到%s,于%s秒后"
 

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, python-format
 
msgid "%s File diff"
 
msgstr "%s文件差异"
 

	
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "文件差异"
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, python-format
 
msgid "%s files"
 
msgstr "%s文件"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr "文件"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr "%s编辑文件"
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
msgid "add file"
 
msgstr "新建文件"
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
msgid "Add new file"
 
msgstr "新建文件"
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
msgid "File Name"
 
msgstr "文件名"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "or"
 
msgstr "或者"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
msgid "Upload file"
 
msgstr "上传文件"
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
msgid "Create new file"
 
msgstr "创建新文件"
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr "位置"
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr "使用 / 目录分隔符"
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr "提交信息"
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
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:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
msgid "add new file"
 
msgstr "新建文件"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "加载文件列表..."
 

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr "大小"
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr "MIME类型"
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
msgid "Last Revision"
 
msgstr "最后修订号"
 

	
 
#: rhodecode/templates/files/files_browser.html:51
 
msgid "Last modified"
 
msgstr "最后修改于"
 

	
 
#: rhodecode/templates/files/files_browser.html:52
 
msgid "Last commiter"
 
msgid "Last committer"
 
msgstr "最后提交者"
 

	
 
#: rhodecode/templates/files/files_edit.html:19
 
msgid "edit file"
 
msgstr "编辑文件"
 

	
 
#: rhodecode/templates/files/files_edit.html:49
 
#: rhodecode/templates/files/files_source.html:23
 
msgid "show annotation"
 
msgstr "显示注释"
 

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr "显示原始文件"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr "下载原始文件"
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
msgid "source"
 
msgstr "显示源文件"
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
msgid "Editing file"
 
msgstr "编辑文件"
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr "历史"
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
msgid "diff to revision"
 
msgstr "比较差异"
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
msgid "show at revision"
 
msgstr "显示修订"
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
msgid "show full history"
 
msgstr "显示全部历史记录"
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "%s个作者"
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
msgid "Load file history"
 
msgstr "加载文件历史记录..."
 

	
 
#: rhodecode/templates/files/files_source.html:21
 
msgid "show source"
 
msgstr "显示代码"
 

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, fuzzy, python-format
 
msgid "edit on branch:%s"
 
msgstr "已经删除分支%s"
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:46
 
#, python-format
 
msgid "Binary file (%s)"
 
msgstr "二进制文件(%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "File is too big to display"
 
msgstr "文件过大,不能显示"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "显示注释"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
msgstr "返回"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:16
 
msgid "No files at given path"
 
msgstr "指定的路径中没有文件"
 

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, python-format
 
msgid "%s Followers"
 
msgstr "%s个关注者"
 

	
 
#: rhodecode/templates/followers/followers.html:13
 
msgid "followers"
 
msgstr "关注者"
 

	
 
#: rhodecode/templates/followers/followers_data.html:12
 
msgid "Started following -"
 
msgstr "开始关注 - "
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr "%s的复刻"
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr "复刻名称"
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "拷贝权限"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr "从被复刻版本库拷贝权限"
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "克隆后更新"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr "完成克隆后检出源代码"
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "复刻该版本库"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
msgstr "%s个复刻"
 

	
 
#: 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:21
 
msgid "Compare fork"
 
msgstr "比较复刻"
 

	
 
#: rhodecode/templates/forks/forks_data.html:42
 
msgid "There are no forks yet"
 
msgstr "无复刻"
 

	
 
#: rhodecode/templates/journal/journal.html:21
 
msgid "ATOM journal feed"
 
msgstr "订阅日志ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
msgid "RSS journal feed"
 
msgstr "订阅日志RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr "刷新"
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr "订阅RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr "订阅ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
msgid "Watched"
 
msgstr "关注的"
 

	
 
#: rhodecode/templates/journal/journal_data.html:55
 
msgid "No entries yet"
 
msgstr "没有条目"
 

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
msgid "ATOM public journal feed"
 
msgstr "订阅公共日志ATOM"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
msgid "RSS public journal feed"
 
msgstr "订阅公共日志RSS"
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr "公共日志"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr "新建拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr "刷新概览"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
msgid "Detailed compare view"
 
msgstr "详细比较显示"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr "拉取请求检视人员"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "owner"
 
msgstr "所有者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr "为这个拉取请求增加检视人员"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
msgid "Create new pull request"
 
msgstr "创建新的拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr "标题"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr "发送拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr "于%s前关闭"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr "状态%s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
msgid "Status"
 
msgstr "状态"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr "拉取请求状态"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr "还未检视的检视人员"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] "%d个检视者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr "拉取请求已经由所有检视人员检视"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
#, fuzzy
 
msgid "Origin repository"
 
msgstr "Git版本库"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
msgid "Created on"
 
msgstr "创建于"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
msgid "Compare view"
 
msgstr "比较显示"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
msgid "reviewer"
 
msgstr "检视者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr "所有拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr "所有拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr "已关闭"
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "搜索 \"%s\" 于版本库 %s 中"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "在所有的版本库中搜索 \"%s\""
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr "在版本库%s中搜索"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
msgid "Search in all repositories"
 
msgstr "在所有的版本库中搜索"
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr "搜索短语"
 

	
 
#: rhodecode/templates/search/search.html:60
 
msgid "Search in"
 
msgstr "搜索范围"
 

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

	
 
#: rhodecode/templates/search/search.html:64
 
msgid "Commit messages"
 
msgstr "提交信息"
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr "文件名"
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
#: rhodecode/templates/search/search_content.html:21
 
#: rhodecode/templates/search/search_path.html:15
 
msgid "Permission denied"
 
msgstr "权限不足"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, python-format
 
msgid "%s Settings"
 
msgstr "%s设置"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
msgid "Delete repository"
 
msgstr "删除版本库"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
msgid "Remove repo"
 
msgstr "删除版本库"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, python-format
 
msgid "%s Shortlog"
 
msgstr "%s简短日志"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:15
 
#: rhodecode/templates/shortlog/shortlog.html:19
 
msgid "shortlog"
 
msgstr "简短日志"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "修订"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
msgid "age"
 
msgstr "时间"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr "作者"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "通过RhodeCode直接添加或者上传文件"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr "推送新版本库"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
msgid "Existing repository?"
 
msgstr "已有版本库?"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
msgstr "%s概要"
 

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

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "订阅ATOM %s"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr "订阅RSS %s"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr "ATOM"
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, python-format
 
msgid "Repository locked by %s"
 
msgstr "版本库由%s锁定"
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
msgid "Repository unlocked"
 
msgstr "版本库未锁定"
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, python-format
 
msgid "Non changable ID %s"
 
msgstr "不可变ID %s"
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr "公共"
 

	
 
#: rhodecode/templates/summary/summary.html:104
 
msgid "remote clone"
 
msgstr "远程克隆"
 

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr "联系方式"
 

	
 
#: rhodecode/templates/summary/summary.html:139
 
msgid "Clone url"
 
msgstr "克隆地址"
 

	
 
#: rhodecode/templates/summary/summary.html:142
 
msgid "Show by Name"
 
msgstr "以名字显示"
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr "按ID显示"
 

	
 
#: rhodecode/templates/summary/summary.html:151
 
msgid "Trending files"
 
msgstr "文件趋势图"
 

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr "启用"
 

	
 
#: rhodecode/templates/summary/summary.html:167
 
msgid "Download"
 
msgstr "下载"
 

	
 
#: rhodecode/templates/summary/summary.html:171
 
msgid "There are no downloads yet"
 
msgstr "无下载"
 

	
 
#: rhodecode/templates/summary/summary.html:173
 
msgid "Downloads are disabled for this repository"
 
msgstr "这个版本库的下载已经禁用"
 

	
 
#: rhodecode/templates/summary/summary.html:179
 
msgid "Download as zip"
 
msgstr "zip打包下载"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "Check this to download archive with subrepos"
 
msgstr "勾选以下载包含子版本库的压缩包"
 

	
 
#: rhodecode/templates/summary/summary.html:182
 
msgid "with subrepos"
 
msgstr "包括子版本库"
 

	
 
#: rhodecode/templates/summary/summary.html:195
 
msgid "Commit activity by day / author"
 
msgstr "按日期或作者的提交活动"
 

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr "已收集的统计:"
 

	
 
#: rhodecode/templates/summary/summary.html:227
 
msgid "Shortlog"
 
msgstr "简短日志"
 

	
 
#: rhodecode/templates/summary/summary.html:229
 
msgid "Quick start"
 
msgstr "快速入门"
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr "修订'%s'中的README"
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr "这个README的永久链接"
 

	
 
#: rhodecode/templates/summary/summary.html:304
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "下载%s为%s包"
 

	
 
#: rhodecode/templates/summary/summary.html:661
 
msgid "commits"
 
msgstr "提交"
 

	
 
#: rhodecode/templates/summary/summary.html:662
 
msgid "files added"
 
msgstr "文件已添加"
 

	
 
#: rhodecode/templates/summary/summary.html:663
 
msgid "files changed"
 
msgstr "文件已更改"
 

	
 
#: rhodecode/templates/summary/summary.html:664
 
msgid "files removed"
 
msgstr "文件已删除"
 

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr "提交"
 

	
 
#: rhodecode/templates/summary/summary.html:668
 
msgid "file added"
 
msgstr "文件已添加"
 

	
 
#: rhodecode/templates/summary/summary.html:669
 
msgid "file changed"
 
msgstr "文件已更改"
 

	
 
#: rhodecode/templates/summary/summary.html:670
 
msgid "file removed"
 
msgstr "文件已删除"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr "%s标签"
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
msgid "Compare tags"
 
msgstr "比较标签"
 

	
rhodecode/i18n/zh_TW/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -3095,1372 +3095,1372 @@ msgstr ""
 
#: rhodecode/templates/base/base.html:301
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "日誌"
 

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

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

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

	
 
#: rhodecode/templates/base/base.html:158
 
#: rhodecode/templates/base/base.html:189 rhodecode/templates/base/root.html:47
 
msgid "loading..."
 
msgstr "載入中..."
 

	
 
#: rhodecode/templates/base/base.html:166
 
#: rhodecode/templates/base/base.html:168
 
#: rhodecode/templates/base/base.html:170
 
#: rhodecode/templates/data_table/_dt_elements.html:9
 
#: rhodecode/templates/data_table/_dt_elements.html:11
 
#: rhodecode/templates/data_table/_dt_elements.html:13
 
msgid "Summary"
 
msgstr "概況"
 

	
 
#: rhodecode/templates/base/base.html:174
 
#: rhodecode/templates/base/base.html:176
 
#: rhodecode/templates/base/base.html:178
 
#: rhodecode/templates/changelog/changelog.html:15
 
#: rhodecode/templates/data_table/_dt_elements.html:17
 
#: rhodecode/templates/data_table/_dt_elements.html:19
 
#: rhodecode/templates/data_table/_dt_elements.html:21
 
msgid "Changelog"
 
msgstr "修改紀錄"
 

	
 
#: rhodecode/templates/base/base.html:182
 
#: rhodecode/templates/base/base.html:184
 
#: rhodecode/templates/base/base.html:186
 
msgid "Switch to"
 
msgstr "切換至"
 

	
 
#: rhodecode/templates/base/base.html:193
 
#: rhodecode/templates/base/base.html:195
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/data_table/_dt_elements.html:25
 
#: rhodecode/templates/data_table/_dt_elements.html:27
 
#: rhodecode/templates/data_table/_dt_elements.html:29
 
msgid "Files"
 
msgstr "檔案"
 

	
 
#: rhodecode/templates/base/base.html:201
 
#: rhodecode/templates/base/base.html:205
 
msgid "Options"
 
msgstr "選項"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/base/base.html:212
 
#, fuzzy
 
msgid "repository settings"
 
msgstr "版本庫建立"
 

	
 
#: rhodecode/templates/base/base.html:216
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:218
 
#: rhodecode/templates/changelog/changelog.html:43
 
#, fuzzy
 
msgid "open new pull request"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/base/base.html:221
 
#, fuzzy
 
msgid "compare fork"
 
msgstr "比較顯示"
 

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

	
 
#: rhodecode/templates/base/base.html:229
 
#, fuzzy
 
msgid "lock"
 
msgstr "解鎖"
 

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

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

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

	
 
#: rhodecode/templates/base/base.html:245
 
#, fuzzy
 
msgid "defaults"
 
msgstr "刪除"
 

	
 
#: rhodecode/templates/base/base.html:246
 
msgid "settings"
 
msgstr "設定"
 

	
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:258
 
msgid "Followers"
 
msgstr "追蹤者"
 

	
 
#: rhodecode/templates/base/base.html:264
 
#: rhodecode/templates/base/base.html:266
 
msgid "Forks"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:315
 
#: rhodecode/templates/base/base.html:317
 
#: rhodecode/templates/base/base.html:319
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "搜尋"
 

	
 
#: rhodecode/templates/base/root.html:42
 
#, fuzzy
 
msgid "add another comment"
 
msgstr "新增另ㄧ位成員"
 

	
 
#: rhodecode/templates/base/root.html:43
 
#: rhodecode/templates/data_table/_dt_elements.html:140
 
#: rhodecode/templates/summary/summary.html:57
 
msgid "Stop following this repository"
 
msgstr "停止追蹤這個版本庫"
 

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

	
 
#: rhodecode/templates/base/root.html:45
 
msgid "Group"
 
msgstr "群組"
 

	
 
#: rhodecode/templates/base/root.html:48
 
msgid "search truncated"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:49
 
msgid "no matching files"
 
msgstr "無符合的檔案"
 

	
 
#: rhodecode/templates/base/root.html:50
 
msgid "Open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:51
 
msgid "Open new pull request for selected changesets"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:52
 
msgid "Show selected changes __S -> __E"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/root.html:53
 
msgid "Selection link"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:5
 
#, python-format
 
msgid "%s Bookmarks"
 
msgstr ""
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:39
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:8
 
#: rhodecode/templates/branches/branches.html:53
 
#: rhodecode/templates/branches/branches_data.html:8
 
#: rhodecode/templates/tags/tags.html:54
 
#: rhodecode/templates/tags/tags_data.html:8
 
#, fuzzy
 
msgid "Author"
 
msgstr "作者"
 

	
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:54
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/tags/tags.html:55
 
#: rhodecode/templates/tags/tags_data.html:9
 
msgid "Revision"
 
msgstr "修訂"
 

	
 
#: rhodecode/templates/branches/branches.html:5
 
#, fuzzy, python-format
 
msgid "%s Branches"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
#, fuzzy
 
msgid "Compare branches"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/branches/branches.html:56
 
#: rhodecode/templates/branches/branches_data.html:10
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#: rhodecode/templates/tags/tags.html:57
 
#: rhodecode/templates/tags/tags_data.html:10
 
#, fuzzy
 
msgid "Compare"
 
msgstr "比較顯示"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, fuzzy, python-format
 
msgid "%s Changelog"
 
msgstr "修改紀錄"
 

	
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
#, fuzzy
 
msgid "Clear selection"
 
msgstr "搜尋選項"
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:40
 
msgid "Compare fork with parent"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/changelog/changelog.html:74
 
#: rhodecode/templates/summary/summary.html:375
 
msgid "show more"
 
msgstr "顯示更多"
 

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

	
 
#: rhodecode/templates/changelog/changelog.html:91
 
#: rhodecode/templates/changeset/changeset.html:65
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
#, fuzzy
 
msgid "Changeset status"
 
msgstr "變更"
 

	
 
#: rhodecode/templates/changelog/changelog.html:94
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
#, python-format
 
msgid "Click to open associated pull request #%s"
 
msgstr ""
 

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

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

	
 
#: rhodecode/templates/changelog/changelog.html:115
 
#: rhodecode/templates/changeset/changeset.html:106
 
#: rhodecode/templates/changeset/changeset_range.html:79
 
msgid "merge"
 
msgstr "合併"
 

	
 
#: rhodecode/templates/changelog/changelog.html:118
 
#: rhodecode/templates/changeset/changeset.html:109
 
#: rhodecode/templates/changeset/changeset_range.html:82
 
#: rhodecode/templates/files/files.html:29
 
#: rhodecode/templates/files/files_add.html:33
 
#: rhodecode/templates/files/files_edit.html:33
 
#: rhodecode/templates/shortlog/shortlog_data.html:9
 
msgid "branch"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/changelog/changelog.html:124
 
#: rhodecode/templates/changeset/changeset_range.html:88
 
msgid "bookmark"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:130
 
#: rhodecode/templates/changeset/changeset.html:114
 
#: rhodecode/templates/changeset/changeset_range.html:94
 
msgid "tag"
 
msgstr "標籤"
 

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

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

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

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

	
 
#: rhodecode/templates/changelog/changelog_details.html:8
 
#: rhodecode/templates/changelog/changelog_details.html:9
 
#: rhodecode/templates/changelog/changelog_details.html:10
 
#: rhodecode/templates/changeset/changeset.html:98
 
#: rhodecode/templates/changeset/changeset.html:99
 
#: rhodecode/templates/changeset/changeset.html:100
 
#, python-format
 
msgid "affected %s files"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:6
 
#, fuzzy, python-format
 
msgid "%s Changeset"
 
msgstr "沒有修改"
 

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

	
 
#: rhodecode/templates/changeset/changeset.html:52
 
msgid "No children"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:70
 
#: rhodecode/templates/changeset/diff_block.html:20
 
msgid "raw diff"
 
msgstr "原始差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:71
 
#, fuzzy
 
msgid "patch diff"
 
msgstr "原始差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:72
 
#: rhodecode/templates/changeset/diff_block.html:21
 
msgid "download diff"
 
msgstr "下載差異"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, fuzzy, python-format
 
msgid "%d comment"
 
msgid_plural "%d comments"
 
msgstr[0] "遞交"
 

	
 
#: rhodecode/templates/changeset/changeset.html:76
 
#: rhodecode/templates/changeset/changeset_file_comment.html:97
 
#, python-format
 
msgid "(%d inline)"
 
msgid_plural "(%d inline)"
 
msgstr[0] ""
 

	
 
#: rhodecode/templates/changeset/changeset.html:122
 
#: rhodecode/templates/compare/compare_diff.html:44
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, fuzzy, python-format
 
msgid "%s file changed"
 
msgid_plural "%s files changed"
 
msgstr[0] "檔案修改"
 

	
 
#: rhodecode/templates/changeset/changeset.html:124
 
#: rhodecode/templates/compare/compare_diff.html:46
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:96
 
#, python-format
 
msgid "%s file changed with %s insertions and %s deletions"
 
msgid_plural "%s files changed with %s insertions and %s deletions"
 
msgstr[0] ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:30
 
#, fuzzy, python-format
 
msgid "Status from pull request %s"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:32
 
#, fuzzy, python-format
 
msgid "Comment from pull request %s"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:57
 
msgid "Submitting..."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:60
 
msgid "Commenting on line {1}."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:61
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:63
 
#: rhodecode/templates/changeset/changeset_file_comment.html:142
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:74
 
#: rhodecode/templates/changeset/changeset_file_comment.html:162
 
#, fuzzy
 
msgid "Comment"
 
msgstr "遞交"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:75
 
#: rhodecode/templates/changeset/changeset_file_comment.html:86
 
msgid "Hide"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
#, fuzzy
 
msgid "You need to be logged in to comment."
 
msgstr "您必須登入後才能瀏覽這個頁面"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:82
 
msgid "Login now"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:137
 
msgid "Leave a comment"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:144
 
#, fuzzy
 
msgid "change status"
 
msgstr "變更"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:164
 
msgid "Comment and close"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, fuzzy, python-format
 
msgid "%s Changesets"
 
msgstr "變更"
 

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

	
 
#: rhodecode/templates/changeset/changeset_range.html:29
 
#, fuzzy
 
msgid "Show combined compare"
 
msgstr "文件內容"
 

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

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "show full diff for this file"
 
msgstr ""
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
#, fuzzy
 
msgid "show inline comments"
 
msgstr "文件內容"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
#, fuzzy
 
msgid "No changesets"
 
msgstr "尚未有任何變更"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:87
 
#, fuzzy, python-format
 
msgid "Showing %s commit"
 
msgid_plural "Showing %s commits"
 
msgstr[0] "文件內容"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:52
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:102
 
#, fuzzy
 
msgid "No files"
 
msgstr "檔案"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:33
 
#: rhodecode/templates/data_table/_dt_elements.html:35
 
#: rhodecode/templates/data_table/_dt_elements.html:37
 
msgid "Fork"
 
msgstr "分支"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:54
 
#: rhodecode/templates/summary/summary.html:77
 
msgid "Mercurial repository"
 
msgstr "Mercurial 版本庫"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:56
 
#: rhodecode/templates/summary/summary.html:80
 
msgid "Git repository"
 
msgstr "Git 版本庫"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:63
 
#: rhodecode/templates/summary/summary.html:87
 
msgid "public repository"
 
msgstr "公開版本庫"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:74
 
#: rhodecode/templates/summary/summary.html:96
 
#: rhodecode/templates/summary/summary.html:97
 
msgid "Fork of"
 
msgstr ""
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:88
 
msgid "No changesets yet"
 
msgstr "尚未有任何變更"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:95
 
#: rhodecode/templates/data_table/_dt_elements.html:97
 
#, python-format
 
msgid "Subscribe to %s rss feed"
 
msgstr "訂閱 %s rss"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:103
 
#: rhodecode/templates/data_table/_dt_elements.html:105
 
#, python-format
 
msgid "Subscribe to %s atom feed"
 
msgstr "訂閱 %s atom"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:122
 
#, fuzzy, python-format
 
msgid "Confirm to delete this repository: %s"
 
msgstr "確認移除這個版本庫"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:131
 
#, fuzzy, python-format
 
msgid "Confirm to delete this user: %s"
 
msgstr "確認刪除這個使用者"
 

	
 
#: rhodecode/templates/email_templates/changeset_comment.html:10
 
#, fuzzy
 
msgid "New status$"
 
msgstr "變更"
 

	
 
#: rhodecode/templates/email_templates/main.html:8
 
msgid "This is a notification from RhodeCode."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:4
 
msgid "Hello"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:6
 
msgid "We received a request to create a new password for your account."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:8
 
msgid "You can generate it by clicking following URL"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/password_reset.html:12
 
msgid "If you didn't request new password please ignore this email."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:4
 
#, python-format
 
msgid ""
 
"User %s opened pull request for repository %s and wants you to review "
 
"changes."
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:5
 
#, fuzzy
 
msgid "title"
 
msgstr "寫"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:6
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
#, fuzzy
 
msgid "description"
 
msgstr "描述"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:7
 
#, fuzzy
 
msgid "View this pull request here"
 
msgstr "確認移除這個版本庫"
 

	
 
#: rhodecode/templates/email_templates/pull_request.html:12
 
msgid "revisions for reviewing"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:4
 
#, fuzzy, python-format
 
msgid "User %s commented on pull request #%s for repository %s"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:10
 
#, fuzzy
 
msgid "New status"
 
msgstr "變更"
 

	
 
#: rhodecode/templates/email_templates/pull_request_comment.html:14
 
msgid "View this comment here"
 
msgstr ""
 

	
 
#: rhodecode/templates/email_templates/registration.html:4
 
#, fuzzy
 
msgid "A new user have registered in RhodeCode"
 
msgstr "您已經成功註冊rhodecode"
 

	
 
#: rhodecode/templates/email_templates/registration.html:9
 
msgid "View this user here"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/files/file_diff.html:4
 
#, fuzzy, python-format
 
msgid "%s File diff"
 
msgstr "檔案差異"
 

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

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:74
 
#, fuzzy, python-format
 
msgid "%s files"
 
msgstr "檔案"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:351
 
msgid "files"
 
msgstr "檔案"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, fuzzy, python-format
 
msgid "%s Edit file"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/files/files_add.html:19
 
#, fuzzy
 
msgid "add file"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/files/files_add.html:40
 
#, fuzzy
 
msgid "Add new file"
 
msgstr "新增使用者"
 

	
 
#: rhodecode/templates/files/files_add.html:45
 
#, fuzzy
 
msgid "File Name"
 
msgstr "檔案名稱"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:58
 
#, fuzzy
 
msgid "or"
 
msgstr "時"
 

	
 
#: rhodecode/templates/files/files_add.html:49
 
#: rhodecode/templates/files/files_add.html:54
 
#, fuzzy
 
msgid "Upload file"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/files/files_add.html:58
 
#, fuzzy
 
msgid "Create new file"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/files/files_add.html:63
 
#: rhodecode/templates/files/files_edit.html:39
 
#: rhodecode/templates/files/files_ypjax.html:3
 
msgid "Location"
 
msgstr "位置"
 

	
 
#: rhodecode/templates/files/files_add.html:67
 
msgid "use / to separate directories"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_add.html:77
 
#: rhodecode/templates/files/files_edit.html:63
 
#: rhodecode/templates/shortlog/shortlog_data.html:6
 
msgid "commit message"
 
msgstr "遞交資訊"
 

	
 
#: rhodecode/templates/files/files_add.html:81
 
#: rhodecode/templates/files/files_edit.html:67
 
msgid "Commit changes"
 
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:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:78
 
#, fuzzy
 
msgid "add new file"
 
msgstr "新增使用者"
 

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

	
 
#: rhodecode/templates/files/files_browser.html:48
 
msgid "Size"
 
msgstr "大小"
 

	
 
#: rhodecode/templates/files/files_browser.html:49
 
msgid "Mimetype"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_browser.html:50
 
#, fuzzy
 
msgid "Last Revision"
 
msgstr "下一個修訂"
 

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

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

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

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

	
 
#: rhodecode/templates/files/files_edit.html:50
 
#: rhodecode/templates/files/files_source.html:25
 
#: rhodecode/templates/files/files_source.html:55
 
msgid "show as raw"
 
msgstr "顯示原始文件"
 

	
 
#: rhodecode/templates/files/files_edit.html:51
 
#: rhodecode/templates/files/files_source.html:26
 
msgid "download as raw"
 
msgstr "下載原始文件"
 

	
 
#: rhodecode/templates/files/files_edit.html:54
 
#, fuzzy
 
msgid "source"
 
msgstr "顯示原始碼"
 

	
 
#: rhodecode/templates/files/files_edit.html:59
 
#, fuzzy
 
msgid "Editing file"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/files/files_history_box.html:2
 
msgid "History"
 
msgstr "歷史"
 

	
 
#: rhodecode/templates/files/files_history_box.html:9
 
#, fuzzy
 
msgid "diff to revision"
 
msgstr "下一個修訂"
 

	
 
#: rhodecode/templates/files/files_history_box.html:10
 
#, fuzzy
 
msgid "show at revision"
 
msgstr "下一個修訂"
 

	
 
#: rhodecode/templates/files/files_history_box.html:11
 
#, fuzzy
 
msgid "show full history"
 
msgstr "載入檔案列表..."
 

	
 
#: rhodecode/templates/files/files_history_box.html:16
 
#, fuzzy, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "作者"
 

	
 
#: rhodecode/templates/files/files_source.html:6
 
#, fuzzy
 
msgid "Load file history"
 
msgstr "載入檔案列表..."
 

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

	
 
#: rhodecode/templates/files/files_source.html:29
 
#, fuzzy, python-format
 
msgid "edit on branch:%s"
 
msgstr "刪除版本庫 %s"
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "edit on branch:?"
 
msgstr ""
 

	
 
#: rhodecode/templates/files/files_source.html:31
 
msgid "Editing files allowed only when on branch head revision"
 
msgstr ""
 

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

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

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
#, fuzzy
 
msgid "annotation"
 
msgstr "險是註釋"
 

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

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

	
 
#: rhodecode/templates/followers/followers.html:5
 
#, fuzzy, python-format
 
msgid "%s Followers"
 
msgstr "追蹤者"
 

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

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

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, fuzzy, python-format
 
msgid "%s Fork"
 
msgstr "分支"
 

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

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
#, fuzzy
 
msgid "Copy permissions"
 
msgstr "權限"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr ""
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "fork 這個版本庫"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, fuzzy, python-format
 
msgid "%s Forks"
 
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:21
 
msgid "Compare fork"
 
msgstr ""
 

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

	
 
#: rhodecode/templates/journal/journal.html:21
 
#, fuzzy
 
msgid "ATOM journal feed"
 
msgstr "%s 公開日誌 %s feed"
 

	
 
#: rhodecode/templates/journal/journal.html:22
 
#, fuzzy
 
msgid "RSS journal feed"
 
msgstr "%s 公開日誌 %s feed"
 

	
 
#: rhodecode/templates/journal/journal.html:32
 
#: rhodecode/templates/pullrequests/pullrequest.html:55
 
msgid "Refresh"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:35
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:38
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr ""
 

	
 
#: rhodecode/templates/journal/journal.html:54
 
#, fuzzy
 
msgid "Watched"
 
msgstr "快取"
 

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

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
#, fuzzy
 
msgid "ATOM public journal feed"
 
msgstr "%s 公開日誌 %s feed"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
#, fuzzy
 
msgid "RSS public journal feed"
 
msgstr "%s 公開日誌 %s feed"
 

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

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:54
 
msgid "refresh overview"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
#, fuzzy
 
msgid "Detailed compare view"
 
msgstr "比較顯示"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:118
 
msgid "Pull request reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
#, fuzzy
 
msgid "owner"
 
msgstr "擁有者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:145
 
msgid "Add reviewer to this pull request."
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
#, fuzzy
 
msgid "Create new pull request"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
#, fuzzy
 
msgid "Title"
 
msgstr "寫"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
msgid "Send pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
#, fuzzy
 
msgid "Status"
 
msgstr "變更"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
msgid "pull request was reviewed by all reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:56
 
#, fuzzy
 
msgid "Origin repository"
 
msgstr "Git 版本庫"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:76
 
#, fuzzy
 
msgid "Created on"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:83
 
#, fuzzy
 
msgid "Compare view"
 
msgstr "比較顯示"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:130
 
#, fuzzy
 
msgid "reviewer"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
#, fuzzy
 
msgid "all pull requests"
 
msgstr "建立使用者 %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr ""
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, fuzzy, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "於版本庫:"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, fuzzy, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "於所有的版本庫"
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, fuzzy, python-format
 
msgid "Search in repository: %s"
 
msgstr "於版本庫:"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
#, fuzzy
 
msgid "Search in all repositories"
 
msgstr "於所有的版本庫"
 

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

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

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

	
 
#: rhodecode/templates/search/search.html:64
 
#, fuzzy
 
msgid "Commit messages"
 
msgstr "遞交資訊"
 

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

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

	
 
#: rhodecode/templates/settings/repo_settings.html:5
 
#, fuzzy, python-format
 
msgid "%s Settings"
 
msgstr "設定"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:102
 
#, fuzzy
 
msgid "Delete repository"
 
msgstr "刪除版本庫 %s"
 

	
 
#: rhodecode/templates/settings/repo_settings.html:109
 
#, fuzzy
 
msgid "Remove repo"
 
msgstr "移除"
 

	
 
#: rhodecode/templates/shortlog/shortlog.html:5
 
#, fuzzy, python-format
 
msgid "%s Shortlog"
 
msgstr "簡短紀錄"
 

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

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "修訂"
 

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

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:8
 
msgid "author"
 
msgstr "作者"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:75
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:84
 
msgid "Push new repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:92
 
#, fuzzy
 
msgid "Existing repository?"
 
msgstr "Git 版本庫"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, fuzzy, python-format
 
msgid "%s Summary"
 
msgstr "概況"
 

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

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, fuzzy, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "訂閱 %s atom"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, fuzzy, python-format
 
msgid "repo %s RSS feed"
 
msgstr "訂閱 %s rss"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
#, fuzzy
 
msgid "ATOM"
 
msgstr "作者"
 

	
 
#: rhodecode/templates/summary/summary.html:70
 
#, fuzzy, python-format
 
msgid "Repository locked by %s"
 
msgstr "個版本庫"
 

	
 
#: rhodecode/templates/summary/summary.html:72
 
#, fuzzy
 
msgid "Repository unlocked"
 
msgstr "個版本庫"
 

	
 
#: rhodecode/templates/summary/summary.html:91
 
#, fuzzy, python-format
 
msgid "Non changable ID %s"
 
msgstr "沒有修改"
 

	
 
#: rhodecode/templates/summary/summary.html:96
 
msgid "public"
 
msgstr "公開"
 

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

	
 
#: rhodecode/templates/summary/summary.html:125
 
msgid "Contact"
 
msgstr "聯絡方式"
 

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

	
 
#: rhodecode/templates/summary/summary.html:142
 
#, fuzzy
 
msgid "Show by Name"
 
msgstr "顯示更多"
 

	
 
#: rhodecode/templates/summary/summary.html:143
 
msgid "Show by ID"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:151
 
#, fuzzy
 
msgid "Trending files"
 
msgstr "編輯檔案"
 

	
 
#: rhodecode/templates/summary/summary.html:159
 
#: rhodecode/templates/summary/summary.html:175
 
#: rhodecode/templates/summary/summary.html:203
 
msgid "enable"
 
msgstr "啟用"
 

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

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

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

	
 
#: rhodecode/templates/summary/summary.html:179
 
#, fuzzy
 
msgid "Download as zip"
 
msgstr "下載原始文件"
 

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

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

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

	
 
#: rhodecode/templates/summary/summary.html:206
 
msgid "Stats gathered: "
 
msgstr ""
 

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

	
 
#: rhodecode/templates/summary/summary.html:229
 
#, fuzzy
 
msgid "Quick start"
 
msgstr "快速過濾..."
 

	
 
#: rhodecode/templates/summary/summary.html:243
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr ""
 

	
 
#: rhodecode/templates/summary/summary.html:246
 
msgid "Permalink to this readme"
 
msgstr ""
 

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

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

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

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

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

	
 
#: rhodecode/templates/summary/summary.html:667
 
msgid "commit"
 
msgstr "遞交"
 

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

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

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

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, fuzzy, python-format
 
msgid "%s Tags"
 
msgstr "之前"
 

	
 
#: rhodecode/templates/tags/tags.html:29
 
#, fuzzy
 
msgid "Compare tags"
 
msgstr "比較顯示"
 

	
rhodecode/lib/vcs/backends/base.py
Show inline comments
 
# -*- coding: utf-8 -*-
 
"""
 
    vcs.backends.base
 
    ~~~~~~~~~~~~~~~~~
 

	
 
    Base for all available scm backends
 

	
 
    :created_on: Apr 8, 2010
 
    :copyright: (c) 2010-2011 by Marcin Kuzminski, Lukasz Balcerzak.
 
"""
 

	
 

	
 
from itertools import chain
 
from rhodecode.lib.vcs.utils import author_name, author_email
 
from rhodecode.lib.vcs.utils.lazy import LazyProperty
 
from rhodecode.lib.vcs.utils.helpers import get_dict_for_attrs
 
from rhodecode.lib.vcs.conf import settings
 

	
 
from rhodecode.lib.vcs.exceptions import ChangesetError, EmptyRepositoryError, \
 
    NodeAlreadyAddedError, NodeAlreadyChangedError, NodeAlreadyExistsError, \
 
    NodeAlreadyRemovedError, NodeDoesNotExistError, NodeNotChangedError, \
 
    RepositoryError
 

	
 

	
 
class BaseRepository(object):
 
    """
 
    Base Repository for final backends
 

	
 
    **Attributes**
 

	
 
        ``DEFAULT_BRANCH_NAME``
 
            name of default branch (i.e. "trunk" for svn, "master" for git etc.
 

	
 
        ``scm``
 
            alias of scm, i.e. *git* or *hg*
 

	
 
        ``repo``
 
            object from external api
 

	
 
        ``revisions``
 
            list of all available revisions' ids, in ascending order
 

	
 
        ``changesets``
 
            storage dict caching returned changesets
 

	
 
        ``path``
 
            absolute path to the repository
 

	
 
        ``branches``
 
            branches as list of changesets
 

	
 
        ``tags``
 
            tags as list of changesets
 
    """
 
    scm = None
 
    DEFAULT_BRANCH_NAME = None
 
    EMPTY_CHANGESET = '0' * 40
 

	
 
    def __init__(self, repo_path, create=False, **kwargs):
 
        """
 
        Initializes repository. Raises RepositoryError if repository could
 
        not be find at the given ``repo_path`` or directory at ``repo_path``
 
        exists and ``create`` is set to True.
 

	
 
        :param repo_path: local path of the repository
 
        :param create=False: if set to True, would try to craete repository.
 
        :param src_url=None: if set, should be proper url from which repository
 
          would be cloned; requires ``create`` parameter to be set to True -
 
          raises RepositoryError if src_url is set and create evaluates to
 
          False
 
        """
 
        raise NotImplementedError
 

	
 
    def __str__(self):
 
        return '<%s at %s>' % (self.__class__.__name__, self.path)
 

	
 
    def __repr__(self):
 
        return self.__str__()
 

	
 
    def __len__(self):
 
        return self.count()
 

	
 
    @LazyProperty
 
    def alias(self):
 
        for k, v in settings.BACKENDS.items():
 
            if v.split('.')[-1] == str(self.__class__.__name__):
 
                return k
 

	
 
    @LazyProperty
 
    def name(self):
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def owner(self):
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def description(self):
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def size(self):
 
        """
 
        Returns combined size in bytes for all repository files
 
        """
 

	
 
        size = 0
 
        try:
 
            tip = self.get_changeset()
 
            for topnode, dirs, files in tip.walk('/'):
 
                for f in files:
 
                    size += tip.get_file_size(f.path)
 
                for dir in dirs:
 
                    for f in files:
 
                        size += tip.get_file_size(f.path)
 

	
 
        except RepositoryError, e:
 
            pass
 
        return size
 

	
 
    def is_valid(self):
 
        """
 
        Validates repository.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_last_change(self):
 
        self.get_changesets()
 

	
 
    #==========================================================================
 
    # CHANGESETS
 
    #==========================================================================
 

	
 
    def get_changeset(self, revision=None):
 
        """
 
        Returns instance of ``Changeset`` class. If ``revision`` is None, most
 
        recent changeset is returned.
 

	
 
        :raises ``EmptyRepositoryError``: if there are no revisions
 
        """
 
        raise NotImplementedError
 

	
 
    def __iter__(self):
 
        """
 
        Allows Repository objects to be iterated.
 

	
 
        *Requires* implementation of ``__getitem__`` method.
 
        """
 
        for revision in self.revisions:
 
            yield self.get_changeset(revision)
 

	
 
    def get_changesets(self, start=None, end=None, start_date=None,
 
                       end_date=None, branch_name=None, reverse=False):
 
        """
 
        Returns iterator of ``MercurialChangeset`` objects from start to end
 
        not inclusive This should behave just like a list, ie. end is not
 
        inclusive
 

	
 
        :param start: None or str
 
        :param end: None or str
 
        :param start_date:
 
        :param end_date:
 
        :param branch_name:
 
        :param reversed:
 
        """
 
        raise NotImplementedError
 

	
 
    def __getslice__(self, i, j):
 
        """
 
        Returns a iterator of sliced repository
 
        """
 
        for rev in self.revisions[i:j]:
 
            yield self.get_changeset(rev)
 

	
 
    def __getitem__(self, key):
 
        return self.get_changeset(key)
 

	
 
    def count(self):
 
        return len(self.revisions)
 

	
 
    def tag(self, name, user, revision=None, message=None, date=None, **opts):
 
        """
 
        Creates and returns a tag for the given ``revision``.
 

	
 
        :param name: name for new tag
 
        :param user: full username, i.e.: "Joe Doe <joe.doe@example.com>"
 
        :param revision: changeset id for which new tag would be created
 
        :param message: message of the tag's commit
 
        :param date: date of tag's commit
 

	
 
        :raises TagAlreadyExistError: if tag with same name already exists
 
        """
 
        raise NotImplementedError
 

	
 
    def remove_tag(self, name, user, message=None, date=None):
 
        """
 
        Removes tag with the given ``name``.
 

	
 
        :param name: name of the tag to be removed
 
        :param user: full username, i.e.: "Joe Doe <joe.doe@example.com>"
 
        :param message: message of the tag's removal commit
 
        :param date: date of tag's removal commit
 

	
 
        :raises TagDoesNotExistError: if tag with given name does not exists
 
        """
 
        raise NotImplementedError
 

	
 
    def get_diff(self, rev1, rev2, path=None, ignore_whitespace=False,
 
            context=3):
 
        """
 
        Returns (git like) *diff*, as plain text. Shows changes introduced by
 
        ``rev2`` since ``rev1``.
 

	
 
        :param rev1: Entry point from which diff is shown. Can be
 
          ``self.EMPTY_CHANGESET`` - in this case, patch showing all
 
          the changes since empty state of the repository until ``rev2``
 
        :param rev2: Until which revision changes should be shown.
 
        :param ignore_whitespace: If set to ``True``, would not show whitespace
 
          changes. Defaults to ``False``.
 
        :param context: How many lines before/after changed lines should be
 
          shown. Defaults to ``3``.
 
        """
 
        raise NotImplementedError
 

	
 
    # ========== #
 
    # COMMIT API #
 
    # ========== #
 

	
 
    @LazyProperty
 
    def in_memory_changeset(self):
 
        """
 
        Returns ``InMemoryChangeset`` object for this repository.
 
        """
 
        raise NotImplementedError
 

	
 
    def add(self, filenode, **kwargs):
 
        """
 
        Commit api function that will add given ``FileNode`` into this
 
        repository.
 

	
 
        :raises ``NodeAlreadyExistsError``: if there is a file with same path
 
          already in repository
 
        :raises ``NodeAlreadyAddedError``: if given node is already marked as
 
          *added*
 
        """
 
        raise NotImplementedError
 

	
 
    def remove(self, filenode, **kwargs):
 
        """
 
        Commit api function that will remove given ``FileNode`` into this
 
        repository.
 

	
 
        :raises ``EmptyRepositoryError``: if there are no changesets yet
 
        :raises ``NodeDoesNotExistError``: if there is no file with given path
 
        """
 
        raise NotImplementedError
 

	
 
    def commit(self, message, **kwargs):
 
        """
 
        Persists current changes made on this repository and returns newly
 
        created changeset.
 

	
 
        :raises ``NothingChangedError``: if no changes has been made
 
        """
 
        raise NotImplementedError
 

	
 
    def get_state(self):
 
        """
 
        Returns dictionary with ``added``, ``changed`` and ``removed`` lists
 
        containing ``FileNode`` objects.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_config_value(self, section, name, config_file=None):
 
        """
 
        Returns configuration value for a given [``section``] and ``name``.
 

	
 
        :param section: Section we want to retrieve value from
 
        :param name: Name of configuration we want to retrieve
 
        :param config_file: A path to file which should be used to retrieve
 
          configuration from (might also be a list of file paths)
 
        """
 
        raise NotImplementedError
 

	
 
    def get_user_name(self, config_file=None):
 
        """
 
        Returns user's name from global configuration file.
 

	
 
        :param config_file: A path to file which should be used to retrieve
 
          configuration from (might also be a list of file paths)
 
        """
 
        raise NotImplementedError
 

	
 
    def get_user_email(self, config_file=None):
 
        """
 
        Returns user's email from global configuration file.
 

	
 
        :param config_file: A path to file which should be used to retrieve
 
          configuration from (might also be a list of file paths)
 
        """
 
        raise NotImplementedError
 

	
 
    # =========== #
 
    # WORKDIR API #
 
    # =========== #
 

	
 
    @LazyProperty
 
    def workdir(self):
 
        """
 
        Returns ``Workdir`` instance for this repository.
 
        """
 
        raise NotImplementedError
 

	
 
    def inject_ui(self, **extras):
 
        """
 
        Injects extra parameters into UI object of this repo
 
        """
 
        required_extras = [
 
            'ip',
 
            'username',
 
            'action',
 
            'repository',
 
            'scm',
 
            'config',
 
            'server_url',
 
            'make_lock',
 
            'locked_by',
 
        ]
 
        for req in required_extras:
 
            if req not in extras:
 
                raise AttributeError('Missing attribute %s in extras' % (req))
 
        for k, v in extras.items():
 
            self._repo.ui.setconfig('rhodecode_extras', k, v)
 

	
 

	
 
class BaseChangeset(object):
 
    """
 
    Each backend should implement it's changeset representation.
 

	
 
    **Attributes**
 

	
 
        ``repository``
 
            repository object within which changeset exists
 

	
 
        ``id``
 
            may be ``raw_id`` or i.e. for mercurial's tip just ``tip``
 

	
 
        ``raw_id``
 
            raw changeset representation (i.e. full 40 length sha for git
 
            backend)
 

	
 
        ``short_id``
 
            shortened (if apply) version of ``raw_id``; it would be simple
 
            shortcut for ``raw_id[:12]`` for git/mercurial backends or same
 
            as ``raw_id`` for subversion
 

	
 
        ``revision``
 
            revision number as integer
 

	
 
        ``files``
 
            list of ``FileNode`` (``Node`` with NodeKind.FILE) objects
 

	
 
        ``dirs``
 
            list of ``DirNode`` (``Node`` with NodeKind.DIR) objects
 

	
 
        ``nodes``
 
            combined list of ``Node`` objects
 

	
 
        ``author``
 
            author of the changeset, as unicode
 

	
 
        ``message``
 
            message of the changeset, as unicode
 

	
 
        ``parents``
 
            list of parent changesets
 

	
 
        ``last``
 
            ``True`` if this is last changeset in repository, ``False``
 
            otherwise; trying to access this attribute while there is no
 
            changesets would raise ``EmptyRepositoryError``
 
    """
 
    def __str__(self):
 
        return '<%s at %s:%s>' % (self.__class__.__name__, self.revision,
 
            self.short_id)
 

	
 
    def __repr__(self):
 
        return self.__str__()
 

	
 
    def __unicode__(self):
 
        return u'%s:%s' % (self.revision, self.short_id)
 

	
 
    def __eq__(self, other):
 
        return self.raw_id == other.raw_id
 

	
 
    def __json__(self):
 
        return dict(
 
            short_id=self.short_id,
 
            raw_id=self.raw_id,
 
            revision=self.revision,
 
            message=self.message,
 
            date=self.date,
 
            author=self.author,
 
        )
 

	
 
    @LazyProperty
 
    def last(self):
 
        if self.repository is None:
 
            raise ChangesetError("Cannot check if it's most recent revision")
 
        return self.raw_id == self.repository.revisions[-1]
 

	
 
    @LazyProperty
 
    def parents(self):
 
        """
 
        Returns list of parents changesets.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def children(self):
 
        """
 
        Returns list of children changesets.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def id(self):
 
        """
 
        Returns string identifying this changeset.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def raw_id(self):
 
        """
 
        Returns raw string identifying this changeset.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def short_id(self):
 
        """
 
        Returns shortened version of ``raw_id`` attribute, as string,
 
        identifying this changeset, useful for web representation.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def revision(self):
 
        """
 
        Returns integer identifying this changeset.
 

	
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def commiter(self):
 
    def committer(self):
 
        """
 
        Returns Commiter for given commit
 
        Returns Committer for given commit
 
        """
 

	
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def commiter_name(self):
 
    def committer_name(self):
 
        """
 
        Returns Author name for given commit
 
        """
 

	
 
        return author_name(self.commiter)
 
        return author_name(self.committer)
 

	
 
    @LazyProperty
 
    def commiter_email(self):
 
    def committer_email(self):
 
        """
 
        Returns Author email address for given commit
 
        """
 

	
 
        return author_email(self.commiter)
 
        return author_email(self.committer)
 

	
 
    @LazyProperty
 
    def author(self):
 
        """
 
        Returns Author for given commit
 
        """
 

	
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def author_name(self):
 
        """
 
        Returns Author name for given commit
 
        """
 

	
 
        return author_name(self.author)
 

	
 
    @LazyProperty
 
    def author_email(self):
 
        """
 
        Returns Author email address for given commit
 
        """
 

	
 
        return author_email(self.author)
 

	
 
    def get_file_mode(self, path):
 
        """
 
        Returns stat mode of the file at the given ``path``.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_file_content(self, path):
 
        """
 
        Returns content of the file at the given ``path``.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_file_size(self, path):
 
        """
 
        Returns size of the file at the given ``path``.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_file_changeset(self, path):
 
        """
 
        Returns last commit of the file at the given ``path``.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_file_history(self, path):
 
        """
 
        Returns history of file as reversed list of ``Changeset`` objects for
 
        which file at given ``path`` has been modified.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_nodes(self, path):
 
        """
 
        Returns combined ``DirNode`` and ``FileNode`` objects list representing
 
        state of changeset at the given ``path``.
 

	
 
        :raises ``ChangesetError``: if node at the given ``path`` is not
 
          instance of ``DirNode``
 
        """
 
        raise NotImplementedError
 

	
 
    def get_node(self, path):
 
        """
 
        Returns ``Node`` object from the given ``path``.
 

	
 
        :raises ``NodeDoesNotExistError``: if there is no node at the given
 
          ``path``
 
        """
 
        raise NotImplementedError
 

	
 
    def fill_archive(self, stream=None, kind='tgz', prefix=None):
 
        """
 
        Fills up given stream.
 

	
 
        :param stream: file like object.
 
        :param kind: one of following: ``zip``, ``tar``, ``tgz``
 
            or ``tbz2``. Default: ``tgz``.
 
        :param prefix: name of root directory in archive.
 
            Default is repository name and changeset's raw_id joined with dash.
 

	
 
            repo-tip.<kind>
 
        """
 

	
 
        raise NotImplementedError
 

	
 
    def get_chunked_archive(self, **kwargs):
 
        """
 
        Returns iterable archive. Tiny wrapper around ``fill_archive`` method.
 

	
 
        :param chunk_size: extra parameter which controls size of returned
 
            chunks. Default:8k.
 
        """
 

	
 
        chunk_size = kwargs.pop('chunk_size', 8192)
 
        stream = kwargs.get('stream')
 
        self.fill_archive(**kwargs)
 
        while True:
 
            data = stream.read(chunk_size)
 
            if not data:
 
                break
 
            yield data
 

	
 
    @LazyProperty
 
    def root(self):
 
        """
 
        Returns ``RootNode`` object for this changeset.
 
        """
 
        return self.get_node('')
 

	
 
    def next(self, branch=None):
 
        """
 
        Returns next changeset from current, if branch is gives it will return
 
        next changeset belonging to this branch
 

	
 
        :param branch: show changesets within the given named branch
 
        """
 
        raise NotImplementedError
 

	
 
    def prev(self, branch=None):
 
        """
 
        Returns previous changeset from current, if branch is gives it will
 
        return previous changeset belonging to this branch
 

	
 
        :param branch: show changesets within the given named branch
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def added(self):
 
        """
 
        Returns list of added ``FileNode`` objects.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def changed(self):
 
        """
 
        Returns list of modified ``FileNode`` objects.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def removed(self):
 
        """
 
        Returns list of removed ``FileNode`` objects.
 
        """
 
        raise NotImplementedError
 

	
 
    @LazyProperty
 
    def size(self):
 
        """
 
        Returns total number of bytes from contents of all filenodes.
 
        """
 
        return sum((node.size for node in self.get_filenodes_generator()))
 

	
 
    def walk(self, topurl=''):
 
        """
 
        Similar to os.walk method. Insted of filesystem it walks through
 
        changeset starting at given ``topurl``.  Returns generator of tuples
 
        (topnode, dirnodes, filenodes).
 
        """
 
        topnode = self.get_node(topurl)
 
        yield (topnode, topnode.dirs, topnode.files)
 
        for dirnode in topnode.dirs:
 
            for tup in self.walk(dirnode.path):
 
                yield tup
 

	
 
    def get_filenodes_generator(self):
 
        """
 
        Returns generator that yields *all* file nodes.
 
        """
 
        for topnode, dirs, files in self.walk():
 
            for node in files:
 
                yield node
 

	
 
    def as_dict(self):
 
        """
 
        Returns dictionary with changeset's attributes and their values.
 
        """
 
        data = get_dict_for_attrs(self, ['id', 'raw_id', 'short_id',
 
            'revision', 'date', 'message'])
 
        data['author'] = {'name': self.author_name, 'email': self.author_email}
 
        data['added'] = [node.path for node in self.added]
 
        data['changed'] = [node.path for node in self.changed]
 
        data['removed'] = [node.path for node in self.removed]
 
        return data
 

	
 

	
 
class BaseWorkdir(object):
 
    """
 
    Working directory representation of single repository.
 

	
 
    :attribute: repository: repository object of working directory
 
    """
 

	
 
    def __init__(self, repository):
 
        self.repository = repository
 

	
 
    def get_branch(self):
 
        """
 
        Returns name of current branch.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_changeset(self):
 
        """
 
        Returns current changeset.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_added(self):
 
        """
 
        Returns list of ``FileNode`` objects marked as *new* in working
 
        directory.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_changed(self):
 
        """
 
        Returns list of ``FileNode`` objects *changed* in working directory.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_removed(self):
 
        """
 
        Returns list of ``RemovedFileNode`` objects marked as *removed* in
 
        working directory.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_untracked(self):
 
        """
 
        Returns list of ``FileNode`` objects which are present within working
 
        directory however are not tracked by repository.
 
        """
 
        raise NotImplementedError
 

	
 
    def get_status(self):
 
        """
 
        Returns dict with ``added``, ``changed``, ``removed`` and ``untracked``
 
        lists.
 
        """
 
        raise NotImplementedError
 

	
 
    def commit(self, message, **kwargs):
 
        """
 
        Commits local (from working directory) changes and returns newly
 
        created
 
        ``Changeset``. Updates repository's ``revisions`` list.
 

	
 
        :raises ``CommitError``: if any error occurs while committing
 
        """
 
        raise NotImplementedError
 

	
 
    def update(self, revision=None):
 
        """
 
        Fetches content of the given revision and populates it within working
 
        directory.
 
        """
 
        raise NotImplementedError
 

	
 
    def checkout_branch(self, branch=None):
 
        """
 
        Checks out ``branch`` or the backend's default branch.
 

	
 
        Raises ``BranchDoesNotExistError`` if the branch does not exist.
 
        """
 
        raise NotImplementedError
 

	
 

	
 
class BaseInMemoryChangeset(object):
 
    """
 
    Represents differences between repository's state (most recent head) and
 
    changes made *in place*.
 

	
 
    **Attributes**
 

	
 
        ``repository``
 
            repository object for this in-memory-changeset
 

	
 
        ``added``
 
            list of ``FileNode`` objects marked as *added*
 

	
 
        ``changed``
 
            list of ``FileNode`` objects marked as *changed*
 

	
 
        ``removed``
 
            list of ``FileNode`` or ``RemovedFileNode`` objects marked to be
 
            *removed*
 

	
 
        ``parents``
 
            list of ``Changeset`` representing parents of in-memory changeset.
 
            Should always be 2-element sequence.
 

	
 
    """
 

	
 
    def __init__(self, repository):
 
        self.repository = repository
 
        self.added = []
 
        self.changed = []
 
        self.removed = []
 
        self.parents = []
 

	
 
    def add(self, *filenodes):
 
        """
 
        Marks given ``FileNode`` objects as *to be committed*.
 

	
 
        :raises ``NodeAlreadyExistsError``: if node with same path exists at
 
          latest changeset
 
        :raises ``NodeAlreadyAddedError``: if node with same path is already
 
          marked as *added*
 
        """
 
        # Check if not already marked as *added* first
 
        for node in filenodes:
 
            if node.path in (n.path for n in self.added):
 
                raise NodeAlreadyAddedError("Such FileNode %s is already "
 
                    "marked for addition" % node.path)
 
        for node in filenodes:
 
            self.added.append(node)
 

	
 
    def change(self, *filenodes):
 
        """
 
        Marks given ``FileNode`` objects to be *changed* in next commit.
 

	
 
        :raises ``EmptyRepositoryError``: if there are no changesets yet
 
        :raises ``NodeAlreadyExistsError``: if node with same path is already
 
          marked to be *changed*
 
        :raises ``NodeAlreadyRemovedError``: if node with same path is already
 
          marked to be *removed*
 
        :raises ``NodeDoesNotExistError``: if node doesn't exist in latest
 
          changeset
 
        :raises ``NodeNotChangedError``: if node hasn't really be changed
 
        """
 
        for node in filenodes:
 
            if node.path in (n.path for n in self.removed):
 
                raise NodeAlreadyRemovedError("Node at %s is already marked "
 
                    "as removed" % node.path)
 
        try:
 
            self.repository.get_changeset()
 
        except EmptyRepositoryError:
 
            raise EmptyRepositoryError("Nothing to change - try to *add* new "
 
                "nodes rather than changing them")
 
        for node in filenodes:
 
            if node.path in (n.path for n in self.changed):
 
                raise NodeAlreadyChangedError("Node at '%s' is already "
 
                    "marked as changed" % node.path)
 
            self.changed.append(node)
 

	
 
    def remove(self, *filenodes):
 
        """
 
        Marks given ``FileNode`` (or ``RemovedFileNode``) objects to be
 
        *removed* in next commit.
 

	
 
        :raises ``NodeAlreadyRemovedError``: if node has been already marked to
 
          be *removed*
 
        :raises ``NodeAlreadyChangedError``: if node has been already marked to
 
          be *changed*
 
        """
 
        for node in filenodes:
 
            if node.path in (n.path for n in self.removed):
 
                raise NodeAlreadyRemovedError("Node is already marked to "
 
                    "for removal at %s" % node.path)
 
            if node.path in (n.path for n in self.changed):
 
                raise NodeAlreadyChangedError("Node is already marked to "
 
                    "be changed at %s" % node.path)
 
            # We only mark node as *removed* - real removal is done by
 
            # commit method
 
            self.removed.append(node)
 

	
 
    def reset(self):
 
        """
 
        Resets this instance to initial state (cleans ``added``, ``changed``
 
        and ``removed`` lists).
 
        """
 
        self.added = []
 
        self.changed = []
 
        self.removed = []
 
        self.parents = []
 

	
 
    def get_ipaths(self):
 
        """
 
        Returns generator of paths from nodes marked as added, changed or
 
        removed.
 
        """
 
        for node in chain(self.added, self.changed, self.removed):
 
            yield node.path
 

	
 
    def get_paths(self):
 
        """
 
        Returns list of paths from nodes marked as added, changed or removed.
 
        """
 
        return list(self.get_ipaths())
 

	
 
    def check_integrity(self, parents=None):
 
        """
 
        Checks in-memory changeset's integrity. Also, sets parents if not
 
        already set.
 

	
 
        :raises CommitError: if any error occurs (i.e.
 
          ``NodeDoesNotExistError``).
 
        """
 
        if not self.parents:
 
            parents = parents or []
 
            if len(parents) == 0:
 
                try:
 
                    parents = [self.repository.get_changeset(), None]
 
                except EmptyRepositoryError:
 
                    parents = [None, None]
 
            elif len(parents) == 1:
 
                parents += [None]
 
            self.parents = parents
 

	
 
        # Local parents, only if not None
 
        parents = [p for p in self.parents if p]
 

	
 
        # Check nodes marked as added
 
        for p in parents:
 
            for node in self.added:
 
                try:
 
                    p.get_node(node.path)
 
                except NodeDoesNotExistError:
 
                    pass
 
                else:
 
                    raise NodeAlreadyExistsError("Node at %s already exists "
 
                        "at %s" % (node.path, p))
 

	
 
        # Check nodes marked as changed
 
        missing = set(self.changed)
 
        not_changed = set(self.changed)
 
        if self.changed and not parents:
 
            raise NodeDoesNotExistError(str(self.changed[0].path))
 
        for p in parents:
 
            for node in self.changed:
 
                try:
 
                    old = p.get_node(node.path)
 
                    missing.remove(node)
 
                    if old.content != node.content:
 
                        not_changed.remove(node)
 
                except NodeDoesNotExistError:
 
                    pass
 
        if self.changed and missing:
 
            raise NodeDoesNotExistError("Node at %s is missing "
 
                "(parents: %s)" % (node.path, parents))
 

	
 
        if self.changed and not_changed:
 
            raise NodeNotChangedError("Node at %s wasn't actually changed "
 
                "since parents' changesets: %s" % (not_changed.pop().path,
 
                    parents)
 
            )
 

	
 
        # Check nodes marked as removed
 
        if self.removed and not parents:
 
            raise NodeDoesNotExistError("Cannot remove node at %s as there "
 
                "were no parents specified" % self.removed[0].path)
 
        really_removed = set()
 
        for p in parents:
 
            for node in self.removed:
 
                try:
 
                    p.get_node(node.path)
 
                    really_removed.add(node)
 
                except ChangesetError:
 
                    pass
 
        not_removed = set(self.removed) - really_removed
 
        if not_removed:
 
            raise NodeDoesNotExistError("Cannot remove node at %s from "
 
                "following parents: %s" % (not_removed[0], parents))
 

	
 
    def commit(self, message, author, parents=None, branch=None, date=None,
 
            **kwargs):
 
        """
 
        Performs in-memory commit (doesn't check workdir in any way) and
 
        returns newly created ``Changeset``. Updates repository's
 
        ``revisions``.
 

	
 
        .. note::
 
            While overriding this method each backend's should call
 
            ``self.check_integrity(parents)`` in the first place.
 

	
 
        :param message: message of the commit
 
        :param author: full username, i.e. "Joe Doe <joe.doe@example.com>"
 
        :param parents: single parent or sequence of parents from which commit
 
          would be derieved
 
        :param date: ``datetime.datetime`` instance. Defaults to
 
          ``datetime.datetime.now()``.
 
        :param branch: branch name, as string. If none given, default backend's
 
          branch would be used.
 

	
 
        :raises ``CommitError``: if any error occurs while committing
 
        """
 
        raise NotImplementedError
 

	
 

	
 
class EmptyChangeset(BaseChangeset):
 
    """
 
    An dummy empty changeset. It's possible to pass hash when creating
 
    an EmptyChangeset
 
    """
 

	
 
    def __init__(self, cs='0' * 40, repo=None, requested_revision=None,
 
                 alias=None, revision=-1, message='', author='', date=''):
 
        self._empty_cs = cs
 
        self.revision = revision
 
        self.message = message
 
        self.author = author
 
        self.date = date
 
        self.repository = repo
 
        self.requested_revision = requested_revision
 
        self.alias = alias
 

	
 
    @LazyProperty
 
    def raw_id(self):
 
        """
 
        Returns raw string identifying this changeset, useful for web
 
        representation.
 
        """
 

	
 
        return self._empty_cs
 

	
 
    @LazyProperty
 
    def branch(self):
 
        from rhodecode.lib.vcs.backends import get_backend
 
        return get_backend(self.alias).DEFAULT_BRANCH_NAME
 

	
 
    @LazyProperty
 
    def short_id(self):
 
        return self.raw_id[:12]
 

	
 
    def get_file_changeset(self, path):
 
        return self
 

	
 
    def get_file_content(self, path):
 
        return u''
 

	
 
    def get_file_size(self, path):
 
        return 0
rhodecode/lib/vcs/backends/git/changeset.py
Show inline comments
 
import re
 
from itertools import chain
 
from dulwich import objects
 
from subprocess import Popen, PIPE
 
import rhodecode
 
from rhodecode.lib.vcs.conf import settings
 
from rhodecode.lib.vcs.exceptions import RepositoryError
 
from rhodecode.lib.vcs.exceptions import ChangesetError
 
from rhodecode.lib.vcs.exceptions import NodeDoesNotExistError
 
from rhodecode.lib.vcs.exceptions import VCSError
 
from rhodecode.lib.vcs.exceptions import ChangesetDoesNotExistError
 
from rhodecode.lib.vcs.exceptions import ImproperArchiveTypeError
 
from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyChangeset
 
from rhodecode.lib.vcs.nodes import FileNode, DirNode, NodeKind, RootNode, \
 
    RemovedFileNode, SubModuleNode, ChangedFileNodesGenerator,\
 
    AddedFileNodesGenerator, RemovedFileNodesGenerator
 
from rhodecode.lib.vcs.utils import safe_unicode
 
from rhodecode.lib.vcs.utils import date_fromtimestamp
 
from rhodecode.lib.vcs.utils.lazy import LazyProperty
 

	
 

	
 
class GitChangeset(BaseChangeset):
 
    """
 
    Represents state of the repository at single revision.
 
    """
 

	
 
    def __init__(self, repository, revision):
 
        self._stat_modes = {}
 
        self.repository = repository
 

	
 
        try:
 
            commit = self.repository._repo.get_object(revision)
 
            if isinstance(commit, objects.Tag):
 
                revision = commit.object[1]
 
                commit = self.repository._repo.get_object(commit.object[1])
 
        except KeyError:
 
            raise RepositoryError("Cannot get object with id %s" % revision)
 
        self.raw_id = revision
 
        self.id = self.raw_id
 
        self.short_id = self.raw_id[:12]
 
        self._commit = commit
 

	
 
        self._tree_id = commit.tree
 
        self._commiter_property = 'committer'
 
        self._committer_property = 'committer'
 
        self._author_property = 'author'
 
        self._date_property = 'commit_time'
 
        self._date_tz_property = 'commit_timezone'
 
        self.revision = repository.revisions.index(revision)
 

	
 
        self.message = safe_unicode(commit.message)
 

	
 
        self.nodes = {}
 
        self._paths = {}
 

	
 
    @LazyProperty
 
    def commiter(self):
 
        return safe_unicode(getattr(self._commit, self._commiter_property))
 
    def committer(self):
 
        return safe_unicode(getattr(self._commit, self._committer_property))
 

	
 
    @LazyProperty
 
    def author(self):
 
        return safe_unicode(getattr(self._commit, self._author_property))
 

	
 
    @LazyProperty
 
    def date(self):
 
        return date_fromtimestamp(getattr(self._commit, self._date_property),
 
                                  getattr(self._commit, self._date_tz_property))
 

	
 
    @LazyProperty
 
    def _timestamp(self):
 
        return getattr(self._commit, self._date_property)
 

	
 
    @LazyProperty
 
    def status(self):
 
        """
 
        Returns modified, added, removed, deleted files for current changeset
 
        """
 
        return self.changed, self.added, self.removed
 

	
 
    @LazyProperty
 
    def tags(self):
 
        _tags = []
 
        for tname, tsha in self.repository.tags.iteritems():
 
            if tsha == self.raw_id:
 
                _tags.append(tname)
 
        return _tags
 

	
 
    @LazyProperty
 
    def branch(self):
 

	
 
        heads = self.repository._heads(reverse=False)
 

	
 
        ref = heads.get(self.raw_id)
 
        if ref:
 
            return safe_unicode(ref)
 

	
 
    def _fix_path(self, path):
 
        """
 
        Paths are stored without trailing slash so we need to get rid off it if
 
        needed.
 
        """
 
        if path.endswith('/'):
 
            path = path.rstrip('/')
 
        return path
 

	
 
    def _get_id_for_path(self, path):
 

	
 
        # FIXME: Please, spare a couple of minutes and make those codes cleaner;
 
        if not path in self._paths:
 
            path = path.strip('/')
 
            # set root tree
 
            tree = self.repository._repo[self._tree_id]
 
            if path == '':
 
                self._paths[''] = tree.id
 
                return tree.id
 
            splitted = path.split('/')
 
            dirs, name = splitted[:-1], splitted[-1]
 
            curdir = ''
 

	
 
            # initially extract things from root dir
 
            for item, stat, id in tree.iteritems():
 
                if curdir:
 
                    name = '/'.join((curdir, item))
 
                else:
 
                    name = item
 
                self._paths[name] = id
 
                self._stat_modes[name] = stat
 

	
 
            for dir in dirs:
 
                if curdir:
 
                    curdir = '/'.join((curdir, dir))
 
                else:
 
                    curdir = dir
 
                dir_id = None
 
                for item, stat, id in tree.iteritems():
 
                    if dir == item:
 
                        dir_id = id
 
                if dir_id:
 
                    # Update tree
 
                    tree = self.repository._repo[dir_id]
 
                    if not isinstance(tree, objects.Tree):
 
                        raise ChangesetError('%s is not a directory' % curdir)
 
                else:
 
                    raise ChangesetError('%s have not been found' % curdir)
 

	
 
                # cache all items from the given traversed tree
 
                for item, stat, id in tree.iteritems():
 
                    if curdir:
 
                        name = '/'.join((curdir, item))
 
                    else:
 
                        name = item
 
                    self._paths[name] = id
 
                    self._stat_modes[name] = stat
 
            if not path in self._paths:
 
                raise NodeDoesNotExistError("There is no file nor directory "
 
                    "at the given path %r at revision %r"
 
                    % (path, self.short_id))
 
        return self._paths[path]
 

	
 
    def _get_kind(self, path):
 
        obj = self.repository._repo[self._get_id_for_path(path)]
 
        if isinstance(obj, objects.Blob):
 
            return NodeKind.FILE
 
        elif isinstance(obj, objects.Tree):
 
            return NodeKind.DIR
 

	
 
    def _get_filectx(self, path):
 
        path = self._fix_path(path)
 
        if self._get_kind(path) != NodeKind.FILE:
 
            raise ChangesetError("File does not exist for revision %r at "
 
                " %r" % (self.raw_id, path))
 
        return path
 

	
 
    def _get_file_nodes(self):
 
        return chain(*(t[2] for t in self.walk()))
 

	
 
    @LazyProperty
 
    def parents(self):
 
        """
 
        Returns list of parents changesets.
 
        """
 
        return [self.repository.get_changeset(parent)
 
                for parent in self._commit.parents]
 

	
 
    @LazyProperty
 
    def children(self):
 
        """
 
        Returns list of children changesets.
 
        """
 
        so, se = self.repository.run_git_command(
 
            "rev-list --all --children | grep '^%s'" % self.raw_id
 
        )
 

	
 
        children = []
 
        for l in so.splitlines():
 
            childs = l.split(' ')[1:]
 
            children.extend(childs)
 
        return [self.repository.get_changeset(cs) for cs in children]
 

	
 
    def next(self, branch=None):
 

	
 
        if branch and self.branch != branch:
 
            raise VCSError('Branch option used on changeset not belonging '
 
                           'to that branch')
 

	
 
        def _next(changeset, branch):
 
            try:
 
                next_ = changeset.revision + 1
 
                next_rev = changeset.repository.revisions[next_]
 
            except IndexError:
 
                raise ChangesetDoesNotExistError
 
            cs = changeset.repository.get_changeset(next_rev)
 

	
 
            if branch and branch != cs.branch:
 
                return _next(cs, branch)
 

	
 
            return cs
 

	
 
        return _next(self, branch)
 

	
 
    def prev(self, branch=None):
 
        if branch and self.branch != branch:
 
            raise VCSError('Branch option used on changeset not belonging '
 
                           'to that branch')
 

	
 
        def _prev(changeset, branch):
 
            try:
 
                prev_ = changeset.revision - 1
 
                if prev_ < 0:
 
                    raise IndexError
 
                prev_rev = changeset.repository.revisions[prev_]
 
            except IndexError:
 
                raise ChangesetDoesNotExistError
 

	
 
            cs = changeset.repository.get_changeset(prev_rev)
 

	
 
            if branch and branch != cs.branch:
 
                return _prev(cs, branch)
 

	
 
            return cs
 

	
 
        return _prev(self, branch)
 

	
 
    def diff(self, ignore_whitespace=True, context=3):
 
        rev1 = self.parents[0] if self.parents else self.repository.EMPTY_CHANGESET
 
        rev2 = self
 
        return ''.join(self.repository.get_diff(rev1, rev2,
 
                                    ignore_whitespace=ignore_whitespace,
 
                                    context=context))
 

	
 
    def get_file_mode(self, path):
 
        """
 
        Returns stat mode of the file at the given ``path``.
 
        """
 
        # ensure path is traversed
 
        self._get_id_for_path(path)
 
        return self._stat_modes[path]
 

	
 
    def get_file_content(self, path):
 
        """
 
        Returns content of the file at given ``path``.
 
        """
 
        id = self._get_id_for_path(path)
 
        blob = self.repository._repo[id]
 
        return blob.as_pretty_string()
 

	
 
    def get_file_size(self, path):
 
        """
 
        Returns size of the file at given ``path``.
 
        """
 
        id = self._get_id_for_path(path)
 
        blob = self.repository._repo[id]
 
        return blob.raw_length()
 

	
 
    def get_file_changeset(self, path):
 
        """
 
        Returns last commit of the file at the given ``path``.
 
        """
 
        node = self.get_node(path)
 
        return node.history[0]
 

	
 
    def get_file_history(self, path):
 
        """
 
        Returns history of file as reversed list of ``Changeset`` objects for
 
        which file at given ``path`` has been modified.
 

	
 
        TODO: This function now uses os underlying 'git' and 'grep' commands
 
        which is generally not good. Should be replaced with algorithm
 
        iterating commits.
 
        """
 
        self._get_filectx(path)
 

	
 
        cmd = 'log --pretty="format: %%H" -s -p %s -- "%s"' % (
 
                  self.id, path
 
               )
 
        so, se = self.repository.run_git_command(cmd)
 
        ids = re.findall(r'[0-9a-fA-F]{40}', so)
 
        return [self.repository.get_changeset(id) for id in ids]
 

	
 
    def get_file_history_2(self, path):
 
        """
 
        Returns history of file as reversed list of ``Changeset`` objects for
 
        which file at given ``path`` has been modified.
 

	
 
        """
 
        self._get_filectx(path)
 
        from dulwich.walk import Walker
 
        include = [self.id]
 
        walker = Walker(self.repository._repo.object_store, include,
 
                        paths=[path], max_entries=1)
 
        return [self.repository.get_changeset(sha)
 
                for sha in (x.commit.id for x in walker)]
 

	
 
    def get_file_annotate(self, path):
 
        """
 
        Returns a generator of four element tuples with
 
            lineno, sha, changeset lazy loader and line
 

	
 
        TODO: This function now uses os underlying 'git' command which is
 
        generally not good. Should be replaced with algorithm iterating
 
        commits.
 
        """
 
        cmd = 'blame -l --root -r %s -- "%s"' % (self.id, path)
 
        # -l     ==> outputs long shas (and we need all 40 characters)
 
        # --root ==> doesn't put '^' character for bounderies
 
        # -r sha ==> blames for the given revision
 
        so, se = self.repository.run_git_command(cmd)
 

	
 
        for i, blame_line in enumerate(so.split('\n')[:-1]):
 
            ln_no = i + 1
 
            sha, line = re.split(r' ', blame_line, 1)
 
            yield (ln_no, sha, lambda: self.repository.get_changeset(sha), line)
 

	
 
    def fill_archive(self, stream=None, kind='tgz', prefix=None,
 
                     subrepos=False):
 
        """
 
        Fills up given stream.
 

	
 
        :param stream: file like object.
 
        :param kind: one of following: ``zip``, ``tgz`` or ``tbz2``.
 
            Default: ``tgz``.
 
        :param prefix: name of root directory in archive.
 
            Default is repository name and changeset's raw_id joined with dash
 
            (``repo-tip.<KIND>``).
 
        :param subrepos: include subrepos in this archive.
 

	
 
        :raise ImproperArchiveTypeError: If given kind is wrong.
 
        :raise VcsError: If given stream is None
 

	
 
        """
 
        allowed_kinds = settings.ARCHIVE_SPECS.keys()
 
        if kind not in allowed_kinds:
 
            raise ImproperArchiveTypeError('Archive kind not supported use one'
 
                'of %s', allowed_kinds)
 

	
 
        if prefix is None:
 
            prefix = '%s-%s' % (self.repository.name, self.short_id)
 
        elif prefix.startswith('/'):
 
            raise VCSError("Prefix cannot start with leading slash")
 
        elif prefix.strip() == '':
 
            raise VCSError("Prefix cannot be empty")
 

	
 
        if kind == 'zip':
 
            frmt = 'zip'
 
        else:
 
            frmt = 'tar'
 
        _git_path = rhodecode.CONFIG.get('git_path', 'git')
 
        cmd = '%s archive --format=%s --prefix=%s/ %s' % (_git_path,
 
                                                frmt, prefix, self.raw_id)
 
        if kind == 'tgz':
 
            cmd += ' | gzip -9'
 
        elif kind == 'tbz2':
 
            cmd += ' | bzip2 -9'
 

	
 
        if stream is None:
 
            raise VCSError('You need to pass in a valid stream for filling'
 
                           ' with archival data')
 
        popen = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=True,
 
            cwd=self.repository.path)
 

	
 
        buffer_size = 1024 * 8
 
        chunk = popen.stdout.read(buffer_size)
 
        while chunk:
 
            stream.write(chunk)
 
            chunk = popen.stdout.read(buffer_size)
 
        # Make sure all descriptors would be read
 
        popen.communicate()
 

	
 
    def get_nodes(self, path):
 
        if self._get_kind(path) != NodeKind.DIR:
 
            raise ChangesetError("Directory does not exist for revision %r at "
 
                " %r" % (self.revision, path))
 
        path = self._fix_path(path)
 
        id = self._get_id_for_path(path)
 
        tree = self.repository._repo[id]
 
        dirnodes = []
 
        filenodes = []
 
        als = self.repository.alias
 
        for name, stat, id in tree.iteritems():
 
            if objects.S_ISGITLINK(stat):
 
                dirnodes.append(SubModuleNode(name, url=None, changeset=id,
 
                                              alias=als))
 
                continue
 

	
 
            obj = self.repository._repo.get_object(id)
 
            if path != '':
 
                obj_path = '/'.join((path, name))
 
            else:
 
                obj_path = name
 
            if obj_path not in self._stat_modes:
 
                self._stat_modes[obj_path] = stat
 
            if isinstance(obj, objects.Tree):
 
                dirnodes.append(DirNode(obj_path, changeset=self))
 
            elif isinstance(obj, objects.Blob):
 
                filenodes.append(FileNode(obj_path, changeset=self, mode=stat))
 
            else:
 
                raise ChangesetError("Requested object should be Tree "
 
                                     "or Blob, is %r" % type(obj))
 
        nodes = dirnodes + filenodes
 
        for node in nodes:
 
            if not node.path in self.nodes:
 
                self.nodes[node.path] = node
 
        nodes.sort()
 
        return nodes
 

	
 
    def get_node(self, path):
 
        if isinstance(path, unicode):
 
            path = path.encode('utf-8')
 
        path = self._fix_path(path)
 
        if not path in self.nodes:
 
            try:
 
                id_ = self._get_id_for_path(path)
 
            except ChangesetError:
 
                raise NodeDoesNotExistError("Cannot find one of parents' "
 
                    "directories for a given path: %s" % path)
 

	
 
            _GL = lambda m: m and objects.S_ISGITLINK(m)
 
            if _GL(self._stat_modes.get(path)):
 
                node = SubModuleNode(path, url=None, changeset=id_,
 
                                     alias=self.repository.alias)
 
            else:
 
                obj = self.repository._repo.get_object(id_)
 

	
 
                if isinstance(obj, objects.Tree):
 
                    if path == '':
 
                        node = RootNode(changeset=self)
 
                    else:
 
                        node = DirNode(path, changeset=self)
 
                    node._tree = obj
 
                elif isinstance(obj, objects.Blob):
 
                    node = FileNode(path, changeset=self)
 
                    node._blob = obj
 
                else:
 
                    raise NodeDoesNotExistError("There is no file nor directory "
 
                        "at the given path %r at revision %r"
 
                        % (path, self.short_id))
 
            # cache node
 
            self.nodes[path] = node
 
        return self.nodes[path]
 

	
 
    @LazyProperty
 
    def affected_files(self):
 
        """
 
        Get's a fast accessible file changes for given changeset
 
        """
 
        a, m, d = self._changes_cache
 
        return list(a.union(m).union(d))
 

	
 
    @LazyProperty
 
    def _diff_name_status(self):
 
        output = []
 
        for parent in self.parents:
 
            cmd = 'diff --name-status %s %s --encoding=utf8' % (parent.raw_id,
 
                                                                self.raw_id)
 
            so, se = self.repository.run_git_command(cmd)
 
            output.append(so.strip())
 
        return '\n'.join(output)
 

	
 
    @LazyProperty
 
    def _changes_cache(self):
 
        added = set()
 
        modified = set()
 
        deleted = set()
 
        _r = self.repository._repo
 

	
 
        parents = self.parents
 
        if not self.parents:
 
            parents = [EmptyChangeset()]
 
        for parent in parents:
 
            if isinstance(parent, EmptyChangeset):
 
                oid = None
 
            else:
 
                oid = _r[parent.raw_id].tree
 
            changes = _r.object_store.tree_changes(oid, _r[self.raw_id].tree)
 
            for (oldpath, newpath), (_, _), (_, _) in changes:
 
                if newpath and oldpath:
 
                    modified.add(newpath)
 
                elif newpath and not oldpath:
 
                    added.add(newpath)
 
                elif not newpath and oldpath:
 
                    deleted.add(oldpath)
 
        return added, modified, deleted
 

	
 
    def _get_paths_for_status(self, status):
 
        """
 
        Returns sorted list of paths for given ``status``.
 

	
 
        :param status: one of: *added*, *modified* or *deleted*
 
        """
 
        a, m, d = self._changes_cache
 
        return sorted({
 
            'added': list(a),
 
            'modified': list(m),
 
            'deleted': list(d)}[status]
 
        )
 

	
 
    @LazyProperty
 
    def added(self):
 
        """
 
        Returns list of added ``FileNode`` objects.
 
        """
 
        if not self.parents:
 
            return list(self._get_file_nodes())
 
        return AddedFileNodesGenerator([n for n in
 
                                self._get_paths_for_status('added')], self)
 

	
 
    @LazyProperty
 
    def changed(self):
 
        """
 
        Returns list of modified ``FileNode`` objects.
 
        """
 
        if not self.parents:
 
            return []
 
        return ChangedFileNodesGenerator([n for n in
 
                                self._get_paths_for_status('modified')], self)
 

	
 
    @LazyProperty
 
    def removed(self):
 
        """
 
        Returns list of removed ``FileNode`` objects.
 
        """
 
        if not self.parents:
 
            return []
 
        return RemovedFileNodesGenerator([n for n in
 
                                self._get_paths_for_status('deleted')], self)
rhodecode/lib/vcs/backends/hg/changeset.py
Show inline comments
 
import os
 
import posixpath
 

	
 
from rhodecode.lib.vcs.backends.base import BaseChangeset
 
from rhodecode.lib.vcs.conf import settings
 
from rhodecode.lib.vcs.exceptions import  ChangesetDoesNotExistError, \
 
    ChangesetError, ImproperArchiveTypeError, NodeDoesNotExistError, VCSError
 
from rhodecode.lib.vcs.nodes import AddedFileNodesGenerator, \
 
    ChangedFileNodesGenerator, DirNode, FileNode, NodeKind, \
 
    RemovedFileNodesGenerator, RootNode, SubModuleNode
 

	
 
from rhodecode.lib.vcs.utils import safe_str, safe_unicode, date_fromtimestamp
 
from rhodecode.lib.vcs.utils.lazy import LazyProperty
 
from rhodecode.lib.vcs.utils.paths import get_dirs_for_path
 
from rhodecode.lib.vcs.utils.hgcompat import archival, hex
 

	
 

	
 
class MercurialChangeset(BaseChangeset):
 
    """
 
    Represents state of the repository at the single revision.
 
    """
 

	
 
    def __init__(self, repository, revision):
 
        self.repository = repository
 
        self.raw_id = revision
 
        self._ctx = repository._repo[revision]
 
        self.revision = self._ctx._rev
 
        self.nodes = {}
 

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

	
 
    @LazyProperty
 
    def branch(self):
 
        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())
 

	
 
    @LazyProperty
 
    def commiter(self):
 
    def committer(self):
 
        return safe_unicode(self.author)
 

	
 
    @LazyProperty
 
    def author(self):
 
        return safe_unicode(self._ctx.user())
 

	
 
    @LazyProperty
 
    def date(self):
 
        return date_fromtimestamp(*self._ctx.date())
 

	
 
    @LazyProperty
 
    def _timestamp(self):
 
        return self._ctx.date()[0]
 

	
 
    @LazyProperty
 
    def status(self):
 
        """
 
        Returns modified, added, removed, deleted files for current changeset
 
        """
 
        return self.repository._repo.status(self._ctx.p1().node(),
 
                                            self._ctx.node())
 

	
 
    @LazyProperty
 
    def _file_paths(self):
 
        return list(self._ctx)
 

	
 
    @LazyProperty
 
    def _dir_paths(self):
 
        p = list(set(get_dirs_for_path(*self._file_paths)))
 
        p.insert(0, '')
 
        return p
 

	
 
    @LazyProperty
 
    def _paths(self):
 
        return self._dir_paths + self._file_paths
 

	
 
    @LazyProperty
 
    def id(self):
 
        if self.last:
 
            return u'tip'
 
        return self.short_id
 

	
 
    @LazyProperty
 
    def short_id(self):
 
        return self.raw_id[:12]
 

	
 
    @LazyProperty
 
    def parents(self):
 
        """
 
        Returns list of parents changesets.
 
        """
 
        return [self.repository.get_changeset(parent.rev())
 
                for parent in self._ctx.parents() if parent.rev() >= 0]
 

	
 
    @LazyProperty
 
    def children(self):
 
        """
 
        Returns list of children changesets.
 
        """
 
        return [self.repository.get_changeset(child.rev())
 
                for child in self._ctx.children() if child.rev() >= 0]
 

	
 
    def next(self, branch=None):
 

	
 
        if branch and self.branch != branch:
 
            raise VCSError('Branch option used on changeset not belonging '
 
                           'to that branch')
 

	
 
        def _next(changeset, branch):
 
            try:
 
                next_ = changeset.revision + 1
 
                next_rev = changeset.repository.revisions[next_]
 
            except IndexError:
 
                raise ChangesetDoesNotExistError
 
            cs = changeset.repository.get_changeset(next_rev)
 

	
 
            if branch and branch != cs.branch:
 
                return _next(cs, branch)
 

	
 
            return cs
 

	
 
        return _next(self, branch)
 

	
 
    def prev(self, branch=None):
 
        if branch and self.branch != branch:
 
            raise VCSError('Branch option used on changeset not belonging '
 
                           'to that branch')
 

	
 
        def _prev(changeset, branch):
 
            try:
 
                prev_ = changeset.revision - 1
 
                if prev_ < 0:
 
                    raise IndexError
 
                prev_rev = changeset.repository.revisions[prev_]
 
            except IndexError:
 
                raise ChangesetDoesNotExistError
 

	
 
            cs = changeset.repository.get_changeset(prev_rev)
 

	
 
            if branch and branch != cs.branch:
 
                return _prev(cs, branch)
 

	
 
            return cs
 

	
 
        return _prev(self, branch)
 

	
 
    def diff(self, ignore_whitespace=True, context=3):
 
        return ''.join(self._ctx.diff(git=True,
 
                                      ignore_whitespace=ignore_whitespace,
 
                                      context=context))
 

	
 
    def _fix_path(self, path):
 
        """
 
        Paths are stored without trailing slash so we need to get rid off it if
 
        needed. Also mercurial keeps filenodes as str so we need to decode
 
        from unicode to str
 
        """
 
        if path.endswith('/'):
 
            path = path.rstrip('/')
 

	
 
        return safe_str(path)
 

	
 
    def _get_kind(self, path):
 
        path = self._fix_path(path)
 
        if path in self._file_paths:
 
            return NodeKind.FILE
 
        elif path in self._dir_paths:
 
            return NodeKind.DIR
 
        else:
 
            raise ChangesetError("Node does not exist at the given path %r"
 
                % (path))
 

	
 
    def _get_filectx(self, path):
 
        path = self._fix_path(path)
 
        if self._get_kind(path) != NodeKind.FILE:
 
            raise ChangesetError("File does not exist for revision %r at "
 
                " %r" % (self.raw_id, path))
 
        return self._ctx.filectx(path)
 

	
 
    def _extract_submodules(self):
 
        """
 
        returns a dictionary with submodule information from substate file
 
        of hg repository
 
        """
 
        return self._ctx.substate
 

	
 
    def get_file_mode(self, path):
 
        """
 
        Returns stat mode of the file at the given ``path``.
 
        """
 
        fctx = self._get_filectx(path)
 
        if 'x' in fctx.flags():
 
            return 0100755
 
        else:
 
            return 0100644
 

	
 
    def get_file_content(self, path):
 
        """
 
        Returns content of the file at given ``path``.
 
        """
 
        fctx = self._get_filectx(path)
 
        return fctx.data()
 

	
 
    def get_file_size(self, path):
 
        """
 
        Returns size of the file at given ``path``.
 
        """
 
        fctx = self._get_filectx(path)
 
        return fctx.size()
 

	
 
    def get_file_changeset(self, path):
 
        """
 
        Returns last commit of the file at the given ``path``.
 
        """
 
        node = self.get_node(path)
 
        return node.history[0]
 

	
 
    def get_file_history(self, path):
 
        """
 
        Returns history of file as reversed list of ``Changeset`` objects for
 
        which file at given ``path`` has been modified.
 
        """
 
        fctx = self._get_filectx(path)
 
        nodes = [fctx.filectx(x).node() for x in fctx.filelog()]
 
        changesets = [self.repository.get_changeset(hex(node))
 
            for node in reversed(nodes)]
 
        return changesets
 

	
 
    def get_file_annotate(self, path):
 
        """
 
        Returns a generator of four element tuples with
 
            lineno, sha, changeset lazy loader and line
 
        """
 

	
 
        fctx = self._get_filectx(path)
 
        for i, annotate_data in enumerate(fctx.annotate()):
 
            ln_no = i + 1
 
            sha = hex(annotate_data[0].node())
 
            yield (ln_no, sha, lambda: self.repository.get_changeset(sha), annotate_data[1],)
 

	
 
    def fill_archive(self, stream=None, kind='tgz', prefix=None,
 
                     subrepos=False):
 
        """
 
        Fills up given stream.
 

	
 
        :param stream: file like object.
 
        :param kind: one of following: ``zip``, ``tgz`` or ``tbz2``.
 
            Default: ``tgz``.
 
        :param prefix: name of root directory in archive.
 
            Default is repository name and changeset's raw_id joined with dash
 
            (``repo-tip.<KIND>``).
 
        :param subrepos: include subrepos in this archive.
 

	
 
        :raise ImproperArchiveTypeError: If given kind is wrong.
 
        :raise VcsError: If given stream is None
 
        """
 

	
 
        allowed_kinds = settings.ARCHIVE_SPECS.keys()
 
        if kind not in allowed_kinds:
 
            raise ImproperArchiveTypeError('Archive kind not supported use one'
 
                'of %s', allowed_kinds)
 

	
 
        if stream is None:
 
            raise VCSError('You need to pass in a valid stream for filling'
 
                           ' with archival data')
 

	
 
        if prefix is None:
 
            prefix = '%s-%s' % (self.repository.name, self.short_id)
 
        elif prefix.startswith('/'):
 
            raise VCSError("Prefix cannot start with leading slash")
 
        elif prefix.strip() == '':
 
            raise VCSError("Prefix cannot be empty")
 

	
 
        archival.archive(self.repository._repo, stream, self.raw_id,
 
                         kind, prefix=prefix, subrepos=subrepos)
 

	
 
        if stream.closed and hasattr(stream, 'name'):
 
            stream = open(stream.name, 'rb')
 
        elif hasattr(stream, 'mode') and 'r' not in stream.mode:
 
            stream = open(stream.name, 'rb')
 
        else:
 
            stream.seek(0)
 

	
 
    def get_nodes(self, path):
 
        """
 
        Returns combined ``DirNode`` and ``FileNode`` objects list representing
 
        state of changeset at the given ``path``. If node at the given ``path``
 
        is not instance of ``DirNode``, ChangesetError would be raised.
 
        """
 

	
 
        if self._get_kind(path) != NodeKind.DIR:
 
            raise ChangesetError("Directory does not exist for revision %r at "
 
                " %r" % (self.revision, path))
 
        path = self._fix_path(path)
 

	
 
        filenodes = [FileNode(f, changeset=self) for f in self._file_paths
 
            if os.path.dirname(f) == path]
 
        dirs = path == '' and '' or [d for d in self._dir_paths
 
            if d and posixpath.dirname(d) == path]
 
        dirnodes = [DirNode(d, changeset=self) for d in dirs
 
            if os.path.dirname(d) == path]
 

	
 
        als = self.repository.alias
 
        for k, vals in self._extract_submodules().iteritems():
 
            #vals = url,rev,type
 
            loc = vals[0]
 
            cs = vals[1]
 
            dirnodes.append(SubModuleNode(k, url=loc, changeset=cs,
 
                                          alias=als))
 
        nodes = dirnodes + filenodes
 
        # cache nodes
 
        for node in nodes:
 
            self.nodes[node.path] = node
 
        nodes.sort()
 

	
 
        return nodes
 

	
 
    def get_node(self, path):
 
        """
 
        Returns ``Node`` object from the given ``path``. If there is no node at
 
        the given ``path``, ``ChangesetError`` would be raised.
 
        """
 

	
 
        path = self._fix_path(path)
 

	
 
        if not path in self.nodes:
 
            if path in self._file_paths:
 
                node = FileNode(path, changeset=self)
 
            elif path in self._dir_paths or path in self._dir_paths:
 
                if path == '':
 
                    node = RootNode(changeset=self)
 
                else:
 
                    node = DirNode(path, changeset=self)
 
            else:
 
                raise NodeDoesNotExistError("There is no file nor directory "
 
                    "at the given path: %r at revision %r"
 
                    % (path, self.short_id))
 
            # cache node
 
            self.nodes[path] = node
 
        return self.nodes[path]
 

	
 
    @LazyProperty
 
    def affected_files(self):
 
        """
 
        Get's a fast accessible file changes for given changeset
 
        """
 
        return self._ctx.files()
 

	
 
    @property
 
    def added(self):
 
        """
 
        Returns list of added ``FileNode`` objects.
 
        """
 
        return AddedFileNodesGenerator([n for n in self.status[1]], self)
 

	
 
    @property
 
    def changed(self):
 
        """
 
        Returns list of modified ``FileNode`` objects.
 
        """
 
        return ChangedFileNodesGenerator([n for n in  self.status[0]], self)
 

	
 
    @property
 
    def removed(self):
 
        """
 
        Returns list of removed ``FileNode`` objects.
 
        """
 
        return RemovedFileNodesGenerator([n for n in self.status[2]], self)
rhodecode/templates/files/files_browser.html
Show inline comments
 
<%def name="file_class(node)">
 
    %if node.is_file():
 
        <%return "browser-file" %>
 
    %else:
 
        <%return "browser-dir"%>
 
    %endif
 
</%def>
 
<div id="body" class="browserblock">
 
    <div class="browser-header">
 
        <div class="browser-nav">
 
            ${h.form(h.url.current())}
 
            <div class="info_box">
 
              <span class="rev">${_('view')}@rev</span>
 
              <a class="ui-btn ypjax-link" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
 
              ${h.text('at_rev',value=c.changeset.revision,size=5)}
 
              <a class="ui-btn ypjax-link" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
 
              ## ${h.submit('view',_('view'),class_="ui-btn")}
 
            </div>
 
            ${h.end_form()}
 
        </div>
 
        <div class="browser-branch">
 
           ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
 
           <label>${_('follow current branch')}</label>
 
        </div>
 
        <div class="browser-search">
 
              <div id="search_activate_id" class="search_activate">
 
                  <a class="ui-btn" id="filter_activate" href="#">${_('search file list')}</a>
 
              </div>
 
              % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
 
                    <div id="add_node_id" class="add_node">
 
                        <a class="ui-btn" href="${h.url('files_add_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path)}">${_('add new file')}</a>
 
                    </div>
 
              % endif
 
        <div>
 
            <div id="node_filter_box_loading" style="display:none">${_('Loading file list...')}</div>
 
            <div id="node_filter_box" style="display:none">
 
            ${h.files_breadcrumbs(c.repo_name,c.changeset.raw_id,c.file.path)}/<input class="init" type="text" value="type to search..." name="filter" size="25" id="node_filter" autocomplete="off">
 
            </div>
 
        </div>
 
        </div>
 
    </div>
 

	
 
    <div class="browser-body">
 
        <table class="code-browser">
 
            <thead>
 
                <tr>
 
                    <th>${_('Name')}</th>
 
                    <th>${_('Size')}</th>
 
                    <th>${_('Mimetype')}</th>
 
                    <th>${_('Last Revision')}</th>
 
                    <th>${_('Last modified')}</th>
 
                    <th>${_('Last commiter')}</th>
 
                    <th>${_('Last committer')}</th>
 
                </tr>
 
            </thead>
 

	
 
            <tbody id="tbody">
 
                %if c.file.parent:
 
                <tr class="parity0">
 
                    <td>
 
                        ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
 
                    </td>
 
                    <td></td>
 
                    <td></td>
 
                    <td></td>
 
                    <td></td>
 
                    <td></td>
 
                </tr>
 
                %endif
 

	
 
            %for cnt,node in enumerate(c.file):
 
                <tr class="parity${cnt%2}">
 
                     <td>
 
                        %if node.is_submodule():
 
                           ${h.link_to(node.name,node.url or '#',class_="submodule-dir ypjax-link")}
 
                        %else:
 
                          ${h.link_to(node.name, h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=h.safe_unicode(node.path)),class_=file_class(node)+" ypjax-link")}
 
                        %endif:
 
                     </td>
 
                     <td>
 
                     %if node.is_file():
 
                         ${h.format_byte_size(node.size,binary=True)}
 
                     %endif
 
                     </td>
 
                     <td>
 
                      %if node.is_file():
 
                          ${node.mimetype}
 
                      %endif
 
                     </td>
 
                     <td>
 
                         %if node.is_file():
 
                             <div class="tooltip" title="${h.tooltip(node.last_changeset.message)}">
 
                             <pre>${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</pre>
 
                            </div>
 
                         %endif
 
                     </td>
 
                     <td>
 
                         %if node.is_file():
 
                             <span class="tooltip" title="${h.tooltip(h.fmt_date(node.last_changeset.date))}">
 
                            ${h.age(node.last_changeset.date)}</span>
 
                         %endif
 
                     </td>
 
                     <td>
 
                         %if node.is_file():
 
                             <span title="${node.last_changeset.author}">
 
                            ${h.person(node.last_changeset.author)}
 
                            </span>
 
                         %endif
 
                     </td>
 
                </tr>
 
            %endfor
 
            </tbody>
 
            <tbody id="tbody_filtered" style="display:none">
 
            </tbody>
 
        </table>
 
    </div>
 
</div>
0 comments (0 inline, 0 general)